Notes App — 任务拆解
状态:🟢 进行中 | 2026-05-22
任务总览
| # | 任务 | 负责人 | 优先级 | 状态 | 依赖 |
|---|---|---|---|---|---|
| 1 | 后端项目初始化 + SQLite Schema + FTS5 | BE | P0 | ✅已完成 | 无 |
| 2 | 分类 CRUD API | BE | P1 | ✅已完成 | #1 |
| 3 | 标签 CRUD API | BE | P1 | ✅已完成 | #1 |
| 4 | 笔记 CRUD API | BE | P0 | ✅已完成 | #1 |
| 5 | 全文搜索 API | BE | P1 | ✅已完成 | #4 |
| 6 | 前端项目初始化 + 路由 + 布局 | FE | P0 | ✅已完成 | 无 |
| 7 | 分类列表 + 标签云组件 | FE | P1 | ✅已完成 | #6 |
| 8 | 笔记列表 + 搜索组件 | FE | P0 | ✅已完成 | #6 |
| 9 | Markdown 编辑器 + 实时预览 | FE | P0 | ✅已完成 | #6 |
| 10 | 前后端联调 + 响应式适配 | FE | P0 | ✅已完成 | #4,#9 |
| 11 | Docker 部署配置 | DevOps | P1 | ✅已完成 | #10 |
| 12 | 功能测试 + 边界测试 | QA | P1 | ✅已完成 | #11 |
#1 后端项目初始化 + SQLite Schema + FTS5
负责人:BE
预估:1-2 天
依赖:无
验收标准
- [ ] Spring Boot 3.4.5 + Java 21 项目可正常启动
- [ ] SQLite 数据库自动创建(
notes.db) - [ ] 四张表(category, note, tag, note_tag)按 plan.md 数据模型建表
- [ ] FTS5 虚拟表创建,索引 note.title + note.content
- [ ] 数据库文件路径可配置(默认
./data/notes.db)
#2 分类 CRUD API
负责人:BE
预估:1 天
依赖:#1
验收标准
- [ ]
POST /api/categories— 创建分类,返回分类对象含 id - [ ]
GET /api/categories— 获取全部分类列表 - [ ]
PUT /api/categories/{id}— 更新分类名称/颜色 - [ ]
DELETE /api/categories/{id}— 删除分类(关联笔记的 category_id 置 null) - [ ] 统一返回
{code, data, message}
#3 标签 CRUD API
负责人:BE
预估:1 天
依赖:#1
验收标准
- [ ]
POST /api/tags— 创建标签 - [ ]
GET /api/tags— 获取全部标签列表 - [ ]
PUT /api/tags/{id}— 更新标签名称/颜色 - [ ]
DELETE /api/tags/{id}— 删除标签,同时删除 note_tag 关联 - [ ] 统一返回
{code, data, message}
#4 笔记 CRUD API
负责人:BE
预估:1-2 天
依赖:#1
验收标准
- [ ]
POST /api/notes— 创建笔记(title, content, category_id, tag_ids) - [ ]
GET /api/notes— 分页列表,支持?category=&tag=&q=筛选 - [ ]
GET /api/notes/{id}— 获取单条笔记详情(含分类名、标签列表) - [ ]
PUT /api/notes/{id}— 更新笔记内容、分类、标签 - [ ]
DELETE /api/notes/{id}— 删除笔记及关联的 note_tag - [ ] created_at / updated_at 自动维护
#5 全文搜索 API
负责人:BE
预估:1 天
依赖:#4
验收标准
- [ ]
GET /api/search?q=关键词— 返回匹配的笔记列表 - [ ] 搜索范围:title + content(FTS5)
- [ ] 返回结果含分类名、标签列表
- [ ] 空关键词返回全部笔记(降级为普通列表)
#6 前端项目初始化 + 路由 + 布局
负责人:FE
预估:1 天
依赖:无
验收标准
- [ ] Vue 3 + Vite 项目创建,可正常启动
- [ ] 三栏布局(Sidebar | NoteList | NoteEditor)
- [ ] Vue Router 配置(
/→ 默认视图) - [ ] Vite proxy 配置
/api→http://localhost:8080 - [ ] 引入
marked+highlight.js依赖
#7 分类列表 + 标签云组件
负责人:FE
预估:1 天
依赖:#6
验收标准
- [ ] 侧边栏展示分类列表(名称 + 颜色圆点 + 笔记数)
- [ ] 点击分类 → 笔记列表筛选
- [ ] 标签云展示(Chip 样式,名称 + 颜色)
- [ ] 点击标签 → 笔记列表筛选
- [ ] 「全部笔记」入口,清除筛选
#8 笔记列表 + 搜索组件
负责人:FE
预估:1-2 天
依赖:#6
验收标准
- [ ] 笔记列表展示(标题、内容摘要、更新时间、标签)
- [ ] 支持按分类/标签筛选
- [ ] 搜索框输入 → debounce 300ms → 调用搜索 API → 刷新列表
- [ ] 点击笔记 → 右侧编辑器加载
- [ ] 「新建笔记」按钮 → 清空编辑器,标题聚焦
- [ ] 空状态提示(无笔记时显示引导文案)
#9 Markdown 编辑器 + 实时预览
负责人:FE
预估:2 天
依赖:#6
验收标准
- [ ] 左侧编辑区(textarea / CodeMirror),右侧实时预览(marked 渲染)
- [ ] 编辑内容 debounce 2s 自动保存
- [ ] 标题输入框 + 分类选择器 + 标签选择器
- [ ] 支持代码块语法高亮(highlight.js)
- [ ] 保存按钮手动触发保存
- [ ] 删除按钮(二次确认弹窗)
#10 前后端联调 + 响应式适配
负责人:FE
预估:1-2 天
依赖:#4, #9
验收标准
- [ ] 所有 API 调用正常(列表、CRUD、搜索)
- [ ] 自动保存可正常工作
- [ ] < 768px 响应式:单栏布局,列表→编辑器切换流畅
- [ ] 移动端编辑器全屏,顶部返回按钮
- [ ] 加载状态、错误提示、空状态覆盖
#11 Docker 部署配置
负责人:DevOps
预估:1 天
依赖:#10
验收标准
- [ ] Dockerfile 三阶段构建(Node → Maven → JRE)
- [ ] docker-compose.yml 配置端口 8080 + bind mount
./data/ - [ ]
docker compose up可正常启动 - [ ] 浏览器访问
http://localhost:8080页面正常 - [ ] 重启容器后数据不丢失
#12 功能测试 + 边界测试
负责人:QA
预估:1 天
依赖:#11
验收标准
- [ ] 笔记 CRUD 全流程正常
- [ ] 分类/标签创建、筛选、删除正常
- [ ] 全文搜索返回正确结果
- [ ] Markdown 渲染(标题、代码块、列表、链接)正确
- [ ] 边界测试:空标题、超长内容、特殊字符
- [ ] 响应式三种尺寸(桌面/平板/手机)可用
- [ ] 容器重启后数据持久化
阻塞记录
暂无。
变更记录
暂无。