{"projectName":"BookShelf","chineseName":"笔记应用","domain":"note","matchConfidence":"high","summary":"一款支持多端同步、Markdown 编辑和标签管理的笔记应用。","personas":[{"name":"知识工作者","description":"需要记录灵感和整理知识的职场人","painPoints":["笔记分散多处","搜索困难","格式化繁琐"]}],"userStories":[{"id":"US-001","as":"知识工作者","want":"添加书籍。","soThat":"解决痛点：笔记分散多处","priority":"P0"},{"id":"US-002","as":"知识工作者","want":"想读/在读/已读。","soThat":"解决痛点：笔记分散多处","priority":"P0"},{"id":"US-003","as":"知识工作者","want":"更新当前页数。","soThat":"解决痛点：笔记分散多处","priority":"P0"}],"mvpScope":{"description":"MVP 聚焦 书籍库、阅读状态、阅读进度、笔记和标注、书评、统计仪表盘、搜索和筛选，包含页面：首页、统计仪表盘、搜索和筛选、书籍库、阅读状态","features":["书籍库","阅读状态","阅读进度","笔记和标注","书评","统计仪表盘","搜索和筛选"],"pages":["首页","统计仪表盘","搜索和筛选","书籍库","阅读状态"],"estimatedWeeks":3},"features":[{"name":"书籍库","description":"添加书籍。","priority":"P0"},{"name":"阅读状态","description":"想读/在读/已读。","priority":"P0"},{"name":"阅读进度","description":"更新当前页数。","priority":"P0"},{"name":"笔记和标注","description":"写笔记。","priority":"P0"},{"name":"书评","description":"打分。","priority":"P0"},{"name":"统计仪表盘","description":"年度阅读量。","priority":"P0"},{"name":"搜索和筛选","description":"按状态筛选。","priority":"P0"}],"pages":[{"name":"首页","route":"/home","description":"应用首页"},{"name":"统计仪表盘","route":"/stats","description":"年度阅读量。"},{"name":"搜索和筛选","route":"/items","description":"按状态筛选。"},{"name":"书籍库","route":"/books","description":"添加书籍。"},{"name":"阅读状态","route":"/reading_status","description":"想读/在读/已读。"},{"name":"阅读进度","route":"/reading_progress","description":"更新当前页数。"},{"name":"笔记和标注","route":"/notes","description":"写笔记。"},{"name":"书评","route":"/reviews","description":"打分。"}],"apiRequirements":[{"method":"GET","path":"/api/books","description":"获取书籍库列表"},{"method":"POST","path":"/api/books","description":"创建书籍库"},{"method":"GET","path":"/api/reading_status","description":"获取阅读状态列表"},{"method":"POST","path":"/api/reading_status","description":"创建阅读状态"},{"method":"GET","path":"/api/reading_progress","description":"获取阅读进度列表"},{"method":"POST","path":"/api/reading_progress","description":"创建阅读进度"},{"method":"GET","path":"/api/notes","description":"获取笔记和标注列表"},{"method":"POST","path":"/api/notes","description":"创建笔记和标注"},{"method":"POST","path":"/api/auth/login","description":"用户登录"},{"method":"GET","path":"/api/auth/me","description":"获取当前用户"}],"techConstraints":{"platforms":["mobile","web"],"recommendedStack":"React Native / Flutter（跨平台）","considerations":["建议跨平台框架减少开发成本"]},"extraFeatures":[],"devTasks":[{"id":"T-001","title":"项目脚手架搭建","description":"初始化 BookShelf 项目结构，配置构建工具和 CI/CD","phase":"Foundation","estimatedHours":8,"priority":"P0"},{"id":"T-002","title":"数据库设计与初始化","description":"设计数据模型，创建数据库迁移脚本","phase":"Foundation","estimatedHours":16,"priority":"P0"},{"id":"T-003","title":"页面开发：首页","description":"开发 首页 页面（/home）：应用首页","phase":"UI Development","estimatedHours":8,"priority":"P0"},{"id":"T-004","title":"页面开发：统计仪表盘","description":"开发 统计仪表盘 页面（/stats）：年度阅读量。","phase":"UI Development","estimatedHours":8,"priority":"P0"},{"id":"T-005","title":"页面开发：搜索和筛选","description":"开发 搜索和筛选 页面（/items）：按状态筛选。","phase":"UI Development","estimatedHours":8,"priority":"P0"},{"id":"T-006","title":"页面开发：书籍库","description":"开发 书籍库 页面（/books）：添加书籍。","phase":"UI Development","estimatedHours":8,"priority":"P0"},{"id":"T-007","title":"API 开发：GET /api/books","description":"获取书籍库列表","phase":"Backend Development","estimatedHours":4,"priority":"P0"},{"id":"T-008","title":"API 开发：POST /api/books","description":"创建书籍库","phase":"Backend Development","estimatedHours":4,"priority":"P0"},{"id":"T-009","title":"API 开发：GET /api/reading_status","description":"获取阅读状态列表","phase":"Backend Development","estimatedHours":4,"priority":"P0"},{"id":"T-010","title":"API 开发：POST /api/reading_status","description":"创建阅读状态","phase":"Backend Development","estimatedHours":4,"priority":"P0"},{"id":"T-011","title":"前后端联调","description":"前端页面与后端 API 集成联调","phase":"Integration","estimatedHours":16,"priority":"P0"},{"id":"T-012","title":"测试与修复","description":"功能测试、Bug 修复、性能优化","phase":"Testing","estimatedHours":24,"priority":"P1"}],"meta":{"generatedAt":"2026-06-05T10:34:50.750Z","inputLength":115,"domainMatchCount":1,"extractedFeatureCount":7,"extractedPageCount":8,"extractedAPICount":10}}