{ "project_name": "AI有声书生成工具 - 用户体验优化", "base_config": { "backend_port": 3000, "frontend_port": 5173, "db_host": "localhost", "db_port": 3306, "auth_enabled": false }, "features": [ { "id": 1, "description": "搜索页优化 - 增加搜索历史和热门推荐", "backend_test_steps": [ "1. curl http://localhost:3000/api/search/hot - 验证获取热门搜索词", "2. curl -X POST http://localhost:3000/api/search/history -H 'Content-Type: application/json' -d '{\"keyword\":\"测试\"}' - 验证保存搜索历史" ], "frontend_test_steps": [ "1. 进入search搜索页面", "2. 验证搜索历史显示正确(最近5条)", "3. 验证热门推荐显示正确", "4. 点击历史标签,验证自动填入搜索框", "5. 点击热搜词,验证自动填入并搜索", "6. 搜索后验证关键词保存到历史" ], "status": "done", "passes": true }, { "id": 2, "description": "搜索页优化 - 搜索结果关键词高亮", "backend_test_steps": [], "frontend_test_steps": [ "1. 进入search搜索页面", "2. 输入关键词搜索", "3. 验证搜索结果中匹配的文字高亮显示", "4. 验证标题和描述都能正确高亮" ], "status": "done", "passes": true }, { "id": 3, "description": "生成页优化 - 音色试听功能", "backend_test_steps": [ "1. curl http://localhost:3000/api/voices - 验证获取音色列表接口" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 验证每个音色卡片有试听按钮", "3. 点击试听按钮", "4. 验证播放1-2秒的demo音频", "5. 试听中验证按钮变为停止状态", "6. 试听完成验证按钮恢复" ], "status": "done", "passes": true }, { "id": 4, "description": "生成页优化 - 参数滑块实时数值显示", "backend_test_steps": [], "frontend_test_steps": [ "1. 进入生成页面", "2. 拖动语速滑块", "3. 验证滑块上方实时显示当前数值", "4. 拖动音调滑块", "5. 验证实时显示当前音调值", "6. 拖动音量滑块", "7. 验证实时显示当前音量百分比" ], "status": "done", "passes": true }, { "id": 5, "description": "生成页优化 - 生成成功动画和分享引导", "backend_test_steps": [], "frontend_test_steps": [ "1. 输入文本并点击生成", "2. 验证生成成功后显示成功动画", "3. 验证显示分享按钮引导", "4. 验证显示播放按钮可直接跳转播放" ], "status": "done", "passes": true }, { "id": 6, "description": "播放器优化 - 迷你播放器(后台播放)", "backend_test_steps": [], "frontend_test_steps": [ "1. 在播放器页面开始播放音频", "2. 返回上一页或切换到其他页面", "3. 验证底部显示迷你播放器", "4. 验证迷你播放器显示当前音频信息", "5. 点击迷你播放器播放/暂停按钮", "6. 验证播放状态切换", "7. 点击迷你播放器", "8. 验证跳转到播放器页面" ], "status": "done", "passes": true }, { "id": 7, "description": "播放器优化 - 缓冲/加载状态提示", "backend_test_steps": [], "frontend_test_steps": [ "1. 进入播放器页面", "2. 在网络较差环境播放音频", "3. 验证显示'正在缓冲...'提示", "4. 验证加载完成后提示消失", "5. 播放过程中网络中断", "6. 验证显示网络错误提示" ], "status": "done", "passes": true }, { "id": 8, "description": "下载功能优化 - 完善下载流程和文件管理", "backend_test_steps": [ "1. curl http://localhost:3000/api/downloads - 验证获取下载列表" ], "frontend_test_steps": [ "1. 进入播放器页面", "2. 点击下载按钮", "3. 验证显示下载进度条", "4. 验证下载完成后提示成功", "5. 点击'打开文件'选项", "6. 验证能够打开下载的文件", "7. 进入'我的下载'页面", "8. 验证下载列表显示所有下载文件", "9. 验证可以删除已下载文件" ], "status": "done", "passes": true }, { "id": 9, "description": "专辑管理优化 - 新增专辑功能", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/albums -H 'Content-Type: application/json' -d '{\"name\":\"新专辑\",\"description\":\"测试描述\"}' - 验证创建专辑", "2. curl http://localhost:3000/api/albums - 验证获取专辑列表", "3. curl -X PUT http://localhost:3000/api/albums/1 -H 'Content-Type: application/json' -d '{\"name\":\"更新后的专辑名\"}' - 验证更新专辑", "4. curl -X DELETE http://localhost:3000/api/albums/1 - 验证删除专辑" ], "frontend_test_steps": [ "1. 进入专辑管理页面", "2. 点击'新建专辑'按钮", "3. 填写专辑名称和描述", "4. 点击保存", "5. 验证新专辑出现在列表中", "6. 长按专辑卡片", "7. 验证显示编辑/删除选项", "8. 点击编辑,修改专辑信息", "9. 验证修改生效" ], "status": "done", "passes": true }, { "id": 10, "description": "历史记录优化 - 批量操作功能", "backend_test_steps": [ "1. curl -X DELETE http://localhost:3000/api/history/batch -H 'Content-Type: application/json' -d '{\"ids\":[1,2,3]}' - 验证批量删除历史" ], "frontend_test_steps": [ "1. 进入历史记录页面", "2. 点击'选择'按钮进入多选模式", "3. 选择多条记录", "4. 验证底部出现批量操作栏", "5. 点击'批量删除'", "6. 验证选中的记录被删除", "7. 选择记录后点击'移动到专辑'", "8. 验证弹出专辑选择器", "9. 选择目标专辑后验证移动成功" ], "status": "done", "passes": true }, { "id": 11, "description": "用户引导优化 - 新手引导功能", "backend_test_steps": [], "frontend_test_steps": [ "1. 首次进入生成页", "2. 验证显示新手引导提示", "3. 验证引导步骤1:输入文本提示", "4. 点击下一步", "5. 验证引导步骤2:选择音色提示", "6. 点击下一步", "7. 验证引导步骤3:点击生成提示", "8. 完成引导后验证不再显示" ], "status": "done", "passes": true }, { "id": 12, "description": "我的页面优化 - 设置页面入口", "backend_test_steps": [], "frontend_test_steps": [ "1. 进入'我的'页面", "2. 验证菜单中有'设置'入口", "3. 点击进入设置页面", "4. 验证显示:主题切换(浅色/深色/自动)", "5. 验证显示:通知设置", "6. 验证显示:清理缓存选项", "7. 点击清理缓存", "8. 验证显示清理成功" ], "status": "done", "passes": true }, { "id": 13, "description": "页面体验优化 - 切换动画效果", "backend_test_steps": [], "frontend_test_steps": [ "1. 在任意列表页面点击进入详情", "2. 验证有平滑的页面切换动画", "3. 点击返回", "4. 验证返回动画流畅" ], "status": "done", "passes": true }, { "id": 14, "description": "会员转化 - 每日签到功能", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/sign - 验证签到接口", "2. curl http://localhost:3000/api/sign/status - 验证获取签到状态" ], "frontend_test_steps": [ "1. 进入'我的'页面", "2. 验证显示签到入口", "3. 点击签到", "4. 验证显示签到成功", "5. 验证获得免费次数增加", "6. 刷新页面", "7. 验证签到状态已更新", "8. 验证连续签到天数显示" ], "status": "done", "passes": true }, { "id": 15, "description": "会员转化 - 额度用尽引导弹窗", "backend_test_steps": [], "frontend_test_steps": [ "1. 当免费额度用尽时", "2. 点击生成按钮", "3. 验证弹出会员引导弹窗", "4. 验证弹窗内容:'今日免费额度已用完'", "5. 验证显示'开通会员'按钮", "6. 点击'稍后再说'", "7. 验证弹窗关闭" ], "status": "done", "passes": true }, { "id": 16, "description": "通知功能 - 消息通知中心", "backend_test_steps": [ "1. curl http://localhost:3000/api/notifications - 验证获取通知列表", "2. curl -X PUT http://localhost:3000/api/notifications/read -H 'Content-Type: application/json' -d '{\"id\":\"notif-1\"}' - 验证标记已读" ], "frontend_test_steps": [ "1. 进入'我的'页面", "2. 验证有通知入口和未读数量角标", "3. 点击进入通知页面", "4. 验证通知列表显示正确", "5. 点击通知项", "6. 验证跳转详情或标记已读", "7. 验证未读数量减少" ], "status": "done", "passes": true } ] }