- ユーザ ... このアプリを使用できる対象
- ユーザロール ... ユーザの種類 here
- スクール ... ユーザが所属している区分 here
- セルフスクール ... ユーザがデフォルトで所属しているスクール
- 問題 ... テストの各問題
- 問題集 ... 問題の集まり。出題数を指定してランダムで出題する。
- テスト ... 1 つ以上の問題の集まり。複雑な出題条件を設定可能。
Firebase Auth を使った認証機能を実装する。
ユーザはいずれかのユーザロールを持つ。
| role | explain |
|---|---|
| USER | アカウントを作成した時のデフォルト |
| MODERATOR | 問題とテストを作成し自分で利用できる |
| TEACHER | 問題とテストを作成し全体に公開できる |
| ADMIN | 開発者(最上位権限を持つロール) |
ユーザを作成すると、固有のスクール(セルフスクール)が作成される。
TEACHER 以上のロールを持つユーザは 2 つ以上のスクールを作成(最大 5 つ)できる。
問題とテストは、いずれかのスクールに所属している。
問題は、下記の種類の出題、回答形式がある
- 出題
- 文章題(短文)
- 文章題(長文) ... 1.1.0 リリース
- 回答
- 選択式(単一、複数)
問題を指定の数(指定がない場合は回答者が設定できる)ランダムに出題し、採点(都度採点、一括採点)を行う機能。
- ジャンルごとのランダム出題
- 問題のジャンルが設定されている
- 問題の難易度設定とフィルタリング
- 問題に難易度を設定し、回答者が難易度を選択して出題できる機能。
- 問題のタグ付けと検索
- 問題にタグを付け、特定のタグで問題を検索・出題できる機能。
- 問題の解説機能
- 問題に解説を追加し、回答後に解説を表示する機能。
- 回答履歴の保存と分析
- 回答者の過去の回答履歴を保存し、正答率や苦手分野を分析する機能。
- 問題のバージョン管理
- 問題の変更履歴を管理し、過去のバージョンを参照できる機能。
- 問題の共有機能
- 他のユーザと問題を共有し、共同で編集できる機能。
- 問題のタイムトライアルモード
- 制限時間内にできるだけ多くの問題を解くモード。
- 問題の音声読み上げ機能
- 問題文を音声で読み上げる機能。
- 問題の画像や動画添付機能
- 問題に画像や動画を添付して、視覚的な出題が可能になる機能。
- 問題の AI 生成サポート
- AI を活用して問題を自動生成する機能。
(root)/ ... トップページ (LP)
public/ ...
login/
signup/
user/ ... ログイン後のトップページ
manage/ ... 管理者用のトップページ (MODERATOR以上のユーザがアクセスできる)
- main ... production ブランチ
- develop ... 次回リリースブランチ (main からの派生)
- (IssueNo)-(fix|refactor)/(label) ... 修正ブランチ (develop からの派生)
- Next.js
- App Router
- Prisma
- Firebase
- Firebase Auth
- Firebase Emulator (for development)
- Tailwind CSS
- Shadcn/UI
- GCP
- Cloud Build
- Cloud Run
- Supabase
- PostgreSQL
- Jest
- Playwright
- Docker