238 lines
11 KiB
Markdown
238 lines
11 KiB
Markdown
# 1-PRD · 中国机车图鉴平台 产品需求文档
|
||
|
||
> 版本:v1.0
|
||
> 来源:基于 `方案.md` 全文细化
|
||
> 状态:草稿(待评审)
|
||
> 一句话定位:机车界的「维基百科 + 观鸟记录 App + 兴趣社区」
|
||
|
||
---
|
||
|
||
## 0. 文档说明
|
||
|
||
本 PRD 将 `方案.md` 的产品构想细化为可评审、可拆解的需求集合,覆盖目标、用户、范围、功能需求、数据需求、非功能需求、指标与里程碑。技术实现细节(架构选型、表结构)留待后续设计文档(2-design)展开,本文只在"约束"层面引用。
|
||
|
||
---
|
||
|
||
## 1. 产品目标与背景
|
||
|
||
### 1.1 背景
|
||
铁路爱好者群体对机车型号、参数、历史与现役状态有强烈的查询、收集、考证与交流需求,但现有资料分散在 Excel、贴吧、论坛、个人博客中,缺乏一个**结构化、可信、可持续生长**的统一平台。本项目以现有《中国铁路车型统计表》12 张分类表为种子数据,构建该平台。
|
||
|
||
### 1.2 产品目标
|
||
| 维度 | 目标 |
|
||
|------|------|
|
||
| 知识库 | 提供权威、结构化、可追溯的机车车型数据库 |
|
||
| 趣味体验 | 通过时间轴、图鉴卡牌、地图、族谱等多视图让浏览"既有趣又科学" |
|
||
| 众包共建 | 让爱好者低门槛参与维护,并获得荣誉感与归属感 |
|
||
| 社区沉淀 | 提供交流空间,且交流历史永久可查 |
|
||
|
||
### 1.3 设计原则
|
||
1. **科学严谨**:数据可溯源、可审核、可回滚。
|
||
2. **趣味探索**:多视图、收集机制、可视化。
|
||
3. **社区共建**:低门槛编辑 + 荣誉激励 + 信任分级。
|
||
4. **深度优先于广度**:先做透中国车型,国外车型按相关性分圈层扩展。
|
||
|
||
---
|
||
|
||
## 2. 目标用户与画像
|
||
|
||
| 角色 | 描述 | 核心诉求 |
|
||
|------|------|----------|
|
||
| 浏览型爱好者(游客/轻度) | 偶尔查车型、看历史 | 快速查询、有趣的浏览 |
|
||
| 拍车/打卡党 | 线下追车、拍照记录 | 记录目击、收集车号、拍车攻略 |
|
||
| 硬核考据党 | 关注参数、历史、谱系 | 准确参数、对比、技术族谱、可溯源 |
|
||
| 贡献者/编辑 | 补全和维护数据 | 便捷编辑、荣誉署名、贡献统计 |
|
||
| 版主/维护者 | 审核与质量把控 | 审核队列、修订对比、回滚 |
|
||
| 管理员 | 平台运营 | 权限、内容治理、数据治理 |
|
||
|
||
---
|
||
|
||
## 3. 范围定义
|
||
|
||
### 3.1 数据范围(圈层策略)
|
||
| 圈层 | 范围 | 阶段 |
|
||
|------|------|------|
|
||
| 🟢 圈层一 | 中国铁路车型(现有 12 表) | MVP |
|
||
| 🟡 圈层二 | 在华运用的外国车型 + 中国车型的国外原型 | 中期 |
|
||
| 🔵 圈层三 | 出口机车、同平台海外型号 | 长期 |
|
||
| ⚪ 圈层四 | 纯国外全球图鉴 | 视社区意愿 |
|
||
|
||
### 3.2 阶段范围(对应方案路线图)
|
||
- **Phase 1(MVP)**:数据底座 + 列表/详情/搜索 + 时间轴 + 图鉴卡牌。
|
||
- **Phase 2**:账户体系 + Wiki 编辑/审核/修订历史 + 荣誉体系。
|
||
- **Phase 3**:社区(论坛/讨论/动态流)+ 地图视图。
|
||
- **Phase 4**:族谱图 + 参数对比 + 保存机车地图 + 稀有车提醒 + 圈层二数据。
|
||
- **Phase 5**:AI 识车 + 数据大屏 + 开放 API + AR/3D。
|
||
|
||
### 3.3 不在本期范围(MVP 明确排除)
|
||
- 用户登录与众包编辑(Phase 2)
|
||
- 社区论坛与打卡(Phase 3)
|
||
- AI 识车、AR/3D、开放 API(Phase 5)
|
||
|
||
---
|
||
|
||
## 4. 数据需求
|
||
|
||
### 4.1 数据模型(三层 + 关系)
|
||
```
|
||
Category 车型分类
|
||
└── Model 车型(百科主体,技术参数)
|
||
└── Unit 车辆个体(精确到车号)
|
||
└── Sighting 目击记录(用户众包:时间+地点+照片)
|
||
Model ←→ Model:父型号 / 衍生型号 / 国外原型(族谱关系)
|
||
```
|
||
|
||
### 4.2 Model 字段字典(统一字段表)
|
||
| 分组 | 字段 | 说明/约束 |
|
||
|------|------|-----------|
|
||
| 标识 | 型号、别名、分类、系列 | 型号必填、唯一性校验 |
|
||
| 来源 | 生产商、制造国/地区、国别属性(国产/进口/引进仿制/合资) | 国别属性枚举 |
|
||
| 时间 | 首产年、停产年 | 年代逻辑校验(首产≤停产) |
|
||
| 状态 | 状态、用途、产量、缩略图 | 状态枚举 |
|
||
| 尺寸/重量 | 车长、车宽、车高、整备重量、轴重、轴距、轴列式 | 数值+单位分离 |
|
||
| 动力 | 牵引力(起动/持续)、最高时速、供电方式、传动方式、动力来源 | 数值+单位分离 |
|
||
| 关系 | 父型号、衍生型号、原型车/技术来源 | 指向其他 Model |
|
||
| 溯源 | 每字段可附来源引用(Phase 2) | 书籍/铭牌照片/官方资料 |
|
||
|
||
> 约束:所有数值字段以"数值 + 单位"独立存储,杜绝现表的单位混排问题。
|
||
|
||
### 4.3 Unit / Sighting 字段
|
||
- **Unit**:车号、所属车型、配属路局、涂装、当前状态(现役/封存/报废/博物馆保存)、首/末次目击。
|
||
- **Sighting**:用户、车辆、时间、地点(经纬度+车站)、照片、描述。
|
||
|
||
### 4.4 数据导入(ETL)
|
||
- 将现有 12 张 CSV/Excel 清洗后入库作为种子数据。
|
||
- 处理:合并单元格还原、空表头修复、单位拆分、字段映射到统一字典、系列→型号层级归并、改型关系识别。
|
||
- 产出:导入报告(成功/失败/需人工复核条目)。
|
||
|
||
---
|
||
|
||
## 5. 功能需求(按模块)
|
||
|
||
> 标注:【P1】MVP / 【P2】共建 / 【P3】社区 / 【P4】进阶 / 【P5】智能化
|
||
|
||
### 5.1 车型浏览与检索【P1】
|
||
- FR-1.1 车型列表:分页、按分类筛选、按字段排序。
|
||
- FR-1.2 多维筛选:分类、年代、时速区间、生产商、国别、状态。
|
||
- FR-1.3 全文搜索:型号/别名/生产商中文检索,支持模糊与拼音(增强项)。
|
||
- FR-1.4 车型详情页:参数表、历史沿革、图集、族谱位置、相关讨论入口。
|
||
- FR-1.5 数值字段统一展示单位,缺失字段优雅留白。
|
||
|
||
### 5.2 展示视图【P1/P3/P4】
|
||
- FR-2.1【P1】时间轴视图:年代横轴、分类泳道、节点点击展开详情卡。
|
||
- FR-2.2【P1】图鉴卡牌视图:卡片墙、分类筛选、"已收集/未收集"占位(收集逻辑 P3 接入)。
|
||
- FR-2.3【P4】参数对比:勾选 2–4 个车型,雷达图 + 对比表。
|
||
- FR-2.4【P4】技术族谱图:有向图展示演化关系,支持跨国连线。
|
||
- FR-2.5【P3】地图视图:配属地图 + 目击热力图,聚合点。
|
||
- FR-2.6 视图间可相互跳转(如从族谱节点跳详情)。
|
||
|
||
### 5.3 账户与权限【P2】
|
||
- FR-3.1 注册/登录(邮箱/第三方)。
|
||
- FR-3.2 角色:游客、注册用户、信任用户、版主、管理员(RBAC)。
|
||
- FR-3.3 个人主页:贡献统计、徽章、收集进度、目击记录。
|
||
|
||
### 5.4 众包编辑与审核【P2】
|
||
- FR-4.1 编辑建议:登录用户可修改字段、补资料、传图。
|
||
- FR-4.2 修订版本:每次修改生成 Revision,支持 diff 对比与回滚。
|
||
- FR-4.3 审核分级:新手编辑入审核队列;信任用户直接生效。
|
||
- FR-4.4 字段来源引用:可为字段附引用来源。
|
||
- FR-4.5 字段校验:数值范围、单位、年代逻辑。
|
||
- FR-4.6 争议字段:可发起讨论/投票。
|
||
|
||
### 5.5 荣誉与激励【P2】
|
||
- FR-5.1 贡献积分:新增/补全/采用照片/通过审核计分。
|
||
- FR-5.2 等级头衔:铁路主题等级(见习巡道员→…→总工程师)。
|
||
- FR-5.3 徽章成就:首图、集齐分类、连续打卡、被采纳 N 次等。
|
||
- FR-5.4 贡献榜:周/月/总榜;详情页显示"主要贡献者"署名。
|
||
- FR-5.5 认领词条:成为 maintainer 并署名。
|
||
|
||
### 5.6 社区交流【P3】
|
||
- FR-6.1 论坛板块:按分类/路局/主题分区。
|
||
- FR-6.2 帖子与回复:发帖、回复、@、点赞、收藏,**永久持久化保存可查**。
|
||
- FR-6.3 词条内嵌讨论区:讨论与数据绑定。
|
||
- FR-6.4 打卡动态流:目击照片 Feed + 评论互动。
|
||
- FR-6.5 内容沉淀:优质考证帖可精华化并引用进词条来源。
|
||
|
||
### 5.7 打卡与收集【P3/P4】
|
||
- FR-7.1 目击打卡:记录车号、时间、地点、照片。
|
||
- FR-7.2 图鉴收集:拍到即收集,图鉴显示进度。
|
||
- FR-7.3【P4】拍车攻略:基于目击热力图推荐拍摄点。
|
||
- FR-7.4【P4】保存机车地图:标注博物馆/公园保存实车。
|
||
- FR-7.5【P4】稀有车提醒:关注车型新目击推送。
|
||
|
||
### 5.8 智能化与开放【P5】
|
||
- FR-8.1 AI 识车(照片→车型)。
|
||
- FR-8.2 数据可视化大屏(保有量/时速变迁等)。
|
||
- FR-8.3 开放 API / 数据导出。
|
||
- FR-8.4 AR/3D 模型展示。
|
||
- FR-8.5 多语言(面向海外爱好者)。
|
||
|
||
---
|
||
|
||
## 6. 非功能需求
|
||
|
||
| 类别 | 需求 |
|
||
|------|------|
|
||
| 性能 | 列表/详情页 P95 < 1.5s;搜索响应 < 500ms |
|
||
| 可用性 | 响应式 Web 优先,移动端可用;SEO 友好(百科可被搜索引擎收录) |
|
||
| 可扩展 | 数据模型预留国别/原型字段,圈层扩展不需重构 |
|
||
| 数据质量 | 字段校验 + 来源引用 + 修订可回滚 |
|
||
| 安全 | RBAC 权限;UGC 内容审核;防刷分 |
|
||
| 合规 | 图片版权声明、来源标注;目击地点敏感区域脱敏 |
|
||
| 可观测 | 关键操作日志、审核日志、贡献流水 |
|
||
| 国际化 | 字段单位/命名国际化(UIC vs 中国习惯轴列式) |
|
||
|
||
---
|
||
|
||
## 7. 成功指标(KPI)
|
||
|
||
| 阶段 | 指标 |
|
||
|------|------|
|
||
| MVP | 种子数据完整入库(12 表全覆盖);车型详情可访问;时间轴/图鉴可用 |
|
||
| 共建 | 月活跃编辑者数、月新增/修订条目数、审核通过率 |
|
||
| 社区 | 月活、发帖/回复数、打卡数、收集完成率 |
|
||
| 留存 | 次周留存、贡献者复访率 |
|
||
| 质量 | 字段完整度、被回滚修订占比(越低越好)、争议解决时长 |
|
||
|
||
---
|
||
|
||
## 8. 里程碑与交付物
|
||
|
||
| 里程碑 | 交付物 | 依赖 |
|
||
|--------|--------|------|
|
||
| M1(MVP) | ETL 入库 + 列表/详情/搜索 + 时间轴 + 图鉴卡牌 | 种子数据清洗 |
|
||
| M2 | 账户 + Wiki 编辑/审核/修订 + 荣誉体系 | M1 |
|
||
| M3 | 论坛/讨论/动态流 + 地图视图 | M2 |
|
||
| M4 | 族谱图 + 对比 + 保存机车地图 + 提醒 + 圈层二数据 | M2/M3 |
|
||
| M5 | AI 识车 + 大屏 + 开放 API + AR/3D | M4 |
|
||
|
||
---
|
||
|
||
## 9. 风险与对策
|
||
|
||
| 风险 | 对策 |
|
||
|------|------|
|
||
| 数据版权/来源争议 | 强制来源标注、图片授权声明 |
|
||
| 数据准确性 | 来源引用 + 审核 + 可回滚 + 争议投票 |
|
||
| 冷启动乏力 | 邀请核心爱好者共建种子内容与首批 maintainer |
|
||
| 审核成本高 | 信任分级,高信誉自动生效 |
|
||
| 范围蔓延 | 圈层收敛,深度优先于广度 |
|
||
| 隐私合规 | 目击地点敏感区域处理与合规审查 |
|
||
|
||
---
|
||
|
||
## 10. 待确认问题(Open Questions)
|
||
|
||
1. 技术栈最终选型(Next.js + NestJS/FastAPI + PostgreSQL)是否锁定?
|
||
2. 是否需要原生 App,还是 PWA 即可?
|
||
3. 第三方登录渠道范围(微信/GitHub/邮箱)?
|
||
4. 地图服务选型(高德 vs MapLibre)与国内合规?
|
||
5. 图片对象存储与 CDN 选型?
|
||
6. MVP 是否需要最简账户(仅收藏)还是完全匿名?
|
||
7. 国外车型圈层二的启动时机与数据来源?
|
||
|
||
---
|
||
|
||
## 附录 A · 现有数据分类清单(种子)
|
||
建国前蒸汽机车 / 建国后蒸汽机车 / 北京表(蒸汽机车)/ 普速客车 / 电力机车 / 内燃机车 / CJ 型及早期动车组及和谐号 / 复兴号 / 货车 / 普速检测车 / 高速综合检测列车 / 旅游列车(共 12 类)。
|