You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dianshang-qianduan/docs/superpowers/specs/2026-08-07-product-developm...

52 lines
3.1 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 产品开发关键因素模块:第 1 步「用户角度分析」设计
## 目标与范围
仅调整学生端 `product-development-factors` 任务的第 1 步,并提供该步骤的服务端校验。页面依据原型呈现固定分析表;教师端、管理员端、任务配置、数据库结构、材料下载和后续步骤内容均不在本次范围内。
## 页面与交互
第 1 步标题为“用户角度分析”,正文提示为“用户角度分析,填写下表:”。表格固定为四列:`维度`、`评估项`、`成功产品`、`失败产品`,不再提供成功产品或失败产品的名称输入框。
表格按原型固定三行,顺序及评估项如下:
| 维度 | 评估项 |
| --- | --- |
| 用户需求真实性 | 是否解决真实、高频、可付费的痛点,用户愿为该功能支付溢价,非“技术炫技”或“伪需求” |
| 产品体验闭环 | 操作是否无需说明书,“零学习成本”?是否操作简单、反馈明确、稳定性高 |
| 生态与兼容 | 是否能接入主流平台?是否支持 iOS/Android、HomeKit、米家、Alexa 等生态?是否支持第三方开发者扩展,提供 API 或 SDK鼓励生态共建 |
每一行的“成功产品”和“失败产品”各有一个多行输入框,学生填写对应分析。保存草稿不校验;“保存并进入第 2 步”会先校验六个输入框均为非空(去除首尾空白后判断),校验通过后以 `SAVE` 保存答案并将当前步骤推进至第 2 步,不触发任务总提交或成绩结算。
步骤切换后,第 1 步内容不应继续显示在第 2 步页签下。第 2 步尚未纳入本次开发时,显示轻量的待配置占位内容;若任务未配置第 2 步,则保存成功但提示当前任务尚未配置下一步并保持在第 1 步。
恢复已保存答案时,仅按上述三个维度恢复分析文本;历史的产品名称字段忽略。若保存记录的 `currentStep` 合法,页面恢复到相应步骤。
## 数据与接口
继续使用现有学生实训答案的 `step1Answer` 字段保存 JSON不新增数据库表。第 1 步保存内容为:
```json
{
"factors": [
{
"dimension": "用户需求真实性",
"successAnalysis": "...",
"failedAnalysis": "..."
}
]
}
```
新增校验接口:`POST /api/student-training-answers/product-development-factors/step-1/validate`。
接口仅允许学生角色调用,且请求必须恰好包含一次三个固定维度;每个维度的成功、失败分析均为非空。接口返回 `valid` 和可展示的 `message`。前端仅在接口校验通过后调用已有保存接口,保存参数使用 `saveAction: "SAVE"` 和推进后的 `currentStep`
## 验收与测试
- 页面只显示原型中的三行分析维度与四列表头,且不显示产品名称输入项。
- 六项分析填写完整时,可以保存并进入第 2 步;不会调用任务提交动作。
- 任意一项为空、维度缺失、重复或伪造时,服务端拒绝并提示。
- 非学生身份调用校验接口被拒绝。
- 前端构建和静态契约测试通过;后端服务测试与控制器测试通过。