Sprint 4: 客戶管理 (Week 6)
狀態: 🟡 進行中 當前階段: 📝 文檔階段完成,開發階段待開始 Story Points: 21 點(8 + 5 + 8)
📋 Sprint 目標
完成客戶資料管理、列表搜尋、訂單歷史與消費統計功能,建立完整的客戶關係管理系統。
📊 Sprint Backlog
📝 文檔階段 - ✅ 已完成 (2025-11-04)
| 任務 | 狀態 | 完成日期 | 備註 |
|---|---|---|---|
| 創建 Epic 3 文檔 | ✅ | 2025-11-04 | epic-3-customer-management.md (350+ 行) |
| 創建 US-301 文檔 | ✅ | 2025-11-04 | customer-crud.md (450+ 行) |
| 創建 US-302 文檔 | ✅ | 2025-11-04 | customer-list-search.md (400+ 行) |
| 創建 US-303 文檔 | ✅ | 2025-11-04 | customer-order-history.md (450+ 行) |
| 創建 US-301 SBE 場景 | ✅ | 2025-11-04 | 3 個場景 |
| 創建 US-302 SBE 場景 | ✅ | 2025-11-04 | 3 個場景 |
| 創建 US-303 SBE 場景 | ✅ | 2025-11-04 | 3 個場景 |
總計: Epic 3 文檔、3 個 User Story 文檔、9 個 SBE 場景(約 1,650+ 行)
💻 開發階段 - 🔲 待開始
🎯 US-301: 客戶基本資料管理 (8 Story Points)
狀態: 🔲 待開始
任務清單
| 任務 | 負責人 | 估時 | 狀態 | 備註 |
|---|---|---|---|---|
| 後端開發 | 1.5 天 | 🔲 待開始 | Mock API 實作 | |
| └─ 實作 POST /api/v1/customers API | - | 0.5 天 | 🔲 | 創建客戶端點 |
| └─ 實作 PUT /api/v1/customers/{id} API | - | 0.3 天 | 🔲 | 更新客戶端點 |
| └─ 實作 GET /api/v1/customers/check-duplicate API | - | 0.2 天 | 🔲 | 重複檢測端點 |
| └─ 實作 PATCH /api/v1/customers/{id}/status API | - | 0.3 天 | 🔲 | 停用/啟用客戶 |
| └─ 企業客戶聯絡人管理邏輯 | - | 0.2 天 | 🔲 | 聯絡人 CRUD |
| 前端開發 | 2-2.5 天 | 🔲 待開始 | ||
| └─ 創建 CustomerForm 組件 | - | 0.8 天 | 🔲 | 個人/企業客戶表單 |
| └─ 創建 IndividualCustomerForm | - | 0.3 天 | 🔲 | 個人客戶表單 |
| └─ 創建 CorporateCustomerForm | - | 0.4 天 | 🔲 | 企業客戶表單 |
| └─ 創建 ContactList 組件 | - | 0.2 天 | 🔲 | 聯絡人列表 |
| └─ 創建 AddressList 組件 | - | 0.2 天 | 🔲 | 地址列表 |
| └─ 表單驗證邏輯 (React Hook Form + Zod) | - | 0.3 天 | 🔲 | 驗證 Schema |
| └─ 重複檢測邏輯 | - | 0.2 天 | 🔲 | 防抖 500ms |
| 整合與測試 | 0.5 天 | 🔲 待開始 | ||
| └─ 整合測試 (API + UI) | - | 0.2 天 | 🔲 | 手動測試驗證 |
| └─ E2E 測試 | - | 0.2 天 | 🔲 | Sprint 4 後補充 |
| └─ Mock API 更新 | - | 0.1 天 | 🔲 | 種子數據 |
🎯 US-302: 客戶列表與搜尋 (5 Story Points)
狀態: 🔲 待開始
任務清單
| 任務 | 負責人 | 估時 | 狀態 | 備註 |
|---|---|---|---|---|
| 後端開發 | 1 天 | 🔲 待開始 | Mock API 實作 | |
| └─ 實作 GET /api/v1/customers API | - | 0.4 天 | 🔲 | 支援搜尋與過濾 |
| └─ 搜尋邏輯 | - | 0.2 天 | 🔲 | 姓名、電話、地址 |
| └─ 過濾邏輯 | - | 0.2 天 | 🔲 | 類型、等級、狀態、標籤、日期、金額 |
| └─ 分頁邏輯 | - | 0.1 天 | 🔲 | page、limit 參數 |
| └─ 排序邏輯 | - | 0.1 天 | 🔲 | sortBy、sortOrder |
| 前端開發 | 1.5 天 | 🔲 待開始 | ||
| └─ 創建 CustomersPage | - | 0.3 天 | 🔲 | 客戶列表主頁面 |
| └─ 搜尋框組件 (SearchBar) | - | 0.2 天 | 🔲 | 防抖 500ms |
| └─ 過濾條件面板 (FilterPanel) | - | 0.4 天 | 🔲 | 類型、等級、狀態、標籤、日期、金額 |
| └─ 客戶列表組件 | - | 0.3 天 | 🔲 | 表格(桌面)/卡片(手機) |
| └─ 分頁導航組件 (Pagination) | - | 0.2 天 | 🔲 | 可復用 US-203 組件 |
| └─ 響應式設計 | - | 0.1 天 | 🔲 | 桌面/手機 |
| 整合與測試 | 0.5 天 | 🔲 待開始 | ||
| └─ 整合測試 (API + UI) | - | 0.2 天 | 🔲 | TypeScript 編譯通過 |
| └─ E2E 測試 | - | 0.2 天 | 🔲 | Sprint 4 後補充 |
| └─ Mock API 更新 | - | 0.1 天 | 🔲 | 種子數據 |
🎯 US-303: 客戶訂單歷史與統計 (8 Story Points)
狀態: 🔲 待開始
任務清單
| 任務 | 負責人 | 估時 | 狀態 | 備註 |
|---|---|---|---|---|
| 後端開發 | 1.5 天 | 🔲 待開始 | Mock API 實作 | |
| └─ 實作 GET /api/v1/customers/{id} API | - | 0.2 天 | 🔲 | 客戶詳情端點 |
| └─ 實作 GET /api/v1/customers/{id}/orders API | - | 0.3 天 | 🔲 | 訂單歷史端點 |
| └─ 實作 GET /api/v1/customers/{id}/stats API | - | 0.5 天 | 🔲 | 消費統計端點 |
| └─ 實作 GET /api/v1/customers/{id}/notes API | - | 0.2 天 | 🔲 | 客戶備註端點 |
| └─ 實作 POST /api/v1/customers/{id}/notes API | - | 0.2 天 | 🔲 | 新增備註端點 |
| └─ Top 3 商品計算邏輯 | - | 0.1 天 | 🔲 | 統計邏輯 |
| 前端開發 | 2-2.5 天 | 🔲 待開始 | ||
| └─ 創建 CustomerDetailPage | - | 0.4 天 | 🔲 | 客戶詳情主頁面 |
| └─ 創建 CustomerInfoCard | - | 0.2 天 | 🔲 | 客戶資訊卡片 |
| └─ 創建 CustomerStatsCard | - | 0.3 天 | 🔲 | 消費統計卡片 |
| └─ 創建 CustomerOrderHistory | - | 0.3 天 | 🔲 | 訂單歷史列表 |
| └─ 創建 CustomerTrendChart | - | 0.4 天 | 🔲 | 消費趨勢圖表(Recharts) |
| └─ 創建 TopProductsList | - | 0.2 天 | 🔲 | Top 3 商品列表 |
| └─ 創建 CustomerNotes | - | 0.3 天 | 🔲 | 客戶備註組件 |
| └─ 響應式設計 | - | 0.2 天 | 🔲 | 桌面/手機 |
| 整合與測試 | 0.5 天 | 🔲 待開始 | ||
| └─ 整合測試 (API + UI) | - | 0.2 天 | 🔲 | 手動測試驗證 |
| └─ E2E 測試 | - | 0.2 天 | 🔲 | Sprint 4 後補充 |
| └─ Mock API 更新 | - | 0.1 天 | 🔲 | 種子數據 |
📅 開發順序建議
- US-301: 客戶基本資料管理(基礎功能,優先開發)
- US-302: 客戶列表與搜尋(依賴 US-301 的客戶數據)
- US-303: 客戶訂單歷史與統計(依賴 US-301 和 Epic 2 的訂單數據)
📋 Sprint 完成檢查清單
文檔階段
- Epic 3 文檔創建
- US-301/302/303 文檔創建
- 9 個 SBE 場景創建
開發階段
- US-301: 客戶基本資料管理(8 Story Points)
- 後端 Mock API 實作
- 前端 CustomerForm 組件
- 整合測試
- US-302: 客戶列表與搜尋(5 Story Points)
- 後端搜尋過濾 API
- 前端 CustomerFinder 頁面
- 整合測試
- US-303: 客戶訂單歷史與統計(8 Story Points)
- 後端統計 API
- 前端 CustomerDetail 頁面
- 整合測試
💡 技術決策
客戶類型
- ✅ 支援個人客戶與企業客戶兩種類型
- ✅ 企業客戶支援多位聯絡人管理
客戶等級
- ✅ 客戶等級自動計算(基於累計消費)
- 普通客戶: < $1,000
- VIP: $1,000 - $10,000
- VVIP: > $10,000
重複檢測
- ✅ 電話重複檢測(允許忽略警告)
- ✅ 防抖 500ms
客戶備註
- ✅ 客戶備註僅內部使用(不顯示給客戶)
消費統計
- ✅ 消費統計包含 Top 3 商品與 12 個月趨勢圖
- ✅ 使用 Recharts 繪製趨勢圖
📚 相關文檔
Epic 文檔
User Story 文檔
SBE 場景
- US-301 SBE 場景
- US-302 SBE 場景
- US-303 SBE 場景
🎯 下一步工作
立即開始: US-301 開發(客戶基本資料管理)
任務:
- 實作客戶 CRUD API(Mock API)
- 實作重複檢測 API
- 實作企業客戶聯絡人管理
- 創建 CustomerForm 組件(個人/企業客戶表單)
- 創建表單驗證邏輯(React Hook Form + Zod)
- 創建重複檢測邏輯(防抖 500ms)
最後更新: 2025-11-04