PROJECT / PILATES-TEACHER-PLATFORM
Paused普拉提老師 Client Portal
Pilates Client Portal
為獨立普拉提老師而設的輕量 Client Portal,集中管理客戶、套票堂數和預約。需求推導和資料模型已經做完,但一個人做不起,暫停開發,直至找到合作夥伴才重啟。
- STATUS
- PAUSED
- CURRENT PHASE
- 暫停開發,等待合作夥伴
- TECH STACK
- Next.js / TypeScript / Supabase / PostgreSQL / Tailwind CSS / Zod / Vitest / Playwright
- DEMO
- NOT AVAILABLE
01 / THE PROBLEM
為甚麼想做這個 Project?
獨立普拉提老師同時用 WhatsApp、Google Calendar、Excel 和紙筆管理預約與套票堂數。學生問「我還剩幾多堂」要人手翻查,改期訊息散落在對話裡,漏記扣堂會直接影響收入和信任。
- 獨立普拉提老師
- 私人教練
- 私人課及小班課學生
這個項目正在實作中。頁面只記錄已做的進度,未完成的部分不會先包裝成成果。
02 / EVOLUTION ROADMAP
不是一次完成,
而是一段一段 build。
Roadmap 只反映目前規劃,不代表功能已經完成。每個階段都可能因實測結果而調整。
- 01In progress
需求推導
用競品的功能頁、說明文件和低分評價,加上老師公開的套票與取消政策,推導真實工作流程和例外情況。每條假設標明來源和風險。
- 02Not started
使用流程與 Wireframe
先確定老師端和學生端各自要看到甚麼,做出可點擊的手機版流程,再決定資料結構。
- 03Not started
資料模型與 Schema
設計客戶、套票、課堂、預約之間的關係,處理 constraint 和 index,而不只是把欄位堆在一起。
- 04Not started
登入、邀請與權限
老師與學生兩種角色的登入和邀請流程,並用 server-side 檢查加 PostgreSQL RLS 做兩層防護,確保學生讀不到別人的資料。
- 05Not started
課堂與預約流程
可預約時段、學生提交預約、老師確認和完成,處理狀態轉換的合法性而不是靠畫面隱藏按鈕。
- 06Not started
套票與 Credit Ledger
不只在套票上存一個剩餘數字,而是把加堂、扣堂、退款、調整和到期都寫成流水帳,並用 transaction 和唯一約束確保完成課堂只扣一次。
- 07Not started
學生 Dashboard
學生登入後看到自己的有效套票、剩餘堂數、到期日、預約狀態和歷史紀錄。
- 08Not started
測試與安全檢查
Unit、Integration 和 E2E 測試,重點驗證跨客戶讀取會被拒絕,以及重複提交不會重複扣堂。
- 09Not started
公開試用與問題收集
把 Demo 公開讓人實際試用,收集問題、錯誤和被推翻的假設。
- 10Not started
部署、監控與案例整理
環境設定、Migration、錯誤追蹤,最後把整個過程整理成一篇完整案例。
NEXT STEP
等待合適的合作夥伴,再重新啟動。
需求推導和資料模型已經整理好。找到合適的合作夥伴後,才會重新確認範圍和繼續開發;這裏會保留目前的決策和進度。