このアプリケーションは、開発現場でのバグや機能要望を効率的に管理するための課題管理システムです。バックエンドには Spring Boot 3.3.0、データベースには PostgreSQL、フロントエンドには Thymeleaf + TailwindCSS を使用し、Spring Security による認証機能を実装。ユーザーはカンバン形式(課題/作業中/完了)で課題のステータス管理、担当者のアサイン、プロフィール画像のアップロードが可能です。また、直感的な操作のため、ワンクリックでのステータス変更機能を搭載しています。
Docker のみで、面倒なセットアップ不要・数分で動作確認できます。
-
ユーザー認証機能(Spring Security)
- ログイン・ログアウト機能
- CSRF保護
-
課題管理機能
- 課題登録・編集・削除(CRUD)
- 課題詳細表示
- ステータス管理(課題/作業中/完了)
- ワンクリック操作(Ajax)
- ステータス変更機能
- 完了・戻す機能
-
担当者管理機能
- 担当者登録・編集・削除(CRUD)
- プロフィール画像表示
- 課題への担当者アサイン
-
ファイルアップロード機能(Uppy.js)
- 画像アップロード
- プレビュー表示
- ファイルサイズや形式のバリデーション機能
-
フロントエンドバリデーション
- リアルタイムバリデーション(Alpine.js + Zod)
- パスワード表示切替
- エラーメッセージ表示
-
データベース機能(PostgreSQL + MyBatis)
- トランザクション管理
- 外部キー制約
-
環境・デプロイ機能
- Docker対応(Docker Compose)
- 環境変数管理
- Docker がインストールされていること
- ポート 8080 が使用可能であること
※ ダークモードは現在未実装のため、ライトモードでのご利用を推奨します。
-
リポジトリをクローンします。
git clone https://github.com/joteejotee/issue-management.git
-
ルートディレクトリで Docker コンテナを起動します。
docker compose up -d
このコマンドで以下の処理が自動的に行われます:
- PostgreSQL データベースの準備
- アプリケーションのビルドと実行
- 必要な依存関係のインストール
-
ブラウザでアプリケーションにアクセスします。
http://localhost:8080
にアクセス- ログイン情報:
- メールアドレス:
test@example.com
- パスワード:
Test1234
- メールアドレス:
-
アプリケーションの停止
docker compose down
-
コンテナの状態確認
docker compose ps
-
ログの確認
docker compose logs
-
コンテナの再起動
docker compose restart
- Java 21
- Spring Boot 3.3.0
- Spring Security 6.3.0
- Thymeleaf 3.1.2
- TailwindCSS 4.1.8
- DaisyUI 5.0.42
- PostgreSQL 15
- MyBatis 3.0.3
- Docker/Docker Compose
- Gradle
- Prettier 3.5.3
- バックエンド API: JUnit 5 + REST Assured + Testcontainers(Spring Boot API テスト・ユニットテスト)
- フロントエンド: Web Test Runner + @testing-library/dom(Alpine.js + Zod バリデーションテスト)
- フロントエンド E2E: Playwright(ブラウザ自動化・ユーザーシナリオテスト)
- テストカバレッジ: JaCoCo + Web Test Runner Coverage 対応
ログイン画面 | ホーム画面 |
---|---|
![]() |
![]() |
Spring Security による認証機能を実装しました。 | カンバン形式(TODO/DOING/DONE)での課題ステータス管理とワンクリックでのステータス変更機能を提供します。 |
課題一覧画面 | 課題詳細画面 |
---|---|
![]() |
![]() |
課題の一覧表示機能を提供します。 | 課題の詳細情報表示機能を実装しました。 |
担当者一覧画面 | 担当者新規登録画面 |
---|---|
![]() |
![]() |
登録済みの担当者の一覧表示と管理機能を実装しました。 | 担当者名を入力し、プロフィール画像をアップロードして、登録ボタンをクリックしてください。 |
src/main/java/com/example/its
: Java ソースコードsrc/main/resources
: リソースファイル(設定ファイル、テンプレートなど)src/test/java/com/example/its
: テストコード
- このアプリケーションでは、以下のようなエンティティ関係図に基づいてデータベースを設計しています。
- assignees・issues は、課題管理の中核を担う 2 テーブルで構成
- users テーブルはログイン認証用で、課題管理とは独立した設計
- 外部キー制約により、データ整合性を保っています
This project is licensed under the MIT License - see the LICENSE file for details.