Files
personal-progress-monitor/需求记录.md
MobKBK 8340d1dbbd feat: 新增日程面板、复盘页面与 Agent 读写接口
- 日程:单次/每日/每周/每月重复,JSON 存储,月历按优先级着色圆点 + 悬停提示
- 复盘页:可自定义折线图卡片(SVG) + 每日心得总览(按日期/任务展开)
- Agent 接口:GET /api/agent/overview 读日程+进度,POST /api/agent/schedules 建日程(PPM_API_TOKEN Bearer 鉴权)
- 导出/导入/统计纳入日程与图表;47 项测试全绿
2026-09-04 14:46:41 +08:00

50 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 个人进度监视系统需求记录
> 实现状态(2026-08-24):以下「已冻结的 MVP」已全部在代码中落地并通过测试(`pytest -q`,43 项)。
> 每条后面的 `[x]` 表示已完成。周期统计、布局驱动渲染、一键打卡、时长友好输入、会话 TTL
> 与日期边界处理为本次补充完成项。
## 已冻结的 MVP
- [x] 服务器可部署、可远程访问;Docker Compose 默认绑定本机端口,生产使用反向代理和 HTTPS。
- [x] JSON 是主存储契约,不把运行数据提交到 Git;单 worker/单副本。
- [x] 分层 JSON:任务当前定义、任务修订、每日事实、可重建月归档;原始事实不因归档被移动或删除。
- [x] 任务使用稳定 UUID;默认软删除;改名或修改属性保留 `taskRevision`,后台支持恢复和确认后永久删除。
- [x] `metrics[]` 可并存 `checkin`、`quantity`、`duration`;周期 `day/week/month/lifetime`;`target: null` 表示无上限;duration 使用整数秒。
- [x] 创建、编辑、删除、恢复、排序;字段包括名称、起止日期、优先级 1-5、状态和描述。
- [x] 每日记录支持一键打卡、数量、时长、心得和完成时间;修改记录带版本冲突检测。
- [x] 首页与任务详情分别读取独立布局 JSON;布局组件白名单校验,禁止动态执行。
- [x] 中文响应式 UI:左侧任务列表和拖放排序,右侧任务详情、热力图、多指标进度和今日记录。
- [x] 可选单用户密码会话认证、HttpOnly 会话 Cookie、基本 CSRF 校验(会话服务端 30 天 TTL)。
## 已实现的实现细节(本次补充)
- 进度统计只读原始每日事实、绝不读月归档;`/api/summary` 与 `/api/tasks/<id>/summary`
按各指标自身周期窗口聚合,`lifetime` 下界取任务开始日期,历史查询不会计入 `ref` 之后的事实。
- 百分比采用与浏览器 `Math.round` 一致的四舍五入进位(half-up),避免 `.5` 边界不一致。
- 布局组件按页面/区域约束(如 `task-header`/`today-record` 仅限任务详情页),非法组件不渲染。
- 时长输入为「时:分:秒」,完整 round-trip 任意非负整数秒;一键打卡一次提交所有打卡指标。
- 极端日期(`date.min`/`date.max` 附近的 month/week 窗口)不再溢出,返回 200。
## 日程管理面板(2026-09-04)
- [x] 新增「日程」实体:单次与每日/每周/每月重复,JSON 字段存储(`data/schedules/`),软删除 + 修订快照 + 版本冲突检测,与任务一致。
- [x] 日程按日期打卡(`completions`),重复日程逐次记录完成情况。
- [x] 首页「日程安排」月历面板(`schedule-board` 布局组件),月历按星期对齐,支持新建/编辑/完成/归档。
- [x] 后端 API:`/api/schedules` CRUD、`/api/schedules/calendar`、`/api/schedules/today`、`/api/schedules/{id}/complete`。
- [x] 机器接口(`PPM_API_TOKEN` + Bearer 鉴权):`GET /api/agent/overview` 读当日日程与任务进度,`POST /api/agent/schedules` 新建日程。
## 复盘页面(2026-09-04)
- [x] 新增复盘页布局与顶栏导航,支持按日期查看每日心得。
- [x] 新增可配置完成趋势图卡片(任务/指标/天数),内联 SVG 渲染并支持增删改。
- [x] 图表 JSON 存储、连续日期数据、导出导入和后台统计均已接入。
- [x] 新增 `/api/charts`、`/api/charts/{id}/data` 与 `/api/review/notes` 接口。
## 后续路线图
- 备份/恢复向导与定期快照。
- 多 worker、多副本的分布式锁和更强一致性压力测试。
- 自定义布局编辑器、更多图表和提醒通知。
- 细化周/月目标的跨周期统计与时区偏好设置。