Backend: - Add dashboard API router with widget endpoints - Create dashboard schemas for widget data - Add dashboard tests Frontend: - Enhance Dashboard page with widget components - Add dashboard service for API calls - Create reusable dashboard components OpenSpec: - Archive add-dashboard-widgets change - Add dashboard capability specs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Implementation Tasks
Phase 1: Backend API
Task 1.1: Create Dashboard Schema
- Create
backend/app/schemas/dashboard.pywith response modelsTaskStatistics: assigned_count, due_this_week, overdue_count, completion_rateDashboardResponse: task_stats, workload_summary, health_summary
- Validation: Schema imports without errors
Task 1.2: Create Dashboard Router
- Create
backend/app/api/dashboard/router.py - Implement
GET /api/dashboardendpoint- Query tasks assigned to current user
- Reuse workload service for current week summary
- Reuse health service for project summary
- Register router in
backend/app/main.py - Validation:
curl -H "Authorization: Bearer $TOKEN" http://localhost:8000/api/dashboardreturns valid JSON
Phase 2: Frontend Implementation
Task 2.1: Create Dashboard Service
- Create
frontend/src/services/dashboard.ts - Define TypeScript interfaces matching backend schema
- Implement
getDashboard()API function - Validation: TypeScript compiles without errors
Task 2.2: Implement Dashboard Components
- Create
StatisticsCardcomponent for task stats - Create
WorkloadWidgetcomponent (reuse styles from WorkloadPage) - Create
HealthSummaryWidgetcomponent - Create
QuickActionscomponent with navigation links - Validation: Components render without console errors
Task 2.3: Integrate Dashboard Page
- Replace placeholder content in
Dashboard.tsx - Add loading state with Skeleton components
- Add error handling with retry
- Style components to match existing UI
- Validation: Dashboard displays data correctly after login
Phase 3: Testing & Polish
Task 3.1: Add Backend Tests
- Create
backend/tests/test_dashboard.py - Test endpoint returns correct structure
- Test data aggregation logic
- Validation:
pytest tests/test_dashboard.py -vpasses
Task 3.2: Visual Polish
- Ensure responsive layout for mobile
- Match color scheme with existing pages
- Add subtle animations for loading states
- Validation: Manual visual review on different screen sizes
Dependencies
- Tasks 2.x depend on Task 1.2 completion
- Task 3.1 can run in parallel with Phase 2