menu_book 數據字典

TryAI LiveRoom 平台數字說明 · 最後更新 2026-03-28

group 教室裡有哪些角色?

老師 — 建立這間教室的人。可以出題、管理學員、查看儀表板。排行榜上會看到「老師」的標籤。

助理老師 — 老師指定的幫手。擁有和老師一樣的管理權限(可以出題、編輯關卡),排行榜上標示「助理老師」。

學員 — 加入教室來學習和闖關的人。排行榜的名次只算學員。

簡單來說:老師和助理老師可以管理教室,學員專注闖關學習。

leaderboard 排行榜怎麼算的?

排行榜顯示教室裡所有人的闖關進度,但名次只算學員。

排名規則

按照「已完成的關卡數」由多到少排列。完成數相同時,按姓名排序。老師和助理老師會出現在排行榜上,但旁邊顯示 ★ 而不是名次數字。

舉例

排名姓名進度
★CYC 老師3/3
1小明3/3
2小華2/3
★小陳 助理老師2/3
3小美1/3

老師完成了所有關卡,但第 1 名是小明,不是老師。

團隊排行:如果老師有設定「組別」功能,排行榜可以切換成團隊模式,按組別的平均完成率排名。

dashboard 儀表板數字怎麼看?

儀表板是老師的管理工具,所有數字只統計學員,不包含老師和助理老師的數據。

欄位名稱意思包含誰
學員人數教室裡的學員總數只算學員
平均完成率所有學員的平均闖關進度只算學員
在線人數目前在教室裡的總人數所有人(含老師)

為什麼在線人數含老師? 因為「在線人數」代表「教室裡現在有多少人」,是一個教室熱度指標。

學生總覽列表:表格中只列出學員,方便老師聚焦在學生的學習狀況。

wifi 在線人數是什麼意思?

排行榜區和儀表板都會顯示「N 人在線」。這個數字代表目前開著這間教室頁面的所有人,包含老師、助理老師和學員。當有人離開頁面,數字會自動更新。

可以把它理解為:現在教室裡坐了多少人。

school 證書發放條件

學員完成教室裡所有已發布的關卡後,就可以領取證書。

小提醒:如果你還沒填寫「個人設定」裡的真實姓名,證書上會用你的帳號名稱。建議先到個人設定填好資料。

edit_note 草稿和發布的差別

狀態學員看得到嗎?計入闖關進度?老師可編輯?
草稿看不到不計入可以
已發布看得到計入可以

老師可以先用「儲存為草稿」把關卡存起來,準備好再按「發布給全班」。發布後學員就能看到並開始闖關。

角色判定邏輯

DB 層

rooms/{roomId}/users/{uid}/
  ├── role: 'teacher' | 'student'
  ├── online: boolean
  ├── isGuest: boolean
  ├── softDeleted: boolean
  ├── completed: { challengeId: true, ... }
  └── ...

rooms/{roomId}/meta/
  ├── createdBy: uid  ← 教室建立者
  └── ...

前端三角色判定

isCreator = (roomMeta.createdBy === currentUser.uid);

if (isCreator) isTeacher = true;
else if (existing.role === 'teacher') isTeacher = true;  // 助理老師
else isTeacher = false;  // 學員

// UI: isCreator ? '你是老師' : isTeacher ? '你是助理老師' : '闖關進行中'

重要:DB 中 role === 'teacher' 同時涵蓋建立者和助理老師。前端用 isCreator 再細分。

過濾規則對照表

模組過濾方式含老師?含助理?含學員?
儀表板 — 學員人數studentOnly.length❌❌✅
儀表板 — 平均完成率studentOnly 平均❌❌✅
儀表板 — 學生總覽studentOnly 渲染❌❌✅
儀表板 — 在線人數totalOnline(全員)✅✅✅
排行榜 — 顯示全員✅✅✅
排行榜 — 排名僅學員有數字❌ ★❌ ★✅
排行榜 — roleTagroomMeta.createdBy 比對✅「老師」✅「助理老師」❌
報告 — totalStudentsrole!=='teacher'❌❌✅
報告 — students 陣列全員(含 role 欄位)✅✅✅

程式碼位置索引

