投稿する記事の目的
- 学習後のOUTPUT用
- わけのわからないことを投稿してる可能性はあるかも(やさしくしてね)
自己紹介
- システムエンジニア
- 古の言語を得意とする
- 好きな食べ物はハンバーガー
WEBアプリケーションのお勉強
自己紹介にも書きましたが、仕事では古い言語ばかりを扱ってるため、それ以外の言語にも慣れようというのが目的です。そのため、SpringやReactなどを使いながら、簡易的なWEBアプリケーション作って技術を吸収できればと思ってます。
タスク管理アプリケーションの開発
さっそく作るものを紹介。簡単なTodoアプリみたいなものは作れるため、少し難易度を上げようと思います。ChatGPTと相談したところ、タスク管理アプリケーションはどうかということなんでさっそく作っていきたいと思います。
機能要件(ChatGPT様から)
ChatGPTから機能要件を出してもらった。
1. プロジェクト管理
機能要件:
- プロジェクトの作成
- プロジェクト名、説明、開始日、終了日を入力
- プロジェクトのオーナーを指定
- プロジェクトの編集
- プロジェクトの情報(名前、説明、日付)の編集
- プロジェクトの削除
- プロジェクトの削除(関連するタスクやコメントも削除)
技術:
- Spring Boot
- Spring Data JPA
- Thymeleaf/React/Vue.js
- MySQL/PostgreSQL
2. タスク管理
機能要件:
- タスクの作成
- タスク名、説明、担当者、ステータス(進行中、完了など)、期限を入力
- 特定のプロジェクトに関連付け
- タスクの編集
- タスクの情報(名前、説明、担当者、ステータス、期限)の編集
- タスクの削除
- タスクの削除(関連するコメントも削除)
- タスクの割り当て
- チームメンバーにタスクを割り当て
技術:
- Spring Boot
- Spring Data JPA
- Thymeleaf/React/Vue.js
- MySQL/PostgreSQL
3. ステータス管理
機能要件:
- タスクのステータス管理
- ステータス(進行中、完了など)の変更
- ステータスに応じたフィルタリング機能
技術:
- Spring Boot
- Spring Data JPA
- Thymeleaf/React/Vue.js
4. チームメンバー管理
機能要件:
- チームメンバーの追加
- 名前、メールアドレス、役割(管理者、メンバーなど)の入力
- チームメンバーの編集
- メンバー情報の編集
- チームメンバーの削除
- メンバーの削除(関連するタスクの再割り当て)
技術:
- Spring Boot
- Spring Data JPA
- Spring Security
- Thymeleaf/React/Vue.js
- MySQL/PostgreSQL
5. コメント機能
機能要件:
- タスクに対するコメントの追加
- コメントの内容、投稿者、投稿日時を入力
- コメントの表示
- タスクに関連するコメントの一覧表示
- コメントの削除
- コメントの削除
技術:
- Spring Boot
- Spring Data JPA
- Thymeleaf/React/Vue.js
- WebSocketを使用したリアルタイム更新
- MySQL/PostgreSQL
6. リアルタイムチャット機能
機能要件:
- プロジェクト内のチームメンバー間でのリアルタイムチャット
- メッセージの送信、受信、表示
- メッセージの履歴表示
技術:
- Spring Boot
- WebSocket
- Thymeleaf/React/Vue.js
- MySQL/PostgreSQL
まとめ
これらの要件を基に、以下のようなアーキテクチャでプロジェクトを進める。
バックエンド:
- Spring Bootを使用してRESTful APIを作成する。
- Spring Data JPAでデータベース操作を行う。
- Spring Securityで認証と認可を管理する。
フロントエンド:
- Thymeleafを使用してサーバーサイドレンダリングを行うorReact/Vue.jsを使用してシングルページアプリケーション(SPA)を構築する。
データベース:
- MySQLまたはPostgreSQLを使用してデータを管理する。
リアルタイム機能:
- WebSocketを使用してチャット機能やリアルタイム通知を実装する。
開発の順序
まずは基本的なCRUD操作(作成、読み取り、更新、削除)を実装する。その後に認証、リアルタイム機能、コメント機能などを追加していくことにする。