商品・在庫管理アプリ
Spring Boot と Thymeleaf を使用して開発した、商品および在庫を管理する Web アプリケーションです。
未経験からバックエンドエンジニアへの転職を目指す中で、業務で求められる CRUD 処理、在庫ロジック、DB 設計、例外処理などを実践的に学ぶことを目的として作成しました。

Renderの無料枠を使用しているため、起動に30秒ほどお時間を頂いております。
お忙しいところ恐れ入りますが、ご了承いただけますと幸いです。
ポートフォリオ(在庫管理システム)のURL
アクセスした際にログイン画面が表示されると思われますが、
以下のテストアカウントでログインすることが可能です。
- ユーザー名:user、パスワード:user456
- ユーザー名:admin、パスワード:admin123
- Java 17
- Spring Boot 3.5
- Spring MVC
- Spring Security
- Spring JDBC
- PostgreSQL
- Thymeleaf
- Bootstrap
- Docker(開発用のPostgreDBを用意)
- Maven
- 商品の登録 / 編集 / 削除 / 一覧表示
- 在庫数の登録・更新
- 在庫の増減(入庫・出庫)
- 商品検索(商品名・カテゴリ)
- 入庫・出庫の履歴管理
- ユーザー認証
- 例外処理(404 / 500)
- Controller: リクエスト受付、レスポンス返却
- Sservice: ビジネスロジック
- Repository: DBアクセス(JDBC)
- Entity: テーブル対応クラス
- DTO: 入力バリデーション
- products(商品管理)
- stock_history(入出庫履歴)
- user(認証)
在庫の増減を履歴テーブルで管理することで、
過去の入出庫履歴を追跡できる設計にしています。
- 明示的な SQL 管理(Spring JDBC)
→ 実務で必要な SQL の理解を深めるため、Repository 層で SQL を明示的に記述。 - 在庫の増減ロジックを Service 層に集約
→ Controller を薄くし、保守性を向上。 - 例外処理とエラーページの実装
→ 404 / 500 のカスタムエラーページを用意。 - Dockerを使用し、開発と本番環境の差異を少なくするように意識。
- Controller/Service/Repositoryの責務分離/設計
- Thymeleafのフォームバインディング
- DB設計
- 開発と本番環境の動作の違いによるエラー
- バリデーション強化
- トランザクション制御
- 単体テスト(JUnit/Mockito)の追加
- ページネーション対応