Appearance
画面設計: 管理者 カリキュラム・教材管理
関連: api.md §4 / data-model.md §3.x (Curriculum, CurriculumItem)
URL
/admin/curriculum— 一覧/admin/curriculum/:id— 編成
目的
3ヶ月研修 × 1ヶ月研修のカリキュラム連動を前提に、教材(単語/動画/クイズ/試験)を日次・週次で割り当てる。
1. 一覧 /admin/curriculum
- カリキュラム一覧:名称、対象フェーズ(
pre-departure/in-japan-onboarding)、期間、ステータス - テンプレートから作成/空から作成
- コピー・複製(差分編成用)
2. 編成 /admin/curriculum/:id
レイアウト
- 左:カレンダー/週単位タイムライン
- 右:教材パレット(単語セット/動画/クイズ/試験)
- ドラッグで日次タスクに追加
- 合計学習時間の見積もり表示
CurriculumItem
| カラム | 備考 |
|---|---|
| id | |
| curriculum_id | |
| day_offset | 開始日から N 日目 |
| order | 表示順 |
| kind | vocab/video/quiz/exam/custom |
| ref_id | 参照 ID |
| estimated_minutes | 見積分 |
割当
- カリキュラムを
Cohortに適用し、Enrollmentされた全学習者の日次タスクとして展開 - 適用後のローリング変更は影響範囲をプレビュー表示
連動(Pre-departure ↔ In-Japan Onboarding)
- 対応する2つのカリキュラムを「ペア」で編成可能
- 進捗サマリーを引継画面(
/admin/handover/:learnerId)で引用
API(api.md §4 の GET/POST/PATCH /admin/curricula は既存。以下を追補対象とする)
GET /admin/curricula— 一覧(既存)POST /admin/curricula— 作成(既存)GET /admin/curricula/:id— 詳細(追加)PATCH /admin/curricula/:id— 更新(既存)DELETE /admin/curricula/:id— 削除(追加)GET /admin/curricula/:id/preview?cohortId=— コホート適用プレビュー(追加)POST /admin/curricula/:id/apply— コホートへ適用(追加)
追加とマークしたエンドポイントは api.md に未記載。別 issue で api.md の §4 に追補する。
データモデル(data-model.md 追補対象)
data-model.md §1 に Curriculum / CurriculumItem は一覧掲載済。本画面では以下カラムを前提とする(未掲載分は追補対象)。
Curriculum
| カラム | 型 | 備考 |
|---|---|---|
| id | uuid | PK |
| organization_id | uuid | テナント境界 |
| name | text | |
| phase | text | pre-departure / in-japan-onboarding / custom |
| start_offset_days | int | 起点からの日数(テンプレ用) |
| duration_days | int | 総日数 |
| pair_curriculum_id | uuid nullable | 対となるカリキュラム(引継用) |
| status | text | draft / active / archived |
| created_by | uuid | |
| created_at | timestamptz |
CurriculumItem
| カラム | 型 | 備考 |
|---|---|---|
| id | uuid | PK |
| curriculum_id | uuid | FK |
| day_offset | int | 0 起点 |
| order | int | 同日内の並び |
| kind | text | vocab/video/quiz/exam/custom |
| ref_id | uuid | 参照先 ID |
| estimated_minutes | int | |
| title_override | text nullable | 任意の表示名上書き |
data-model.md の正式更新は別 issue で行う。
RBAC
- TA:担当カリキュラム作成・編集
- OA:自組織全カリキュラム、削除・テンプレ管理
- TM:閲覧のみ(編成は不可、補強ポイント提案のメモ可)
- SA:テンプレ管理・複数機関共通のベース提供(別 issue 設計)
- LR/EM/SU:アクセス不可
バリデーション・エッジ
- 開始日 > 終了日:422
- 1 日あたり上限見積分(OA 設定)超過:警告
- 適用済カリキュラムへの破壊的変更は二重確認+監査ログ
モック(M1)
- 2 カリキュラム(3ヶ月/1ヶ月)
- ドラッグ&ドロップで追加/並び替え動作
- カレンダー週表示
未確定
- 教材の横断検索・タグ
- 共通テンプレートのバージョン管理