Spring Boot + Thymeleaf + H2データベースを使用した学習進捗管理Webアプリケーションです。
- ダッシュボード: 週次学習進捗の可視化、統計情報の表示
- 学習目標管理: 科目別の学習目標の設定・管理
- 学習記録: 日々の学習時間とメモの記録
- 学習履歴: 過去の学習記録の閲覧・検索
- 週次レポート: Spring Batchによる自動レポート生成
- Backend: Spring Boot 3.2.0, Spring Data JPA, Spring Security, Spring Batch
- Frontend: Thymeleaf, Bootstrap 5, Chart.js, Font Awesome
- Database: H2 Database (開発用)
- Build Tool: Maven
- Java Version: 17
- Java 17以上
- Maven 3.6以上(またはMaven Wrapper使用)
git clone https://github.com/moruku36/java-study-app.git
cd java-study-app# Maven Wrapperを使用(推奨)
./mvnw spring-boot:run
# またはMavenがインストールされている場合
mvn spring-boot:run- アプリケーション: http://localhost:8080
- H2コンソール: http://localhost:8080/h2-console
- JDBC URL:
jdbc:h2:mem:studydb - ユーザー名:
sa - パスワード: (空)
- JDBC URL:
- Docker Desktop がインストールされていること
- Docker Compose が利用可能であること
# 本番環境用(PostgreSQL + アプリケーション)
docker-compose up -d
# 開発環境用(PostgreSQL + pgAdmin)
docker-compose -f docker-compose.dev.yml up -d- アプリケーション: http://localhost:8080
- pgAdmin(開発環境): http://localhost:5050
- メール:
admin@studyapp.com - パスワード:
admin123
- メール:
# ログを確認
docker-compose logs -f app
# アプリケーションを停止
docker-compose down
# データベースも含めて完全に削除
docker-compose down -v
# イメージを再ビルド
docker-compose build --no-cache- Render.comにアクセスしてアカウント作成
- GitHubアカウントと連携
- Dashboard → "New +" → "Web Service"
- GitHubリポジトリを選択:
moruku36/java-study-app
- Name:
java-study-app - Environment:
Java - Build Command:
./mvnw clean package -DskipTests - Start Command:
java -jar target/java-study-app-1.0.0.jar - Java Version:
17
SPRING_PROFILES_ACTIVE:productionDDL_AUTO:updateSHOW_SQL:falseTHYMELEAF_CACHE:trueLOG_LEVEL:INFO
- "New +" → "PostgreSQL"
- データベース名を設定
- 環境変数
DATABASE_URLが自動設定される
- "Create Web Service"をクリック
- ビルドとデプロイが自動実行される
アプリケーション起動時に以下のサンプルデータが自動生成されます:
- ユーザー:
sample_user(パスワード:password123) - 学習目標: Java (60分/日), 数学 (45分/日), 英語 (30分/日)
- 過去7日間のサンプル学習記録
- ダッシュボード: 学習進捗の概要を確認
- 学習目標: 新しい学習目標を作成・管理
- 学習記録: 日々の学習時間を記録
- 学習履歴: 過去の記録を確認
POST /api/goals- 学習目標の作成GET /api/goals/{userId}- ユーザーの学習目標一覧GET /api/goals/{userId}/active- アクティブな学習目標PUT /api/goals/{id}- 学習目標の更新DELETE /api/goals/{id}- 学習目標の削除
POST /api/logs- 学習記録の作成GET /api/logs/{userId}- ユーザーの学習記録一覧GET /api/logs/{userId}/weekly- 週次進捗データGET /api/logs/{userId}/range- 期間指定での学習記録PUT /api/logs/{id}- 学習記録の更新DELETE /api/logs/{id}- 学習記録の削除
src/
├── main/
│ ├── java/com/studyapp/
│ │ ├── config/ # 設定クラス
│ │ ├── controller/ # コントローラー
│ │ ├── domain/ # エンティティ
│ │ ├── dto/ # DTOクラス
│ │ ├── repository/ # リポジトリ
│ │ ├── service/ # サービス
│ │ └── batch/ # Spring Batch設定
│ └── resources/
│ ├── templates/ # Thymeleafテンプレート
│ └── application.yml # アプリケーション設定
└── test/ # テストコード
- ユーザー認証・認可の実装
- 学習記録の編集機能
- 学習目標の編集機能
- 学習履歴ページの実装
- 月次・年次レポート機能
- 学習アドバイス機能(ChatGPT API連携)
- 通知機能(Slack連携)
- モバイルアプリ対応
- PostgreSQLへの移行
- Docker化
- CI/CDパイプラインの構築
- ユニットテスト・統合テストの追加
- API仕様書(OpenAPI)の作成
- ログ機能の強化
- パフォーマンス最適化
- IntelliJ IDEA
- Eclipse (Spring Tool Suite)
- VS Code (Java Extension Pack)
- H2コンソールでデータベース内容を確認可能
- Spring Boot DevToolsによりホットリロード対応
- ログレベル: DEBUG (application.ymlで設定)
このプロジェクトはMITライセンスの下で公開されています。
プルリクエストやイシューの報告を歓迎します。貢献する前に、以下の点を確認してください:
- コードスタイルの統一
- 適切なテストの追加
- ドキュメントの更新
問題や質問がある場合は、GitHubのイシューを作成してください。