功能函數關鍵程式碼
角色判定加入教室流程isCreator || existing.role==='teacher' || isWhitelisted
Header 角色顯示#rhSubisCreator ? '你是老師' : isTeacher ? ...
儀表板統計renderDashboard()studentOnly = students.filter(...)
排行榜個人renderIndividualLeaderboard()studentRank 計數器 + ★
排行榜團隊renderTeamLeaderboard()按 team 分組(老師不過濾)

測試策略

雙軌測試架構

本系統採用自動化腳本 + AI 驗收測試雙軌並行的測試策略,確保每次版本更新的品質。

測試類型工具涵蓋範圍執行時機
靜態檢查validate.sh(30 項)JS 語法、HTML 標籤平衡、CSS 完整性每次部署前
E2E 流程test-staging.js(17 項)頁面載入、登入流程、基本操作每次部署前
錯誤系統test-error-system.js(21 項)錯誤碼觸發、重試機制、回報流程每次部署前
AI 驗收測試Claude Cowork四角色操作驗收 + UX 評估新功能上線時

AI 驗收測試 — 四角色操作腳本

新功能上線時,使用 Claude Cowork 依序以四種角色走過完整操作流程:

#角色登入方式測試重點
1登入學員Google 帳號加入教室、完成關卡、複製提示詞、繳交作業、領取證書、匯出學習紀錄
2訪客學員無痕視窗匿名同上 + Firebase 寫入是否成功(求助、回饋、完成紀錄)
3登入老師建立者帳號建立/編輯/刪除關卡、開放下一關、管理成員、儀表板、匯出報表
4訪客老師無痕 + 通行碼通行碼登入、助理老師權限、教學功能完整性
為什麼需要訪客測試?
Firebase 安全規則對訪客(匿名登入)和 Google 登入用戶的寫入權限不同。2026-03-28 的求助按鈕功能即因此在訪客身分下發送失敗。每個涉及 Firebase 寫入的新功能必須用訪客身分驗證一次。

AI 驗收測試 — 操作流程

步驟動作檢查項目
1開無痕視窗,進入教室能否正常加入?訪客提示是否出現?
2瀏覽當前關卡內容渲染正常?圖片/影片/提示詞都顯示?
3點擊所有互動元素複製提示詞、點附件、放大圖片、播放影片
4完成關卡過關按鈕可按?進度更新?自動捲回頂部?
5點「遇到困難?」Toast 顯示成功還是失敗?Dashboard 有收到?
6展開歷史關卡複習內容完整?提示詞可複製?附件可點?
7領取證書 + 匯出學習紀錄證書正確?HTML 下載正常?離線可看?
8切換排行榜在線名單正確?綠點顯示?
9老師:儀表板檢查學員求助是否出現?行為追蹤有無資料?瓶頸標記正確?
10老師:編輯關卡後關閉是否回到管理面板(而非教室主畫面)?

Cowork 測試指令 — 一鍵複製

點擊下方按鈕複製對應角色的測試指令,直接貼給 Claude Cowork 即可開始測試。歡迎任何人參與測試!

版本變更紀錄

日期版本變更
2026-03-28Phase 33副本教室 + 唯讀預覽 + 課程總覽 + UI 統一化(shadcn/ui)+ 手機版選單 + 工具列收合 + 刪除重複 alert 修復
2026-03-28Phase 32階段分隔 + 管理面板優化 + 瓶頸標記 + 學員求助 + 提示詞複製率 + 測試策略 + Cowork 腳本
2026-03-24~26Phase 31行為追蹤 + 課後學習動態 + 匯出學習紀錄 + CSV 修復 + 排行榜優化 + 過關方式 toggle + GTM + 權限對照表
2026-03-24Phase 30白名單自動助理老師 + Gate 重新鎖定 + 問卷權限修正 + 影片自動嵌入 + Lightbox 升級
2026-03-23DEV-12訪客綁定提醒 + 儀表板空狀態 + 找回紀錄入口上移
2026-03-23DEV-11數據字典頁面建立
2026-03-23DEV-10排行榜「顯示不排名」+ 角色統一
2026-03-23DEV-03~09UX 微調 + 草稿功能
2026-03-22DEV-01~02帳號辨識制 + 首頁引導
arrow_back 返回平台