【MoneyTrack】Java × Spring Boot × Dockerで作る家計簿アプリ（全9機能紹介）

こんにちは、この記事では私が **1年目の実務経験を積んだ後に1から開発した家計簿アプリ「MoneyTrack」** の機能紹介を行います。

完成度としては「まだまだ発展途上」ですが、**AWS・Docker・Gradleの技術スタックを実践的に使って構築したこと**、そして0からアプリを設計し、形にするまでの一連の経験は非常に勉強になりました。

## 💬 ご意見募集！

**「こんな機能もあると良いのでは？」**  
**「ここの設計はこうした方が良いのでは？」**  
など、ご意見・フィードバックをぜひ**Qiitaのコメント欄**にていただけると嬉しいです！

## 🔗 URL（ドメインを取得して公開済）

👉 [MoneyTrack](https://moneytreeapp.net/login)  

---

## 🛠 使用技術スタック（一部）

- Java 21（Amazon Corretto）
- Spring Boot
- Thymeleaf
- PostgreSQL
- Docker（ローカル開発環境＋EC2での本番環境構築）
- AWS（EC2）
- Gradle（ビルド＆JARファイル作成）

---

## 🔎 機能紹介の構成（全9機能）

### ① ログイン画面
+ 登録済みのユーザーがメールアドレスとパスワードでログイン
+ ログイン失敗時はエラーメッセージを表示
+ `Spring Security`を使用して認証を実装

![①ログイン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/6fbb486f-63e2-40f1-9953-a2ea74e64e72.png)

### ② ユーザー登録画面
+ メールアドレス・パスワード・ニックネームを入力してアカウントを作成
+ 入力値のバリデーション機能も実装済

![②ユーザー登録.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/c3f1b78c-ec75-4b81-b7dc-246c80c9ad71.png)

### ③ ユーザー登録成功画面
+ 登録完了メッセージを表示
+ 成功後はログインページへの遷移を案内

![③ユーザー登録成功画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/d073604c-b7a8-4265-8feb-c0738242a758.png)

### ④ ホーム画面
+ 今月の収支サマリを表示
+ 開始日、終了日、及び決まった時期の検索を実装
+ 最新の取引やカテゴリ別の支出割合も表示（chart.jsを使用）
+ 他画面も共通でヘッダーの実装及びサイドバーの実装
+ (2025/06/07追記)円グラフの配色の追加
![④ホーム.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/941aa37c-6638-4157-b81a-7a127bb6e67a.png)


### ⑤ 取引入力/編集画面
+ 日付・金額・カテゴリ・メモを入力して取引を追加
+ 取引タイプに合わせてカテゴリーが変化
+ 必須項目のバリデーション実装
+ 既存取引の編集にも対応

![⑤取引入力.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/7b52f15e-60a3-4d40-8ada-26fcc2a289f6.png)


### ⑥ 取引履歴
+ 過去の取引を一覧で表示
+ 日付やカテゴリー、金額でのソート機能を実装
+ 日付、カテゴリーのフィルター機能を実装
+ 開始日、終了日、及び決まった時期の検索を実装
+ (2025/06/07追記)内容が長い場合でも確認できるようにツールチップの追加

![⑥取引履歴.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/4bfaa0b8-fcd6-4e5b-b168-409b432683e0.png)


### ⑦ ユーザー情報の変更
+ ユーザーIDなどのプロフィール情報を変更

![⑦ユーザー情報の変更.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/72a7d24d-bc64-4767-90c8-ae4a123f4fc7.png)


### ⑧パスワード変更
+ 現在のパスワードと新しいパスワードを入力して変更可能
+ 入力チェック（再入力一致など）も実装

![⑧パスワード変更.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/498de9c3-03ee-4624-9e82-0a28bcf9c153.png)

### ⑨ カテゴリ管理
+ 権限が管理者のみ表示可能のページ
+ 収入・支出カテゴリの追加・編集・削除
+ 各取引で使用されているカテゴリが反映

![⑨カテゴリ管理.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629183/a2c7de64-05f0-4f97-9a0c-5d693b408873.png)

## 🧩 反省点・今後の改善予定
今回「MoneyTrack」を開発してみて、いくつか反省点や課題が見つかりました。

- **管理者ユーザーの登録画面を作成していない**  
  → 初期ユーザー登録はSQLレベルで対応しており、アプリ側からの登録手段が未実装です

- ~~**Bootstrapの使い方が不十分で、画面の表示バランスが崩れている部分がある**  
  → 特にレイアウトのレスポンシブ対応やフォームの整形で未熟さが目立ちました~~

- ~~**サイドバー設計ミスにより、右1/3程度が空白のままになっている**  
  → 当初の仕様では常時表示サイドバーを想定していたが、後から非表示に変更したことで画面の余白が残ったままになっています~~

- ~~**モバイル対応が全くできていない**  
  → 現在はPC表示前提であり、スマートフォンではレイアウトが崩れてしまいます~~

(2025/06/07追記)
→上記の取り消し線の内容について、Bootstrapを利用してレスポンシブへの対応及び全体的なレイアウト修正、メニューバーの変更を行いました

- **家計簿アプリとしては機能不足・UI未完成な点が多い**  
  → レポート機能や予算管理、通知など、実運用に必要な機能がまだまだ実装できていません

これらの点を今後の学習・改善ポイントとしながら、より実用的なWebアプリを作れるよう成長していきたいと思います

## 📝 さいごに

正直、 **「これが1年やってきた成果として妥当なのか？」** と少し不満もありますが、それだけに「まだまだ学ばなければならないことが山ほどある」と痛感しています。

Qiitaのコメント欄を通じて、みなさんの経験や視点を共有していただけると嬉しいです。  
まだまだ技術不足ですが、どうぞよろしくお願いします！