家健錄 JiaJian Log | 家庭健康與照護營運系統
專為高血壓患者、印尼籍照護看護(Pengasuh)與家庭成員打造的行動優先 (Mobile-First) 照護營運系統。整合無縫雙語介面、即時血壓趨勢、結構化用藥進度與資料庫層級存取安全。
核心技術棧 & 全棧架構 (Full-Stack Ecosystem)
- 前端與建置 Ecosystem: React 18, TypeScript 5.6 (全型別覆蓋), Vite 6, Tailwind CSS v4 (CSS-first 現代樣式), Bun 1.3 執行環境。
- 後端與資料庫 (Backend & DB): Supabase (PostgreSQL), Row Level Security (RLS) 資料庫層級安全限制, Google OAuth 2.0 雙重白名單驗證。
- 照護 UI/UX 與流轉防呆 (CareOps UX & Workflow): 雙向滾輪選擇器、台灣高血壓學會 722 雙次量測自動流轉與 1 分鐘休息計時器。
- 雙語無障礙 (Bilingual i18n): 印尼文(看護主用)與繁體中文(家屬主用)對稱切換,徹底消除跨國照護溝通障礙與紀錄錯誤。
工程設計決策與取捨 (Engineering Decisions & Trade-offs)
- 無伺服器通知整合 (Serverless Notification Integration via Cloudflare Worker): 使用 Cloudflare Workers 建立 server-side Telegram 通知端點,將 Bot Token 儲存在加密 Secrets 中,避免敏感憑證暴露於前端。考量目前為低流量家庭照護場景,採用無常駐伺服器的 serverless 架構,在維持安全邊界的同時控制營運成本。通知失敗採非阻塞處理,不影響主要血壓資料保存。
- 雙端 Staging 環境與資料安全隔離 (Vercel & Supabase Staging Isolation): 考量家人真實健康個資敏感性,於 Vercel (專屬
staging-jia-jian-log專案) 與 Supabase 端皆建立獨立的 Staging 驗收環境;搭配 GitHub Actions PR 自動啟動拋棄式 Local Supabase 執行 migration 重播驗證。雖增加跨平台維護成本,但確保測試流量與版次迭代絕不影響 Production 照護與家人正式數據。 - 伺服器端權限存取控制 (Server-Side Authorization): 不僅在前端 UI 隱藏未授權介面,更於 Supabase PostgreSQL 設定 Row Level Security (RLS) 與 Profiles 白名單政策,確保未授權 API 請求在資料庫層即被拒絕。
- 明確狀態建模與量測流轉防呆 (Explicit State Modeling): 依台灣高血壓學會 722 原則,將量測分為 Rest 休息倒數與雙次輸入狀態,控管 1 分鐘休息間隔並防範非同步與重複連點問題。
- 純函式邏輯抽離與自動化測試 (Pure Functional Domain Logic & Unit Tests): 將血壓標示判定與時段分類抽離為無副作用的純函式 (Pure Functions),搭配 92.9%+ Vitest 單元測試,確保核心照護數據計算精確度。