Files
vscode-workbench/PLANNING/tasks/E-04-引导与倒计时.md
T

59 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# E-04 · 三步引导 + 考试倒计时 + 每日目标
| 字段 | 值 |
|---|---|
| 项目 | EnglishDrill · `Desktop/english-drill` |
| 优先级 | P0 · M2 |
| 建议模型 | glm-5.3-flash(主)/ qwen3.8-flash(兼容性复核) |
| 依赖 | 无 |
| 预估 | 1.5 天 |
## 一、背景(为什么做)
新人注册后落在首页——空统计、空错题、空单词足迹,不知道该干嘛;`DailyPlan.target_per_day` 写死默认 20。倒计时是**最廉价的心理驱动**,且完全不需要内容投入(增长报告 P0-4)。
## 二、目标(交付物)
1. **数据**:`PROFILE` 增两字段 `exam_date`(考试日期,可空)、`daily_target`(每日词量,默认 20)。
2. **三步引导 `/onboarding`**(仅新用户或未设置目标用户触发一次):
- ① 选目标考试(高考 / CET-4 / CET-6 / 考研 / 其他 → 存 `exam_date` 占位或手选日期)
- ② 选词书(复用现有词书数据)
- ③ 设每日词量(默认 20,可调)
- 完成 → 跳首页
3. **首页展示**:"距离高考还有 240 天 · 今日 20 词已排好"(exam_date 空则不显示倒计时,只显示今日目标)。
4. 可跳过引导(跳过=用默认值,之后可从设置再进入)。
## 三、执行步骤
```text
1. 侦察 PROFILE 模型与序列化器、注册后跳转逻辑
2. 字段 + 迁移 + 兼容默认(老用户 exam_date=null 全链路不报错)
3. /onboarding 三步页(组件按项目移动端适配惯例)
4. 首页倒计时/目标条
5. E2E:新用户引导流程、跳过、老用户兼容
```
## 四、验收标准
- [ ] 新用户注册后进入引导(或可跳过);完成三步后首页出现倒计时与今日目标
- [ ] 老用户(无新字段值)全站不报错、首页降级显示正常
- [ ] 倒计时按 `exam_date` 精确计算(用例:固定日期 → 期望天数)
- [ ] 修改每日目标后今日计划随之变化
- [ ] 既有 E2E 全绿 + 新增 ≥6 用例
## 五、验收命令(参考)
```bash
cd backend && python tests/e2e/run_e2e.py -k onboarding
python tests/e2e/run_e2e.py --http
```
## 六、边界(不许做)
- 不做复杂考试规划算法(倒计时 + 目标数字即可)
- 不改 DailyPlan 既有调度逻辑(target_per_day 只是默认值来源)
## 七、交接
写 `PROGRESS_E-04.md`(含兼容性用例证据)。