Files
2026-06-16 00:55:20 +08:00

238 lines
11 KiB
Markdown
Raw Permalink 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.
# 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 1MVP**:数据底座 + 列表/详情/搜索 + 时间轴 + 图鉴卡牌。
- **Phase 2**:账户体系 + Wiki 编辑/审核/修订历史 + 荣誉体系。
- **Phase 3**:社区(论坛/讨论/动态流)+ 地图视图。
- **Phase 4**:族谱图 + 参数对比 + 保存机车地图 + 稀有车提醒 + 圈层二数据。
- **Phase 5**AI 识车 + 数据大屏 + 开放 API + AR/3D。
### 3.3 不在本期范围(MVP 明确排除)
- 用户登录与众包编辑(Phase 2)
- 社区论坛与打卡(Phase 3
- AI 识车、AR/3D、开放 APIPhase 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. 里程碑与交付物
| 里程碑 | 交付物 | 依赖 |
|--------|--------|------|
| M1MVP | 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 类)。