有了 PM 撰寫的 PRD 文件與 UIUX Wireframe,接下來就可以請後端工程師進行開發了。首先,必須要先設計 DB Schema,然後才會開始撰寫 API。
在一人團隊的實務面,在真正進入開發之前,會先畫出架構圖,這裡使用的是 mermaid 規格:
graph TB
%% 使用者驗證層 (直接使用)
AUTH[auth.users<br/>🔐 Supabase 認證<br/>📧 Email, 🖼️ Avatar, 📅 Created]
%% 主要資料表 (簡化版)
DP[diet_profiles<br/>🍎 飲食設定檔<br/>⚖️ 體重目標, 📊 營養目標]
DR[diet_records<br/>🍽️ 飲食記錄<br/>📝 描述, 🤖 AI分析]
WR[water_records<br/>💧 水分記錄<br/>🥤 攝取量, ⏰ 時間]
AIR[ai_reports<br/>🤖 通用型 AI 報告<br/>📈 多儀表板支援]
NOT[notifications<br/>🔔 通知系統<br/>💡 提醒, 📱 推播]
mermaid 是一個純文字轉成流程圖的工具,更可以直接在 md 檔案寫,並且直接可以預覽。我先請後端工程師產生 DB Schema:
Claude CLI:
/jk-backend 請根據 PRD.md 產生 DB Schema,並且畫出 mermaid 架構圖
當然,這裡也必須要不斷地的來回討論,才能得出自己想要的結果,由於是最小可行性的開發,所以我必須要盡量簡化整個資料庫的設計,因為後端工程師會很盡責的腦補很多功能,我必須要一個一個砍掉,因為會影響開發時程。討論完畢,我得到了這樣的一個架構圖:
接下來,把架構圖,再度請後端工程師轉化成 supabase 的 SQL 檔案:
Claude CLI:
/jk-backend 請根據 DB Schema 產生 supabase 的 DB.sql
討論完畢,我得到了一個可以匯入到 supabase 的 SQL 檔案:
而在 supabase 有兩種方式給前端呼叫,一種是使用 SDK 方式,另外一種是使用 REST API,可以另外寫 Edge Function 來當作 API 使用。或者是直接使用 DB schema AS REST API,只要把資料庫建構好,REST API 就會自動產生。
最後,整個後端建構完成之後,必須要撰寫 API 文件給前端工程師:
Claude CLI:
/jk-backend 請根據 DB.sql 撰寫一份 API 文件,主要是給前端 Nuxt 串接用
於是乎,後端 DB 與 API 都建立完成,也有一份 re-diet API 文件。
準備進入前端開發。