Skip to content

YJU-OKURA/project_minori-gin-deployment-repo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

30bcb2f · Apr 24, 2024
Mar 6, 2024
Apr 11, 2024
Apr 24, 2024
Apr 23, 2024
Apr 7, 2024
Feb 10, 2024
Apr 22, 2024
Mar 6, 2024
Apr 4, 2024
Apr 22, 2024
Apr 24, 2024
Mar 3, 2024
Mar 2, 2024
Feb 21, 2024
Feb 26, 2024
Mar 5, 2024
Mar 19, 2024
Apr 24, 2024
Apr 24, 2024
Apr 24, 2024
Feb 10, 2024

Repository files navigation

ミノリginサーバーリポジトリ

APIサーバーの機能

このAPIサーバーは、クラス管理とオンライン教育のための複数の機能を提供します。主な機能は以下の通りです:

  1. 出席情報関連機能
  • 特定IDの出席情報の取得、削除、作成/更新。
  • クラス別の全出席情報の取得。
  1. Google認証
  • Googleログイン後、ユーザー情報を受け取りトークン生成。
  • ユーザーをGoogleログインページへリダイレクト。
  1. クラスボード(Class Board)
  • 特定クラスの全ボードの取得、クラスボードの作成。
  • 公告されたクラスボードの取得。
  • 特定のクラスボードの詳細情報の取得、削除、更新。
  1. クラスコード(Class Code)
  • 特定のクラスコードのシークレットの有無を確認。
  • クラスコードとシークレットの検証、ユーザーに役割を割り当て。
  1. クラススケジュール(Class Schedule)
  • 特定のクラスIDの全クラススケジュールの取得、新規作成。
  • 特定の日付のクラススケジュールの取得。
  • ライブ中のクラススケジュールの取得。
  • 特定のクラススケジュールの詳細情報の取得、更新、削除。
  1. クラス(Classes)
  • 新しいクラスの作成(名前、定員数、説明、画像URLを含む)。
  1. クラスユーザー(Class User)
  • 特定ユーザーが参加している全クラスの情報取得。
  • 特定ユーザーの名前の更新、ユーザー役割の変更。
  1. ユーザー(User)
  • ユーザーが申し込んだクラスの取得。

また、プロジェクトではWebRTCを通じたリアルタイムの授業Socket.ioを通じたリアルタイムのチャット機能、クラス関連のCRUD機能、管理者関連機能が追加予定です。

ディレクトリ構造

- project-root/
  ├── constants/
  │    └── 定数の定義
  ├── controllers/
  │    └── ユーザーのリクエスト処理とモデルの操作
  ├── docs/
  │    └── プロジェクトの文書化
  ├── dto/
  │    └── データ転送オブジェクトの定義
  ├── middlewares/
  │    └── 共通ミドルウェアロジック(認証、ログ記録など)
  ├── migration/
  │    └── データベーススキーマ管理
  ├── models/
  │    └── データモデルの定義
  ├── repositories/
  │    └── データベースとの相互作用の抽象化
  ├── services/
  │    └── ビジネスロジックの実装
  └── utils/
       └── ユーティリティ関数と共通コード

適用されたデザインパターン

MVC (Model-View-Controller)

  • モデル(Model): /models
    • データ関連のロジック処理。データベースのテーブルやデータ構造を表します。
  • コントローラー(Controller): /controllers
    • ユーザーからのAPIリクエストを受け取り、必要に応じてモデルを利用してデータを操作し、適切なレスポンスを生成します。

リポジトリパターン(Repository Pattern)

  • リポジトリ(Repository): /repositories
    • データベースとの相互作用をカプセル化し、データアクセスロジックとビジネスロジックを分離。データの取得、保存、更新などの処理を担当します。

サービスレイヤー(Service Layer)

  • サービス(Service): /services
    • ビジネスロジックを中心に処理。コントローラーとリポジトリの間の仲介者として機能し、ビジネスルールやデータ処理ロジックを担当します。

DTO(Data Transfer Object)

  • DTO: /dto
    • APIリクエストやレスポンスでデータを転送する際に使用されるオブジェクト。必要なデータをカプセル化し、クライアントとサーバー間のデータ交換を効率化します。

ミドルウェアパターン(Middleware Pattern)

  • ミドルウェア(Middleware): /middlewares
    • リクエスト処理の前後で一般的なタスク(認証、ロギング、エラーハンドリングなど)を処理します。

ユーティリティ関数(Utility Functions)

  • ユーティリティ(Utilities): /utils
    • 再利用可能なヘルパー関数や一般的なユーティリティ機能を提供します。