📚 家教中心管理系統 · 架構規劃庫

采心教育家教媒合平台 - 技術整合與邊緣架構規劃書 (Integration Architecture)

本規劃書旨在融合兩個補教管理系統(MdFarhan681/etuitionbd 與 AzimKrishna/Tuition-Management-System)的核心優勢,並將整體技術棧統一為 TypeScript 全端 + Cloudflare 邊緣架構,全面落地「采心教育」官方 LINE 外派家教媒合、動態學費試算、三種收款分流、外派車馬費補貼與請假補課管制體系。


1. 兩大專案的優勢互補與采心教育新定位

比較維度 專案 A: etuitionbd 專案 B: Tuition-Management-System 采心教育全新定位
主要亮點 清晰的三大角色儀表板 (Admin / Teacher / Student) 與動線 自動化排程引擎、課後學習進度報告卡、雙向帳單收據 深耕新竹外派家教媒合 + 角色分流工作台 + 動態學費試算 + 三方分帳與收據
原代碼架構 React 19 + Vite + Tailwind (前端呼叫遠端 Express) 原生 PHP + MySQL + Dompdf (傳統 PHP 單體) 全端 TypeScript + Cloudflare 全生態 (Pages + D1 + R2 + KV)
借鑑與重構 1. 角色路由隔離動線
2. 師資與案件審核視圖
3. 堂數時數追蹤入口
1. 週期性排程防衝突邏輯
2. 學生課堂回饋/進度報告欄位
3. 繳費單與收據產出流程
融入采心教育官方 LINE 規範:
1. 一對一/一對多學制分級收費
2. 每堂外派車馬費補貼
3. 三種收款分流 (家長/中心/老師)
4. 請假1事1病與次月底補課管制
⚠️ 關鍵安全警示 無 JWT Authorization 標頭、前端偽路由守衛 裸露 GET SQL 注入、Stored XSS、Dompdf SSRF 全面採用 Drizzle 參數化防線 + Cloudflare 安全邊緣,杜絕注入與越權

2. 采心教育全新核心業務機制技術落實

2.1 動態學費試算計算機 (Pricing Calculator Widget)

2.2 三種收款與分帳設定技術架構 (Three-Way Financial Settlement)

系統於資料層與結算引擎中清楚劃分三種金流流向:

  1. 家長收款 (Parent Bill):
    • 包含:授課鐘點費總額 + 實體到府車馬費總額 - 滿 40h 陪讀優惠折讓。
    • 於每月 5 日前轉帳或現金繳納,回報帳號末五碼。
  2. 媒合中心收款 (Platform / Center Fee):
    • 采心教育媒合中心所留存之服務費(提供師資嚴選把關、教學進度監控、安心試上調校與補課協調保障)。
  3. 給老師的錢 (Teacher Payout):
    • 老師實得課酬(依審核核定之時薪 × 核實時數)+ 100% 外派交通車馬費實額。

2.3 外派車馬費補貼機制 (Travel Allowance Integration)

2.4 官方 LINE 請假與補課管制機制 (Leave & Make-up Engine)

2.5 後台智慧排課行事曆與通勤地理防撞演算法 (Transit & Conflict Engine)

為因應無定點辦公室、全外派到府教學的痛點,系統內建時空雙維度排程校驗:

  1. 時間重疊防撞演算法:
    • 針對同一老師的課堂紀錄,檢驗公式:$\max(Start_A, Start_B) < \min(End_A, End_B)$。
    • 若成立則觸發紅色衝突標記(CONFLICT_OVERLAP),提示管理者時間撞期。
  2. 跨區地理通勤緩衝演算法 (Geographic Transit Buffer):
    • 比對相鄰兩堂課:$\Delta T = Start_{next} - End_{prev}$。
    • 若 $\Delta T < 45 \text{ mins}$ 且 $Area_{prev} \ne Area_{next}$(例如新竹市東區 vs 竹北高鐵區/香山區),系統觸發黃色過遠預警(WARNING_TRANSIT_DISTANCE)。
    • 前端行事曆以直觀顏色標籤標示,使主任在為家長安排試教或例行課堂時,能即時掌握老師交通可行性,避免延誤或疲於奔波。

3. 統一技術棧選型 (Cloudflare Edge & Unified TypeScript Stack)

┌────────────────────────────────────────────────────────────────────────┐
│                        采心教育邊緣技術架構棧                            │
├────────────────────────────────────────────────────────────────────────┤
│  前端視圖    │ 溫馨奶油杏色風格 SPA (純原生極速渲染 / 官方 LINE 治癒元素)│
│  邊緣運算層  │ Cloudflare Pages Functions / Workers (V8 Edge Runtime) │
│  資料存取    │ Drizzle ORM (輕量極速、零冷啟動、強型別 SQL)             │
│  關聯資料庫  │ Cloudflare D1 (Serverless SQLite, 5GB 免費、永不休眠)   │
│  檔案與證件  │ Cloudflare R2 (良民證、看診證明、證書存儲、0 元流量費)    │
│  快取與狀態  │ Cloudflare KV (動態費率快取、Rate Limiting)             │
│  部署與管理  │ Wrangler CLI (本地一鍵直推、完全不依賴 GitHub)          │
└────────────────────────────────────────────────────────────────────────┘

4. 系統安全與資料防護標準

  1. 參數化邊緣資料庫防線:全面淘汰原生 SQL 拼接,所有操作經由 Drizzle ORM 參數化預編譯,杜絕 SQL Injection。
  2. 水平越權防護 (IDOR):家長僅能調閱自己名下子女之進度與假單,老師僅能查看授課之課堂與個人薪酬,主任擁有全域管理權。
  3. 病假與證件防護:病假看診證明、良民證等機敏照片存放於 Cloudflare R2 私有貯體,不開放公開爬蟲。
  4. 收據防偽與安全列印:家長學費收據與老師課酬收據採用安全 DOM 節點渲染,支援瀏覽器原生列印 (window.print()) 與電子查驗。

5. 程式設計規範與共用函式治理 (Coding Rules & DRY Standards)

為防範系統在日後迭代與維護過程中發生「各角色各自重複寫一套」、「修改時漏改」或「邏輯不一致」的嚴重隱患,系統嚴格要求:

  1. 功能重合度高時,必須共用同一函式 (Shared Function Enforcement):
    • 管理人員排課行事曆與老師個人行事曆,全面共用底層行事曆渲染引擎函式。
    • 透過角色上下文參數(role: 'admin' | 'teacher')與過濾選項(teacherId、viewMode: 'day' | 'week' | 'month')進行動態渲染,禁止各自分叉寫獨立日曆渲染。
  2. 單一真實來源 (Single Source of Truth):
    • 價格矩陣、三方分帳演算法、通勤過遠門檻(如 40 分鐘且跨區)、補課時限等核心規則,統一集中於服務層或單一模組,全系統呼叫,杜絕寫死多處。
  3. 介面統一與無縫切換:
    • 凡共用之元件,所有狀態切換(當日/當週/當月、日期前後翻頁)由單一控制器驅動,保證多角色操作手感與體驗高度一致。