From d3325b562a7bf6f077d2de52a2c710e979961b54 Mon Sep 17 00:00:00 2001 From: maoshen Date: Wed, 15 Apr 2026 01:21:32 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E8=A7=84=E6=A0=BC=E8=AF=B4=E6=98=8E=E4=B9=A6?= =?UTF-8?q?=EF=BC=88=E5=8A=A8=E6=80=81=E7=BB=B4=E6=8A=A4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REQUIREMENTS.md | 304 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 REQUIREMENTS.md diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md new file mode 100644 index 0000000..0c1a1dd --- /dev/null +++ b/REQUIREMENTS.md @@ -0,0 +1,304 @@ +# 日记系统 - 软件需求规格说明书 + +_文档状态:**进行中** +最后更新:2026-04-15 +版本:v1.0_ + +--- + +## 📋 目录 + +1. [项目概述](#1-项目概述) +2. [功能需求](#2-功能需求) +3. [非功能需求](#3-非功能需求) +4. [技术架构](#4-技术架构) +5. [数据模型](#5-数据模型) +6. [开发计划](#6-开发计划) +7. [变更日志](#7-变更日志) + +--- + +## 1. 项目概述 + +### 1.1 项目目标 +构建一个个人日记系统,用于: +- 记录每日工作、学习和成长 +- 追踪任务进度 +- 积累经验教训 +- 形成个人知识库 + +### 1.2 目标用户 +- **主要用户**:码神(AI 助手) +- **次要用户**:北极星(人类用户) + +### 1.3 核心价值 +- **持续性**:每天记录,形成连续性 +- **反思性**:定期回顾,提取经验 +- **可追溯**:按日期快速查找历史 +- **结构化**:分类整理,便于检索 + +--- + +## 2. 功能需求 + +### 2.1 日记管理 ✅ + +| ID | 需求 | 优先级 | 状态 | +|----|------|--------|------| +| F-001 | 创建日记条目 | P0 | ✅ 已实现 | +| F-002 | 编辑日记内容 | P0 | ✅ 已实现 | +| F-003 | 删除日记 | P1 | ⏳ 待实现 | +| F-004 | 查看今日日记 | P0 | ✅ 已实现 | +| F-005 | 查看历史日记 | P0 | ✅ 已实现 | +| F-006 | 日历视图展示 | P0 | ✅ 已实现 | +| F-007 | 日记内容包含:完成任务、学到的东西、问题、反思、进步、计划 | P0 | ✅ 已实现 | + +### 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 部署架构 + +``` +用户 → Nginx(8001) → Gunicorn(8002) → Django → 数据库 +``` + +### 4.3 目录结构 + +``` +diary-system/ +├── backend/ # Django 后端 +│ ├── diary/ # 日记应用 +│ │ ├── models.py # 数据模型 +│ │ ├── views.py # API 视图 +│ │ ├── serializers.py +│ │ └── urls.py +│ ├── diary_system/ # 项目配置 +│ └── manage.py +├── frontend/ # 前端页面 +│ └── index.html +├── FEATURES.md # 功能清单 +├── DEV_GUIDE.md # 开发规范 +├── REQUIREMENTS.md # 本文档 +└── README.md +``` + +--- + +## 5. 数据模型 + +### 5.1 DiaryEntry(日记条目) + +```python +class DiaryEntry(models.Model): + date = DateField(unique=True) # 日期 + title = CharField(max_length=200) # 标题 + completed_tasks = TextField() # 完成的任务 + learned = TextField() # 学到的东西 + problems = TextField() # 遇到的问题 + reflections = TextField() # 想法和反思 + improvements = TextField() # 进步点 + plans = TextField() # 明日计划 + created_at = DateTimeField() # 创建时间 + updated_at = DateTimeField() # 更新时间 +``` + +### 5.2 Experience(经验总结) + +```python +class Experience(models.Model): + title = CharField(max_length=200) # 标题 + category = CharField(choices=CATEGORY_CHOICES) # 类别 + problem = TextField() # 问题描述 + solution = TextField() # 解决方案 + lesson_learned = TextField() # 经验教训 + date = DateField() # 日期 + created_at = DateTimeField() # 创建时间 +``` + +### 5.3 DailyProgress(任务进度) + +```python +class DailyProgress(models.Model): + entry = ForeignKey(DiaryEntry) # 关联日记 + category = CharField(max_length=50) # 类别 + description = TextField() # 描述 + progress_percent = IntegerField() # 进度百分比 + created_at = DateTimeField() # 创建时间 +``` + +--- + +## 6. 开发计划 + +### 6.1 已完成 (v1.0) ✅ + +- [x] 日记 CRUD 功能 +- [x] 经验总结功能 +- [x] 任务管理功能 +- [x] 统计面板 +- [x] 日历组件 +- [x] 云服务器部署 +- [x] 文档完善(功能清单、开发规范) + +### 6.2 进行中 (v1.1) 🚧 + +- [ ] 搜索功能 +- [ ] 数据导出 +- [ ] 自动备份 + +### 6.3 计划中 (v2.0) 📅 + +- [ ] 用户认证 +- [ ] 多用户支持 +- [ ] 数据可视化(图表) +- [ ] 移动端优化 + +### 6.4 未来规划 (v3.0) 🔮 + +- [ ] AI 辅助写日记 +- [ ] 智能标签 +- [ ] 情感分析 +- [ ] 年度报告生成 + +--- + +## 7. 变更日志 + +### v1.0 (2026-04-15) +- ✅ 初始版本发布 +- ✅ 日记管理功能 +- ✅ 经验总结功能 +- ✅ 任务管理功能 +- ✅ 日历组件 +- ✅ 统计面板 +- ✅ 云服务器部署 + +### v0.2 (2026-04-14) +- ✅ 添加经验总结模块 +- ✅ 添加分类管理 +- ✅ 前端展示优化 + +### v0.1 (2026-04-14) +- ✅ 项目初始化 +- ✅ 基础日记功能 +- ✅ Django 后端搭建 + +--- + +## 📝 需求变更流程 + +1. **提出需求** - 在 GitHub Issues 或对话中提出 +2. **评估优先级** - 确定 P0/P1/P2/P3 +3. **更新文档** - 修改本需求文档 +4. **开发实现** - 按开发规范执行 +5. **测试验证** - 验证功能正常 +6. **更新状态** - 标记为"已实现" + +--- + +_本文档由码神维护,每次需求变更后必须更新并提交 git_