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 配置 /apihttp://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 渲染(标题、代码块、列表、链接)正确
  • [ ] 边界测试:空标题、超长内容、特殊字符
  • [ ] 响应式三种尺寸(桌面/平板/手机)可用
  • [ ] 容器重启后数据持久化

阻塞记录

暂无。

变更记录

暂无。