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...

3.1 KiB

产品开发关键因素模块:第 1 步「用户角度分析」设计

目标与范围

仅调整学生端 product-development-factors 任务的第 1 步,并提供该步骤的服务端校验。页面依据原型呈现固定分析表;教师端、管理员端、任务配置、数据库结构、材料下载和后续步骤内容均不在本次范围内。

页面与交互

第 1 步标题为“用户角度分析”,正文提示为“用户角度分析,填写下表:”。表格固定为四列:维度评估项成功产品失败产品,不再提供成功产品或失败产品的名称输入框。

表格按原型固定三行,顺序及评估项如下:

维度 评估项
用户需求真实性 是否解决真实、高频、可付费的痛点,用户愿为该功能支付溢价,非“技术炫技”或“伪需求”
产品体验闭环 操作是否无需说明书,“零学习成本”?是否操作简单、反馈明确、稳定性高
生态与兼容 是否能接入主流平台?是否支持 iOS/Android、HomeKit、米家、Alexa 等生态?是否支持第三方开发者扩展,提供 API 或 SDK鼓励生态共建

每一行的“成功产品”和“失败产品”各有一个多行输入框,学生填写对应分析。保存草稿不校验;“保存并进入第 2 步”会先校验六个输入框均为非空(去除首尾空白后判断),校验通过后以 SAVE 保存答案并将当前步骤推进至第 2 步,不触发任务总提交或成绩结算。

步骤切换后,第 1 步内容不应继续显示在第 2 步页签下。第 2 步尚未纳入本次开发时,显示轻量的待配置占位内容;若任务未配置第 2 步,则保存成功但提示当前任务尚未配置下一步并保持在第 1 步。

恢复已保存答案时,仅按上述三个维度恢复分析文本;历史的产品名称字段忽略。若保存记录的 currentStep 合法,页面恢复到相应步骤。

数据与接口

继续使用现有学生实训答案的 step1Answer 字段保存 JSON不新增数据库表。第 1 步保存内容为:

{
  "factors": [
    {
      "dimension": "用户需求真实性",
      "successAnalysis": "...",
      "failedAnalysis": "..."
    }
  ]
}

新增校验接口:POST /api/student-training-answers/product-development-factors/step-1/validate

接口仅允许学生角色调用,且请求必须恰好包含一次三个固定维度;每个维度的成功、失败分析均为非空。接口返回 valid 和可展示的 message。前端仅在接口校验通过后调用已有保存接口,保存参数使用 saveAction: "SAVE" 和推进后的 currentStep

验收与测试

  • 页面只显示原型中的三行分析维度与四列表头,且不显示产品名称输入项。
  • 六项分析填写完整时,可以保存并进入第 2 步;不会调用任务提交动作。
  • 任意一项为空、维度缺失、重复或伪造时,服务端拒绝并提示。
  • 非学生身份调用校验接口被拒绝。
  • 前端构建和静态契约测试通过;后端服务测试与控制器测试通过。