Implementation Plan: System Enhancements
Overview
本实现计划将在现有工作统计系统基础上添加:JWT认证、管理员管理、工作记录月份筛选、北京时间显示、仪表盘月报功能。实现顺序为:后端认证 → 管理员管理 → 月份筛选 → 月报API → 前端认证 → 前端功能增强。
Tasks
[x] 1. 后端认证基础设施
[x] 2. 后端认证API
[x] 3. 后端管理员管理
- 3.1 创建管理员服务
- 在 backend/app/services/admin_service.py 实现管理员 CRUD
- 实现密码哈希存储(bcrypt)
- 实现用户名唯一性检查
- 实现密码长度验证(>=6字符)
- 实现最后一个管理员删除保护
- Requirements: 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9
- 3.2 创建管理员路由
- 在 backend/app/routes/admin.py 创建管理员 CRUD 端点
- 所有端点使用 @require_auth 装饰器保护
- 列表接口不返回 password_hash
- Requirements: 2.2, 2.3, 2.4, 2.5
- [ ]* 3.3 编写管理员属性测试
- Property 4: Admin CRUD Round-Trip
- Property 5: Admin Username Uniqueness
- Property 6: Admin Password Validation
- Property 7: Password Secure Hashing
- Validates: Requirements 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.9
[x] 4. 保护现有API端点
[x] 5. Checkpoint - 后端认证功能验证
[x] 6. 后端月份筛选和月报
- 6.1 扩展工作记录服务支持月份筛选
- 修改 backend/app/services/work_record_service.py
- 添加 year 和 month 参数支持
- 实现月份范围过滤逻辑
- Requirements: 3.1, 3.2, 3.5
- 6.2 扩展工作记录路由支持月份筛选
- 修改 GET /api/work-records 支持 year 和 month 查询参数
- Requirements: 3.2
- 6.3 创建月度汇总API
- 在 work_record_service.py 添加 get_monthly_summary 方法
- 在 work_record.py 路由添加 GET /api/work-records/monthly-summary
- 返回 total_records、total_earnings、top_performers、item_breakdown
- Requirements: 5.2, 5.3, 5.4, 5.5
- [ ]* 6.4 编写月份筛选和月报属性测试
- Property 8: Work Record Month Filter Consistency
- Property 10: Monthly Summary Consistency
- Validates: Requirements 3.1, 3.2, 3.5, 5.2, 5.3, 5.4, 5.5
[x] 7. Checkpoint - 后端功能完成验证
[x] 8. 前端认证基础设施
[x] 9. 前端登录页面
[x] 10. 前端管理员管理页面
[x] 11. 前端时间格式化更新
[x] 12. 前端工作记录月份筛选
[x] 13. 前端仪表盘月报
[x] 14. 前端登出功能
[x] 15. 创建默认管理员
[x] 16. Final Checkpoint - 完整功能验证
- 确保所有测试通过
- 验证前后端集成正常
- 如有问题请询问用户
Notes
- Tasks marked with
* are optional and can be skipped for faster MVP
- 实现顺序:后端认证 → 管理员管理 → 月份筛选 → 前端认证 → 前端功能
- 每个阶段完成后进行 checkpoint 验证
- 属性测试验证核心业务逻辑的正确性