# MVP 验收清单(Phase 1) 部署完成后,逐项验证;任何一项失败先看 `DEPLOY.md` 的 FAQ + `docker compose logs`。 ## 0. 服务健康 - [ ] `docker compose ps` 所有服务 `running` - [ ] `curl http://YOUR_IP/api/v1/healthz` → `{"status":"ok"}` - [ ] `curl http://YOUR_IP/` → 返回 HTML(SPA 入口) ## 1. 账号与登录 - [ ] `docker compose exec api python -m app.scripts.create_user --username owner --password XXXX` - [ ] 浏览器打开首页 → 登录页 → 用 owner 登录成功 - [ ] 侧边栏显示 "owner (owner)" - [ ] 顶栏翻译配额显示 "翻译: 0 / 5,000,000 (0.0%)" ## 2. 源管理 - [ ] `docker compose exec api python -m app.scripts.seed_sources` - [ ] 进入 "源管理(Admin)" 页,看到 5 条源(Reuters/BBC/Al Jazeera/NHK/DW) - [ ] "源健康" 页 5 个源都在 - [ ] 某个源点 "立即抓取" → message 提示 "已加入抓取队列" - [ ] 等 1~2 分钟,看 worker 日志:`docker compose logs -f worker | grep -E "fetch|articles"` ## 3. 文章采集与展示 - [ ] "24h 列表" 页有文章(数量与抓取量相关,首次可能 10~50 条) - [ ] 卡片显示:源标签 / 语种 / 发布时间 / 英文标题 / 中文标题 - [ ] 顶栏配额数字 > 0(说明翻译已消耗字符) - [ ] 点开文章详情: - [ ] 原文 + 译文双卡片 - [ ] 翻译状态为 "ok" - [ ] 翻译引擎为 "tencent" - [ ] 点 "原文链接 ↗" 跳到源站 - [ ] 部分文章可能还是 "pending" / "partial",等下个 worker 周期 ## 4. 收藏 - [ ] 文章详情点 "☆ 收藏" → 变 "★ 已收藏" - [ ] 侧边栏 "收藏" 看到刚才那篇 - [ ] 列表页对应卡片有 star 标记(后续可加视觉) ## 5. 失败降级验证(可选) - [ ] 把腾讯云 secret 配错 → 重启 worker → 下次抓取会触发翻译失败 - [ ] 文章状态变为 "failed",详情页有黄色提示 - [ ] 改为正确 secret → 点 "重译" → 成功 ## 6. 调度器验证 - [ ] `docker compose logs -f worker` → 应看到 "scheduler started with N jobs" - [ ] 看到 "scheduled every " - [ ] 等过 fetch_interval_min 分钟后,日志有新的 "source X: N new articles" ## 7. 配额监控(可选) - [ ] `curl -H "Authorization: Bearer $TOKEN" http://YOUR_IP/api/v1/me/usage` - [ ] 看到 used_chars > 0 ## 8. 验收完成 - [ ] 全 7 项通过 → Phase 1 验收 ✅ - [ ] 任意失败 → 看 `docker compose logs ` + `DEPLOY.md` FAQ - [ ] 性能 / 体验改进 → 进 Phase 2