日记系统 - 软件需求规格说明书
文档状态:进行中
最后更新:2026-04-15
版本:v1.0
📋 目录
- 项目概述
- 功能需求
- 非功能需求
- 技术架构
- 数据模型
- 开发计划
- 变更日志
1. 项目概述
1.1 项目目标
构建一个个人日记系统,用于:
- 记录每日工作、学习和成长
- 追踪任务进度
- 积累经验教训
- 形成个人知识库
1.2 目标用户
- 主要用户:码神(AI 助手)
- 次要用户:北极星(人类用户)
1.3 核心价值
- 持续性:每天记录,形成连续性
- 反思性:定期回顾,提取经验
- 可追溯:按日期快速查找历史
- 结构化:分类整理,便于检索
2. 功能需求
2.1 日记管理 ✅
| ID |
需求 |
优先级 |
状态 |
验收标准 |
| F-001 |
创建日记条目 |
P0 |
✅ 已实现 |
能创建包含日期和内容的日记 |
| F-002 |
编辑日记内容 |
P0 |
✅ 已实现 |
能修改已有日记 |
| F-003 |
删除日记 |
P1 |
⏳ 待实现 |
- |
| F-004 |
查看今日日记 |
P0 |
✅ 已实现 |
API /api/entries/today/ 返回今天日记 |
| F-005 |
查看历史日记 |
P0 |
✅ 已实现 |
API /api/entries/recent/ 返回最近 7 天 |
| F-006 |
日历视图展示 |
P0 |
✅ 已实现 |
详见 2.1.1 日历组件详细需求 |
| F-007 |
日记内容字段 |
P0 |
✅ 已实现 |
包含完成任务、学到的东西、问题、反思、进步、计划 |
2.1.1 日历组件详细需求 ⭐ 核心功能,必须测试
| ID |
功能点 |
详细描述 |
验收方法 |
| F-006-01 |
月历视图 |
显示完整的月历,包含上月/下月的部分日期 |
页面加载后显示当前月份的日历 |
| F-006-02 |
星期标题 |
日历顶部显示 日、一、二、三、四、五、六 |
第一行显示 7 个星期标题 |
| F-006-03 |
日期高亮 - 今天 |
今天的日期用特殊样式高亮(背景色) |
今天的格子有 .today 类 |
| F-006-04 |
日期标记 - 有日记 |
有日记的日期显示 📝 图标 |
调用 API 获取所有日记日期,有日记的格子有 .has-diary 类 |
| F-006-05 |
点击日期 |
点击任意日期,下方显示当天的日记详情 |
点击后触发 selectDate() 函数,显示日记内容 |
| F-006-06 |
日记详情展示 |
显示选中日期的所有字段(完成任务、学到的东西等) |
详情区域显示完整的日记内容 |
| F-006-07 |
无日记提示 |
点击没有日记的日期,显示"这一天还没有日记" |
显示友好的空状态提示 |
| F-006-08 |
上月切换 |
点击"上月"按钮,显示上个月的日历 |
调用 prevMonth(),日历刷新 |
| F-006-09 |
下月切换 |
点击"下月"按钮,显示下个月的日历 |
调用 nextMonth(),日历刷新 |
| F-006-10 |
非当月日期 |
上月/下月的日期用灰色显示,不可点击 |
有 .other-month 类,样式灰色 |
⚠️ 此组件为日记系统的核心功能,任何前端修改后必须手动验证以上 10 个功能点!
2.2 经验总结 ✅
| ID |
需求 |
优先级 |
状态 |
| F-010 |
创建经验总结 |
P0 |
✅ 已实现 |
| F-011 |
经验分类(部署/开发/数据库/权限/网络/其他) |
P0 |
✅ 已实现 |
| F-012 |
记录问题描述 |
P0 |
✅ 已实现 |
| F-013 |
记录解决方案 |
P0 |
✅ 已实现 |
| F-014 |
记录经验教训 |
P1 |
✅ 已实现 |
| F-015 |
按类别查看经验 |
P1 |
✅ 已实现 |
| F-016 |
经验总结搜索 |
P2 |
⏳ 待实现 |
2.3 任务管理 ✅
| ID |
需求 |
优先级 |
状态 |
| F-020 |
创建任务 |
P0 |
✅ 已实现 |
| F-021 |
任务关联到日记 |
P0 |
✅ 已实现 |
| F-022 |
任务状态追踪(进行中/已完成) |
P0 |
✅ 已实现 |
| F-023 |
任务完成率统计 |
P0 |
✅ 已实现 |
| F-024 |
任务优先级 |
P2 |
⏳ 待实现 |
2.4 统计面板 ✅
| ID |
需求 |
优先级 |
状态 |
| F-030 |
总日记数统计 |
P0 |
✅ 已实现 |
| F-031 |
总任务数统计 |
P0 |
✅ 已实现 |
| F-032 |
进行中任务数 |
P0 |
✅ 已实现 |
| F-033 |
已完成任务数 |
P0 |
✅ 已实现 |
| F-034 |
任务完成率 |
P0 |
✅ 已实现 |
| F-035 |
经验总结数 |
P0 |
✅ 已实现 |
2.5 搜索与筛选 ⏳
| ID |
需求 |
优先级 |
状态 |
| F-040 |
按日期范围筛选日记 |
P1 |
⏳ 待实现 |
| F-041 |
按关键词搜索日记内容 |
P1 |
⏳ 待实现 |
| F-042 |
按类别筛选经验总结 |
P1 |
⏳ 待实现 |
| F-043 |
高级搜索(组合条件) |
P2 |
⏳ 待实现 |
2.6 数据导出 ⏳
| ID |
需求 |
优先级 |
状态 |
| F-050 |
导出日记为 Markdown |
P1 |
⏳ 待实现 |
| F-051 |
导出经验总结 |
P1 |
⏳ 待实现 |
| F-052 |
全量数据备份 |
P0 |
⏳ 待实现 |
| F-053 |
定期自动备份 |
P1 |
⏳ 待实现 |
2.7 用户认证 ⏳
| ID |
需求 |
优先级 |
状态 |
| F-060 |
用户登录 |
P2 |
⏳ 待实现 |
| F-061 |
权限控制 |
P2 |
⏳ 待实现 |
| F-062 |
多用户支持 |
P3 |
⏳ 待实现 |
3. 非功能需求
3.1 性能
| ID |
需求 |
优先级 |
状态 |
| N-001 |
页面加载时间 < 2 秒 |
P0 |
✅ 已满足 |
| N-002 |
API 响应时间 < 500ms |
P0 |
✅ 已满足 |
| N-003 |
支持 1000+ 日记条目 |
P1 |
✅ 已满足 |
3.2 可用性
| ID |
需求 |
优先级 |
状态 |
| N-010 |
7x24 小时可用 |
P0 |
✅ 已满足 |
| N-011 |
数据持久化 |
P0 |
✅ 已满足 |
| N-012 |
支持离线访问 |
P2 |
⏳ 待实现 |
3.3 安全性
| ID |
需求 |
优先级 |
状态 |
| N-020 |
防止 SQL 注入 |
P0 |
✅ 已满足 |
| N-021 |
防止 XSS 攻击 |
P0 |
✅ 已满足 |
| N-022 |
敏感数据加密 |
P1 |
⏳ 待实现 |
3.4 可维护性
| ID |
需求 |
优先级 |
状态 |
| N-030 |
代码有文档注释 |
P0 |
✅ 已满足 |
| N-031 |
有功能清单文档 |
P0 |
✅ 已满足 |
| N-032 |
有开发规范文档 |
P0 |
✅ 已满足 |
| N-033 |
有 Git 版本控制 |
P0 |
✅ 已满足 |
4. 技术架构
4.1 技术栈
| 层级 |
技术 |
版本 |
说明 |
| 后端 |
Django |
4.2+ |
Web 框架 |
| API |
Django REST Framework |
3.14+ |
RESTful API |
| 前端 |
原生 HTML/JS |
- |
轻量级实现 |
| 数据库 (本地) |
PostgreSQL |
14+ |
内网数据库 |
| 数据库 (云) |
SQLite |
3.x |
本地文件 |
| Web 服务器 |
Nginx |
1.24+ |
反向代理 |
| 应用服务器 |
Gunicorn |
25.x |
WSGI 服务器 |
4.2 部署架构
4.3 目录结构
5. 数据模型
5.1 DiaryEntry(日记条目)
5.2 Experience(经验总结)
5.3 DailyProgress(任务进度)
6. 开发计划
6.1 已完成 (v1.0) ✅
6.2 进行中 (v1.1) 🚧
6.3 计划中 (v2.0) 📅
6.4 未来规划 (v3.0) 🔮
7. 变更日志
v1.0 (2026-04-15)
- ✅ 初始版本发布
- ✅ 日记管理功能
- ✅ 经验总结功能
- ✅ 任务管理功能
- ✅ 日历组件
- ✅ 统计面板
- ✅ 云服务器部署
v0.2 (2026-04-14)
- ✅ 添加经验总结模块
- ✅ 添加分类管理
- ✅ 前端展示优化
v0.1 (2026-04-14)
- ✅ 项目初始化
- ✅ 基础日记功能
- ✅ Django 后端搭建
📝 需求变更流程
- 提出需求 - 在 GitHub Issues 或对话中提出
- 评估优先级 - 确定 P0/P1/P2/P3
- 更新文档 - 修改本需求文档
- 开发实现 - 按开发规范执行
- 测试验证 - 验证功能正常
- 更新状态 - 标记为"已实现"
本文档由码神维护,每次需求变更后必须更新并提交 git