| name | lms-architecture |
| description | LMS-ESID core architecture including one-class-three-teachers system, course structure, grade levels, role permissions, and database schema. Use this skill when understanding teacher types (LT/IT/KCFS/HT), course relationships, class naming conventions, academic year data, or table relationships. |
LMS Architecture Skill
LMS-ESID 專案的核心架構知識,包含一班三師系統、課程架構、年段系統 Last Updated: 2025-12-22
一班三師系統 (One Class, Three Teachers)
教師類型定義
| 類型 | 全名 | 說明 |
|---|---|---|
| LT | Local Teacher | 本地教師,教授 English Language Arts (ELA) |
| IT | International Teacher | 國際教師,教授 English Language Arts (ELA) |
| KCFS | Kang Chiao Future Skill | 康橋未來技能課程,獨立課程類型 |
| HT | Head Teacher | 年段主任,管理特定年級的特定課程類型 |
課程架構
每個班級都包含三種標準課程:
- LT English Language Arts (ELA) - 本地教師授課
- IT English Language Arts (ELA) - 國際教師授課
- KCFS - 康橋未來技能課程
資料表關聯
classes (84 班)
↓ 1:3
courses (252 筆 = 84 × 3 課程類型)
↓
exams → scores
Track 欄位語意(重要!)
| 欄位 | 型別 | 語意 | 說明 |
|---|---|---|---|
classes.track |
track_type ENUM |
永遠為 NULL | 班級不屬於任何單一 track |
users.track |
course_type ENUM |
HT 課程類型職責 | LT/IT/KCFS,定義 HT 管理範圍 |
students.track |
course_type ENUM |
已棄用 | 設為 NULL,改用 students.level |
courses.course_type |
course_type ENUM |
實際課程類型 | LT/IT/KCFS |
courses 表設計
CREATE TABLE courses (
id UUID PRIMARY KEY,
class_id UUID REFERENCES classes(id),
course_type course_type NOT NULL, -- 'LT' | 'IT' | 'KCFS'
teacher_id UUID REFERENCES users(id), -- 可為 NULL(待指派)
academic_year TEXT,
is_active BOOLEAN DEFAULT true
);
工作流程:課程建立(teacher_id = NULL)→ 教師指派(更新 teacher_id)
小學年段系統
年級範圍
- Grade 1 至 Grade 6 (G1-G6)
- 每個年級 14 個班級
- 總計 84 個班級(林口校區)
Level 分級格式
格式:G[1-6]E[1-3]
| Level |
|---|
| E1 |
| E2 |
| E3 |
重要:不同年級的 E1 能力標準不同,只在同年級內比較 Level
資料庫欄位:TEXT 型別,帶 CHECK 約束驗證格式
班級命名格式
G[1-6] [StandardName]
範例:
- G4 Seekers
- G6 Navigators
- G1 Explorers
學年資料架構
2025-2026 學年(當前)
- 班級數量:84 個班級
- 課程數量:252 筆(84 × 3)
- 教師指派:✅ 已完成(80 位教師)
2026-2027 學年
- 班級數量:84 個班級(從 2025-2026 複製)
- 課程數量:252 筆(teacher_id = NULL)
- 教師指派:⏳ 待新學年開始
Level 分佈(2025-2026)
| 年級 | E1 | E2 | E3 |
|---|---|---|---|
| G1 | 5 | 5 | 4 |
| G2 | 5 | 5 | 4 |
| G3 | 4 | 7 | 3 |
| G4 | 4 | 7 | 3 |
| G5 | 3 | 7 | 4 |
| G6 | 4 | 7 | 3 |
角色與權限架構
角色定義
| 角色 | 說明 | 權限範圍 |
|---|---|---|
| admin | 系統管理員 | 全域存取 |
| head | 年段主任 | Grade + Course Type |
| teacher | 教師 | 自己任課班級 |
| office_member | 行政人員 | 唯讀全部 + 任課編輯 |
Head Teacher 權限範例
G4 LT Head Teacher 可以:
- ✅ 查看所有 G4 年級班級
- ✅ 管理 G4 年級所有 LT 課程(14 個班級)
- ❌ 不能管理 G4 的 IT 或 KCFS 課程
Office Member 雙重身份
行政人員可能同時是授課教師:
- 查看權限:可查看所有班級、學生、成績(唯讀)
- 編輯權限:若同時為授課教師,可編輯自己任課班級的成績
資料表 Schema 摘要
核心資料表
users - 教師、管理員帳號
classes - 班級資料
courses - 課程(班級 × 課程類型)
students - 學生資料
student_courses - 學生選課關聯
exams - 考試/評量
scores - 成績記錄
輔助資料表
assessment_codes - 評量代碼定義 (FA1-8, SA1-4, FINAL, MID)
assessment_titles - 評量顯示名稱覆寫
course_tasks - 課程任務看板
communications - 家長通訊記錄
gradebook_expectations - 成績預期設定
MAP 資料表(NWEA MAP Growth,G3-G6 only)
map_assessments - MAP 測驗成績
student_number, grade, course, rit_score, lexile_score
term_tested, academic_year, rapid_guessing_percent
map_goal_scores - 目標領域分數
assessment_id, goal_name, goal_rit_range
點名系統資料表
attendance - 點名記錄
student_id, course_id, date, period, status (P/L/A/S)
behavior_tags - 行為標籤定義
name, type (positive/negative)
student_behaviors - 學生行為記錄
student_id, course_id, tag_id, date
課表系統資料表
timetable_entries - 課表項目
teacher_email, day, period, class_name, course_type, course_id
timetable_periods - 節次時間定義
period_number, start_time, end_time
資料表關聯圖
┌─────────────┐
│ classes │
│ (84 班) │
└──────┬──────┘
│ 1:3
┌──────▼──────┐
│ courses │
│ (252 課程) │
└──────┬──────┘
│ 1:N
┌──────▼──────┐
│ exams │
│ (course_id) │ ← 注意:沒有 class_id
└──────┬──────┘
│ 1:N
┌──────▼──────┐
│ scores │
└─────────────┘