校園應用 · 專題開發

Campus One

整合課表、訊息、地圖與校園服務的跨端應用。這頁整理行動端、Web、後端的程式結構,以及角色權限和測試方式。部署與外部服務串接的狀態以程式庫紀錄為準。

Campus One mobile tabs
程式庫中的行動端開發畫面
Campus One optional AI overlay
可選的 AI 輔助介面

使用情境

上下文分散

課表、公告、LMS、群組訊息與校園服務各自存在,使用者要自己拼出今天的優先順序。

角色不同

學生、教師、職員與管理者不能只換首頁文案;入口、資料可見範圍與可執行動作都不同。

服務會失效

外部 LMS、交通、校務或 AI provider 不保證永遠可用,產品需要處理服務暫時不可用的情況。

程式結構

MobileExpo / React Native
Today、角色入口、校園、收件匣、我的
→
Shared contracts共用型別、角色規則、學校設定與資料契約,減少 Mobile / Web 各自漂移。
→
BackendFirebase Functions、Firestore / Storage rules、敏感操作與外部服務整合。

角色與權限

Student課程 / 作業 / 學習行動
Teacher教學 / 點名 / 評量
Staff校園服務與工單
Dept. Head審核與部門資料
Admin全校設定與管理
Tab先限制主要入口
Route guard避免 deep link 越權
UI permission隱藏不該執行的操作
Backend authz敏感操作不信任 client
RulesFirestore / Storage 最後防線

驗證方式

Expo + Next.jsMobile / Web 兩個主要 client surface
FirebaseFunctions + Firestore + Storage rules
Shared TS共用 contract 與角色規則
Mobile Jest回歸測試結果與可下載報告以每次 CI artifact 為準
Web / Functions / Rules獨立測試邊界;每次實際測試數見 CI 紀錄
CI gateslint、typecheck、security、build 與測試分開;數字與已知債務可追到 evidence page

AI 輔助功能的範圍

預定用途

  • 整理與摘要
  • 依授權上下文提供建議
  • 產生下一步候選動作
  • 在低風險流程中協助導航與草稿

權限限制

  • 直接讀所有使用者資料
  • 跳過角色與資料權限
  • 把高敏感 action 直接寫入
  • 把模型回答當校務資料來源

程式導讀

README:先理解產品與 monorepo 範圍
Architecture overview:先看 Mobile / Web / Backend / data boundary
ADR:確認 monorepo、權限與 AI 邊界為什麼這樣選
Mobile demo:確認實際 UI,不看概念稿
Testing evidence:確認測試數字、security gate 與尚未清掉的驗證債務

目前狀態

目前可檢查

  • Mobile / Web / Backend monorepo
  • 角色與導航邏輯
  • Firebase rules 與 backend boundary
  • 測試、CI 與 E2E workflow
  • repo 內實際 Mobile 截圖

尚未由本頁確認

  • 正式接管校務權威資料
  • 所有外部服務已正式部署
  • 所有願景功能都已完整落地
  • AI provider 在任何裝置都同樣可用
  • demo data 等於真實校園營運資料