跳至主要内容

Sprint 1: 平台基礎 - 認證與權限 (Week 1-2)

狀態: ✅ 已完成 完成日期: 2025-11-03 Story Points: 18 點(5 + 8 + 5)


📋 Sprint 目標

完成用戶認證與角色權限系統,建立基礎 Layout


📊 Sprint Backlog

📝 文檔階段 - ✅ 已完成 (2025-10-31)

任務狀態完成日期備註
創建 Epic 0 文檔2025-10-31epic-0-platform-infrastructure.md (436 行)
創建 US-001 文檔2025-10-31user-login.md (372 行)
創建 US-002 文檔2025-10-31role-based-access.md (485 行)
創建 US-003 文檔2025-10-31basic-layout.md (464 行)
創建 US-001 SBE 場景2025-10-313 個場景
創建 US-002 SBE 場景2025-10-313 個場景
創建 US-003 SBE 場景2025-10-312 個場景

💻 開發階段 - ✅ 已完成


🎯 US-001: 用戶登入 (5 Story Points)

狀態: ✅ 已完成 (2025-11-03)

任務清單

任務負責人估時狀態備註
後端開發1 天✅ 已完成Mock API 實作
└─ 實作 POST /api/v1/auth/login API-0.5 天src/mocks/handlers/auth.ts
└─ JWT Token 生成邏輯-0.3 天Access Token + Refresh Token
└─ 帳號鎖定邏輯 (Redis 計數器)-0.2 天Mock API 支援
前端開發1-1.5 天✅ 已完成
└─ 創建 LoginPage 與 LoginForm 組件-0.5 天src/pages/LoginPage.tsx
└─ 表單驗證邏輯 (React Hook Form + Zod)-0.3 天Username + Password 驗證
└─ Redux Slice 整合-0.3 天src/features/iam/me-slice.ts
└─ 路由保護邏輯-0.4 天src/routes/ProtectedRoute.tsx
整合與測試0.5 天✅ 已完成
└─ 整合測試 (API + UI)-0.2 天手動測試驗證
└─ E2E 測試-0.2 天⏭️Sprint 1 後補充
└─ Mock API 更新-0.1 天支援 username 登入

完成標準 (Definition of Done)

  • 後端 API 實作完成(Mock API)
  • 前端 UI 實作完成並符合設計規範
  • 整合測試通過(API + UI)
  • E2E 測試通過(至少涵蓋 Scenario 1、2、5)- 可選
  • 單元測試覆蓋率 > 80% - 可選
  • Mock API 已更新
  • 手動測試指南已創建(docs/testing/US-001-manual-testing-guide.md)
  • API 文檔已更新(docs/api-specs/authentication.md)

🎯 US-002: 角色權限控制 (8 Story Points)

狀態: ✅ 已完成 (2025-11-03)

任務清單

任務負責人估時狀態備註
後端開發1.5 天✅ 已完成Mock API 實作
└─ API 層級權限檢查中間件-0.5 天src/mocks/middleware/auth-middleware.ts
└─ Token 刷新端點-0.3 天POST /api/v1/auth/refresh
└─ 數據層級權限過濾-0.5 天⏭️Phase 2 實作
└─ 審計日誌記錄-0.2 天Console 審計日誌(403 錯誤)
前端開發1.5-2 天✅ 已完成
└─ ProtectedRoute 組件-0.3 天src/routes/protected-route.tsx
└─ usePermission Hook-0.3 天src/hooks/use-permission.ts
└─ API 攔截器 (Token 附加與刷新)-0.5 天src/services/apiClient.ts
└─ 動態選單顯示-0.4 天menu-config.ts + 角色過濾
└─ 403 錯誤頁面-0.2 天src/pages/forbidden-page.tsx
整合與測試1 天✅ 已完成
└─ 整合測試 (多角色權限檢查)-0.4 天手動測試指南
└─ E2E 測試 (3 種角色訪問場景)-0.4 天⏭️Sprint 1 後補充
└─ Mock API 更新-0.2 天訂單 API + 權限檢查

