【RaiseTech成果物】受講生管理システム・アプリケーション開発
・このプロジェクトは、Javaコース学習プログラムの一環として、受講生管理システムを実装し【受講生・コース・申請状況 を検索・登録・更新・論理削除】できるように、Java/Spring Boot/REST APIを使用して開発されました。
【技術スタック】
・Java 21・Spring Boot 3.5.6・MySQL・MyBatis
・Git/GitHub・AWS(EC2, RDS, ELB)
【力を入れたところ】
・WEBアプリ開発はゼロからの学習でしたので、オブジェクト指向、命名規則、開発の流れを中心にしてきました。 最終課題に「申込状況」の追加と言うことで、全体的にリファクタリングし、メソッド名やテストケースを修正しました。
- StudentDetail
- Student
- Course から
- StudentDetail
- Student
- CourseDetail
- Course
- ApplicationStatus への変更。
【以前のデータ設計】 受講生 1 : 多 コース
【リファクタリング後の設計】 受講生 1 : 多 コース、コース 1 : 1 申込状況
・URI Path を REST APIエンドポイントの命名に関するベストプラクティスを考慮しました。
→/registerStudent・/updateStudent・などを /students・/students/{id} に変更。
・クライアント側でユーザビリティを大切にして、自動採番処理を実装してきました。
- 受講を新規登録 → 氏名、メールアドレス、年齢、コース名などを入力(入力値検証あり)
- 登録のリクエスト → コース開始日、申込状況を自動採番
- 論理削除をしたい場合は、更新処理で簡単にできるようにしています(削除フラグを変更)
【AWS環境でのデプロイと運用】
・ EC2、RDS、VPC、セキュリティグループ、そしてNACLを使用して、アプリケーションをAWS上にデプロイしました。
【最大の課題:ネットワーク接続】
外部からのWebアクセス (Port 8080) や、EC2からRDSへのDB接続の際、NACLのアウトバウンド・インバウンドルール設定で苦戦しました。特に、応答パケット用のエフェメラルポートの必要性を深く理解しました。
【今後の展望】
・現在、デプロイを学習しており(CI:CD, GitHubActions, Docker)、 早いうちにデプロイをできるように進んでいきます。
・デプロイ後は、フロントエンド(JavaScript → React → Next.js)の学習をして、実装するつもりです。
ユーザビリティを中心にしてプロジェクトを作成していきたいです。
・Homeページ
・ページネーション
・DBの外部キー設定
****プロジェクトPFはこちら*****
https://github.com/VilliDoug/villidoug-student-management/