| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498 |
- {
- "project_name": "AI有声书生成工具",
- "base_config": {
- "backend_port": 3000,
- "frontend_port": 5173,
- "db_host": "localhost",
- "db_port": 3306,
- "auth_enabled": false
- },
- "features": [
- {
- "id": 1,
- "description": "播放记录 - 数据库表设计",
- "status": "done",
- "passes": true,
- "backend_test_steps": [
- "1. curl -X POST http://localhost:3000/api/player/progress -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"audioId\":\"audio-001\",\"progress\":30.5,\"duration\":180}' - 验证创建播放记录",
- "2. curl http://localhost:3000/api/player/progress?userId=test-user - 验证查询播放记录列表",
- "3. curl -X PUT http://localhost:3000/api/player/progress/audio-001 -H 'Content-Type: application/json' -d '{\"progress\":60.0}' - 验证更新播放进度",
- "4. curl -X DELETE http://localhost:3000/api/player/progress/audio-001 - 验证删除播放记录"
- ],
- "frontend_test_steps": [
- "1. 打开播放器页面",
- "2. 点击播放音频",
- "3. 等待5秒后查看播放进度是否自动保存",
- "4. 刷新页面验证续播位置是否正确"
- ]
- },
- {
- "id": 2,
- "description": "播放记录 - 前端播放器集成",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/player/progress?userId=test-user - 验证获取播放进度接口正常"
- ],
- "frontend_test_steps": [
- "1. 打开player页面",
- "2. 选择一个有播放进度的音频",
- "3. 验证是否从上次进度位置开始播放",
- "4. 验证播放进度每5秒自动保存"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 3,
- "description": "收藏功能 - 数据库表设计",
- "backend_test_steps": [
- "1. curl -X POST http://localhost:3000/api/favorites -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"audioId\":\"audio-002\"}' - 验证添加收藏",
- "2. curl http://localhost:3000/api/favorites?userId=test-user - 验证查询收藏列表",
- "3. curl -X DELETE http://localhost:3000/api/favorites/audio-002 - 验证取消收藏",
- "4. curl -X POST http://localhost:3000/api/favorites -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"audioId\":\"audio-003\"}' - 重新添加收藏用于后续测试"
- ],
- "frontend_test_steps": [
- "1. 打开player页面",
- "2. 点击收藏按钮",
- "3. 验证收藏状态变为已收藏",
- "4. 进入favorites页面",
- "5. 验证收藏的音频显示在列表中",
- "6. 点击取消收藏按钮",
- "7. 验证列表中该音频已移除"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 4,
- "description": "收藏功能 - favorites页面开发",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/favorites?userId=test-user - 验证收藏列表查询"
- ],
- "frontend_test_steps": [
- "1. 进入favorites收藏页面",
- "2. 验证页面正常加载,显示收藏列表",
- "3. 点击某个音频进入播放器",
- "4. 返回favorites页面验证列表刷新正常"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 5,
- "description": "定时关闭 - 前端定时器实现",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 打开player页面并开始播放",
- "2. 点击定时关闭按钮",
- "3. 选择15分钟定时",
- "4. 验证倒计时显示正确",
- "5. 等待或快进到定时时间",
- "6. 验证播放自动暂停"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 6,
- "description": "播放速度记忆 - 用户偏好API",
- "backend_test_steps": [
- "1. curl -X POST http://localhost:3000/api/user/preferences -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"playSpeed\":1.5}' - 验证创建用户偏好",
- "2. curl http://localhost:3000/api/user/preferences?userId=test-user - 验证查询用户偏好",
- "3. curl -X PUT http://localhost:3000/api/user/preferences -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"playSpeed\":2.0}' - 验证更新播放速度",
- "4. curl -X PUT http://localhost:3000/api/user/preferences -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"playSpeed\":1.0}' - 恢复默认速度"
- ],
- "frontend_test_steps": [
- "1. 打开player页面",
- "2. 调整播放速度为1.5x",
- "3. 刷新页面",
- "4. 验证播放速度仍为1.5x"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 7,
- "description": "分享功能 - 微信JSSDK集成",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/share?audioId=audio-001 - 验证生成分享链接接口"
- ],
- "frontend_test_steps": [
- "1. 打开player页面",
- "2. 点击分享按钮",
- "3. 验证分享面板正常弹出",
- "4. 验证分享卡片显示标题、封面、简介"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 8,
- "description": "分享功能 - 分享卡片生成",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/share?audioId=audio-001 - 验证分享信息接口返回正确数据"
- ],
- "frontend_test_steps": [
- "1. 打开player页面",
- "2. 点击分享到微信好友",
- "3. 验证分享内容包含音频标题",
- "4. 点击分享到朋友圈",
- "5. 验证朋友圈分享内容正确"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 9,
- "description": "加载优化 - 骨架屏组件",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 刷新首页",
- "2. 验证骨架屏正常显示",
- "3. 验证数据加载完成后骨架屏消失",
- "4. 验证内容正常渲染"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 10,
- "description": "加载优化 - 图片懒加载",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 进入包含多张图片的列表页面",
- "2. 验证首屏图片正常加载",
- "3. 滚动页面",
- "4. 验证下方图片进入可视区时加载",
- "5. 滚动回顶部",
- "6. 验证图片已缓存不会重复加载"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 11,
- "description": "全局搜索 - 搜索API",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/search?q=test - 验证搜索接口",
- "2. curl http://localhost:3000/api/search?q=故事 - 验证中文搜索",
- "3. curl http://localhost:3000/api/search?q= - 验证空关键词处理"
- ],
- "frontend_test_steps": [
- "1. 进入search搜索页面",
- "2. 输入搜索关键词",
- "3. 验证搜索结果列表正常显示",
- "4. 验证搜索结果相关性"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 12,
- "description": "全局搜索 - search页面开发",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/search?q=小说 - 验证搜索结果正确返回"
- ],
- "frontend_test_steps": [
- "1. 进入search搜索页面",
- "2. 验证搜索历史记录显示",
- "3. 验证热门推荐显示",
- "4. 输入关键词进行搜索",
- "5. 点击搜索结果进入player页面"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 13,
- "description": "内容分类 - 分类管理API",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/categories - 验证获取分类列表",
- "2. curl http://localhost:3000/api/categories/1 - 验证获取分类下音频",
- "3. curl http://localhost:3000/api/categories/999 - 验证无效分类ID处理"
- ],
- "frontend_test_steps": [
- "1. 进入index首页",
- "2. 验证分类标签显示正确",
- "3. 点击某个分类",
- "4. 验证只显示该分类下的音频"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 14,
- "description": "内容分类 - 分类筛选",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/categories/2 - 验证分类2音频列表"
- ],
- "frontend_test_steps": [
- "1. 在index页面切换不同分类标签",
- "2. 验证列表内容随分类变化",
- "3. 验证分类筛选准确性"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 15,
- "description": "音质选择 - 音质切换逻辑",
- "backend_test_steps": [
- "1. curl -X PUT http://localhost:3000/api/user/preferences -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"quality\":\"high\"}' - 验证设置高品质",
- "2. curl http://localhost:3000/api/user/preferences?userId=test-user - 验证获取偏好确认"
- ],
- "frontend_test_steps": [
- "1. 打开player页面",
- "2. 点击音质选择按钮",
- "3. 切换到高音质",
- "4. 验证音质切换生效",
- "5. 刷新页面验证音质设置已保存"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 16,
- "description": "离线缓存 - 下载管理",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/downloads - 验证获取下载列表",
- "2. curl http://localhost:3000/api/downloads/check - 验证检查下载状态"
- ],
- "frontend_test_steps": [
- "1. 进入favorites页面",
- "2. 选择一个音频点击下载",
- "3. 验证下载进度显示",
- "4. 验证下载完成后状态更新"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 17,
- "description": "离线缓存 - 离线播放",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/downloads - 验证下载列表接口"
- ],
- "frontend_test_steps": [
- "1. 进入favorites页面",
- "2. 验证已下载音频显示下载状态",
- "3. 关闭网络连接",
- "4. 点击已下载音频进行播放",
- "5. 验证离线播放正常"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 18,
- "description": "评论打分 - 评论API",
- "backend_test_steps": [
- "1. curl -X POST http://localhost:3000/api/comments -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\",\"audioId\":\"audio-004\",\"content\":\"很好听\",\"rating\":5}' - 验证发表评论",
- "2. curl http://localhost:3000/api/comments/audio-004 - 验证获取评论列表",
- "3. curl -X POST http://localhost:3000/api/comments -H 'Content-Type: application/json' -d '{\"userId\":\"test-user2\",\"audioId\":\"audio-004\",\"content\":\"不错\",\"rating\":4}' - 添加更多评论"
- ],
- "frontend_test_steps": [
- "1. 打开player页面",
- "2. 滑动到评论区",
- "3. 验证评论列表显示",
- "4. 输入评论内容并打分",
- "5. 点击提交",
- "6. 验证新评论显示在列表中"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 19,
- "description": "消息通知 - 通知API",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/notifications - 验证获取通知列表",
- "2. curl -X POST http://localhost:3000/api/notifications/read -H 'Content-Type: application/json' -d '{\"id\":\"notif-001\"}' - 验证标记已读"
- ],
- "frontend_test_steps": [
- "1. 进入任意页面",
- "2. 验证通知图标显示",
- "3. 点击通知图标",
- "4. 验证通知列表正常显示",
- "5. 点击某条通知",
- "6. 验证已读状态更新"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 20,
- "description": "专辑功能 - 数据库表设计",
- "backend_test_steps": [
- "1. curl -X POST http://localhost:3000/api/albums -H 'Content-Type: application/json' -d '{\"name\":\"测试专辑\",\"description\":\"测试描述\",\"coverUrl\":\"https://xxx.jpg\"}' - 验证创建专辑",
- "2. curl http://localhost:3000/api/albums - 验证获取专辑列表",
- "3. curl http://localhost:3000/api/albums/1 - 验证获取专辑详情",
- "4. curl -X PUT http://localhost:3000/api/albums/1 -H 'Content-Type: application/json' -d '{\"name\":\"更新后的专辑名\"}' - 验证更新专辑",
- "5. curl -X DELETE http://localhost:3000/api/albums/1 - 验证删除专辑"
- ],
- "frontend_test_steps": [
- "1. 进入专辑页面",
- "2. 验证专辑列表正常显示",
- "3. 点击某个专辑进入详情",
- "4. 验证专辑封面、名称、描述显示正确"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 21,
- "description": "专辑功能 - 专辑内音频管理API",
- "backend_test_steps": [
- "1. curl -X POST http://localhost:3000/api/albums/1/audio -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"order\":1}' - 验证添加音频到专辑",
- "2. curl http://localhost:3000/api/albums/1/audios - 验证获取专辑内音频列表",
- "3. curl -X PUT http://localhost:3000/api/albums/1/audio/audio-001 -H 'Content-Type: application/json' -d '{\"order\":2}' - 验证调整音频顺序",
- "4. curl -X DELETE http://localhost:3000/api/albums/1/audio/audio-001 - 验证从专辑移除音频"
- ],
- "frontend_test_steps": [
- "1. 进入专辑详情页",
- "2. 验证专辑内音频列表按顺序显示",
- "3. 验证音频数量正确"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 22,
- "description": "专辑功能 - 专辑详情页开发",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/albums/1 - 验证专辑详情接口返回正确数据"
- ],
- "frontend_test_steps": [
- "1. 进入专辑详情页",
- "2. 验证专辑封面、名称、描述显示正确",
- "3. 验证音频列表按顺序显示",
- "4. 点击播放全部按钮",
- "5. 验证进入播放器并开始连续播放"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 23,
- "description": "专辑功能 - 专辑列表页开发",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/albums - 验证专辑列表接口",
- "2. curl http://localhost:3000/api/albums?category=1 - 验证分类筛选专辑"
- ],
- "frontend_test_steps": [
- "1. 进入专辑页面",
- "2. 验证专辑列表网格/列表显示正确",
- "3. 验证封面图、名称、音频数量显示",
- "4. 下拉刷新列表",
- "5. 验证列表正常加载"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 24,
- "description": "专辑功能 - 订阅/关注专辑",
- "backend_test_steps": [
- "1. curl -X POST http://localhost:3000/api/albums/1/subscribe -H 'Content-Type: application/json' -d '{\"userId\":\"test-user\"}' - 验证订阅专辑",
- "2. curl http://localhost:3000/api/albums/subscribed?userId=test-user - 验证获取已订阅专辑列表",
- "3. curl -X DELETE http://localhost:3000/api/albums/1/subscribe - 验证取消订阅"
- ],
- "frontend_test_steps": [
- "1. 进入专辑详情页",
- "2. 点击订阅/关注按钮",
- "3. 验证按钮状态变为已订阅",
- "4. 进入我的订阅页面",
- "5. 验证已订阅专辑显示在列表中",
- "6. 点击取消订阅",
- "7. 验证专辑从列表移除"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 25,
- "description": "专辑功能 - 专辑连续播放",
- "backend_test_steps": [
- "1. curl http://localhost:3000/api/albums/1/audios - 验证获取专辑音频列表接口"
- ],
- "frontend_test_steps": [
- "1. 进入专辑详情页",
- "2. 点击播放全部",
- "3. 验证播放器显示专辑信息",
- "4. 当前音频播放完毕后自动播放下一首",
- "5. 验证播放列表显示专辑内所有音频",
- "6. 可手动切换上一首/下一首"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 26,
- "description": "播放页优化 - 旋转唱片效果",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 进入播放页",
- "2. 验证封面显示在中央",
- "3. 开始播放,验证封面旋转动画",
- "4. 暂停播放,验证旋转停止",
- "5. 继续播放,验证旋转恢复"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 27,
- "description": "播放页优化 - 播放列表展示",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 进入播放页",
- "2. 验证播放列表显示在底部",
- "3. 点击播放列表展开按钮",
- "4. 验证当前播放音频高亮显示",
- "5. 点击列表中的音频切换播放"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 28,
- "description": "播放页优化 - 循环模式(列表循环/单曲循环)",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 进入播放页",
- "2. 验证循环模式按钮显示",
- "3. 点击切换循环模式",
- "4. 验证模式依次变化:列表循环 → 单曲循环 → 关闭",
- "5. 播放完毕验证按当前模式处理"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 29,
- "description": "播放页优化 - 随机播放模式",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 进入播放页",
- "2. 验证随机播放按钮显示",
- "3. 点击开启随机播放",
- "4. 验证点击下一首时随机播放列表中任意一首",
- "5. 关闭随机播放,验证按顺序播放"
- ],
- "status": "done",
- "passes": true
- },
- {
- "id": 30,
- "description": "播放页优化 - 毛玻璃背景效果",
- "backend_test_steps": [],
- "frontend_test_steps": [
- "1. 进入播放页",
- "2. 验证页面背景使用封面模糊图",
- "3. 验证背景有渐变叠加效果",
- "4. 验证文字清晰可读"
- ],
- "status": "done",
- "passes": true
- }
- ]
- }
|