完成標準 (Definition of Done)

  • 後端權限檢查中間件實作完成(Mock API)
  • 前端路由保護與組件權限檢查實作完成
  • Token 自動刷新機制實作完成
  • 整合測試通過(多種角色的權限驗證)
  • E2E 測試通過(至少涵蓋 3 種角色的訪問場景)- 可選
  • 單元測試覆蓋率 > 80% - 可選
  • API 文檔已更新(權限要求)
  • Mock API 已更新(支援角色權限檢查)
  • 403 錯誤頁面實作完成
  • 審計日誌記錄未授權訪問

🎯 US-003: 基礎 Layout 與導航 (5 Story Points)

狀態: ✅ 已完成 (2025-11-03)

任務清單

任務負責人估時狀態備註
Layout 組件開發1.5 天✅ 已完成
└─ MainLayout 組件-0.3 天src/layouts/MainLayout.tsx
└─ Header 組件-0.3 天src/layouts/Header.tsx
└─ Sidebar 組件-0.5 天src/layouts/Sidebar.tsx
└─ Footer 組件-0.1 天src/layouts/Footer.tsx
└─ Sidebar 收合邏輯-0.3 天SidebarContext + localStorage
動態選單與路由整合0.5 天✅ 已完成
└─ 選單配置 (menuConfig.ts)-0.2 天src/layouts/menuConfig.ts
└─ 角色權限過濾-0.1 天filterMenuItems 函數
└─ 當前頁面高亮邏輯-0.1 天NavLink 自動處理
└─ React Router 整合-0.1 天MainLayout + Outlet
用戶選單與通知0.5 天✅ 已完成
└─ 用戶選單下拉-0.2 天UserMenu 組件
└─ 登出邏輯-0.2 天logout action + 重定向
└─ 通知鈴鐺 UI-0.1 天Phase 2 功能預留
測試與優化0.5 天✅ 已完成
└─ 單元測試-0.2 天⏭️Sprint 1 後補充
└─ 響應式測試-0.2 天手動測試通過
└─ 無障礙性測試-0.1 天⏭️Sprint 1 後補充

完成標準 (Definition of Done)

  • 所有 Layout 組件實作完成
  • Sidebar 收合功能實作完成(含 localStorage 持久化)
  • 響應式設計實作完成(桌面、平板、手機)
  • Hamburger 選單與 Overlay 模式實作完成
  • 動態選單顯示實作完成(根據角色過濾)
  • 當前頁面高亮功能實作完成
  • 用戶選單下拉實作完成(個人設定、登出)
  • 通知鈴鐺 UI 實作完成(Phase 2 功能預留)
  • 單元測試通過 - 可選
  • E2E 測試通過(至少涵蓋 Scenario 1、2)- 可選
  • 響應式測試通過(桌面、平板、手機)
  • 手動測試指南已創建(docs/testing/US-003-manual-testing-guide.md)

📋 Sprint 完成檢查清單

  • US-001: 用戶登入(已完成 2025-11-03)
  • US-002: 角色權限控制(已完成 2025-11-03)
  • US-003: 基礎 Layout(已完成 2025-11-03)
  • Sprint 1 核心功能開發完成
  • 手動測試指南已創建(US-001/002/003)
  • API 文檔已更新(authentication.md)
  • 單元測試補充(目標 >80% 覆蓋率)- 可選
  • E2E 測試補充 - 可選

🔄 Sprint 回顧

完成日期: 2025-11-03

做得好的地方 ✅

  • ✅ Mock API 實作快速,支援完整的認證與權限流程
  • ✅ 前端組件結構清晰,復用性高
  • ✅ 手動測試指南詳細,便於驗收
  • ✅ 技術棧驗證成功(React 19 + TypeScript 5.9 + React Hook Form + Zod)

需要改進的地方 ⚠️

  • ⚠️ E2E 自動化測試未完成(優先手動測試)
  • ⚠️ 單元測試覆蓋率不足(聚焦業務功能)
  • ⚠️ 文檔與開發同步需加強

行動項目 📋

  • 📋 Sprint 2-3 完成後,統一補充 E2E 測試
  • 📋 建立單元測試模板與最佳實踐
  • 📋 持續完善手動測試指南

📚 相關文檔

User Story 文檔

SBE 場景

測試文檔

API 文檔


最後更新: 2025-11-04