このAPIサーバーは、クラス管理とオンライン教育のための複数の機能を提供します。主な機能は以下の通りです:
- 出席情報関連機能:
- 特定IDの出席情報の取得、削除、作成/更新。
- クラス別の全出席情報の取得。
- Google認証:
- Googleログイン後、ユーザー情報を受け取りトークン生成。
- ユーザーをGoogleログインページへリダイレクト。
- クラスボード(Class Board):
- 特定クラスの全ボードの取得、クラスボードの作成。
- 公告されたクラスボードの取得。
- 特定のクラスボードの詳細情報の取得、削除、更新。
- クラスコード(Class Code):
- 特定のクラスコードのシークレットの有無を確認。
- クラスコードとシークレットの検証、ユーザーに役割を割り当て。
- クラススケジュール(Class Schedule):
- 特定のクラスIDの全クラススケジュールの取得、新規作成。
- 特定の日付のクラススケジュールの取得。
- ライブ中のクラススケジュールの取得。
- 特定のクラススケジュールの詳細情報の取得、更新、削除。
- クラス(Classes):
- 新しいクラスの作成(名前、定員数、説明、画像URLを含む)。
- クラスユーザー(Class User):
- 特定ユーザーが参加している全クラスの情報取得。
- 特定ユーザーの名前の更新、ユーザー役割の変更。
- ユーザー(User):
- ユーザーが申し込んだクラスの取得。
また、プロジェクトではWebRTC
を通じたリアルタイムの授業
、Socket.io
を通じたリアルタイムのチャット
機能、クラス関連のCRUD
機能、管理者関連機能が追加予定です。
- project-root/
├── constants/
│ └── 定数の定義
├── controllers/
│ └── ユーザーのリクエスト処理とモデルの操作
├── docs/
│ └── プロジェクトの文書化
├── dto/
│ └── データ転送オブジェクトの定義
├── middlewares/
│ └── 共通ミドルウェアロジック(認証、ログ記録など)
├── migration/
│ └── データベーススキーマ管理
├── models/
│ └── データモデルの定義
├── repositories/
│ └── データベースとの相互作用の抽象化
├── services/
│ └── ビジネスロジックの実装
└── utils/
└── ユーティリティ関数と共通コード
- モデル(Model): /models
- データ関連のロジック処理。データベースのテーブルやデータ構造を表します。
- コントローラー(Controller): /controllers
- ユーザーからのAPIリクエストを受け取り、必要に応じてモデルを利用してデータを操作し、適切なレスポンスを生成します。
- リポジトリ(Repository): /repositories
- データベースとの相互作用をカプセル化し、データアクセスロジックとビジネスロジックを分離。データの取得、保存、更新などの処理を担当します。
- サービス(Service): /services
- ビジネスロジックを中心に処理。コントローラーとリポジトリの間の仲介者として機能し、ビジネスルールやデータ処理ロジックを担当します。
- DTO: /dto
- APIリクエストやレスポンスでデータを転送する際に使用されるオブジェクト。必要なデータをカプセル化し、クライアントとサーバー間のデータ交換を効率化します。
- ミドルウェア(Middleware): /middlewares
- リクエスト処理の前後で一般的なタスク(認証、ロギング、エラーハンドリングなど)を処理します。
- ユーティリティ(Utilities): /utils
- 再利用可能なヘルパー関数や一般的なユーティリティ機能を提供します。