# 展会AR徽章收集小程序 产品需求文档 (PRD) ## 版本信息 | 版本 | 日期 | 描述 | 作者 | |------|------|------|------| | 1.1 | 2025-11-04 | 补充Epic 001详细内容,包括主流程图、用户故事和任务分解 | John (PM) | | 1.0 | 2025-11-04 | 初始PRD版本,基于ar-origin.md和brief.md需求 | John (PM) | ## 1. 项目介绍和分析 ### 1.1 项目概览 **分析来源**: 基于需求文档 `docs/ar-origin.md` 和 `docs/brief.md` **当前项目状态**: 展会AR徽章收集小程序是一个基于AR技术的展会互动系统,提供: - 🎯 **AR扫描基础**: 内置文物定位地图,精准识别展品 - 🏆 **徽章收集系统**: 普通徽章、特色徽章、稀有徽章三级收集机制 - 🤝 **社交互动**: 徽章集市交换、现场对对碰、社交平台分享 - 🎁 **奖励机制**: 集齐徽章兑换实体AR透卡和专属印章 ### 1.2 需求分析 ✅ **核心功能明确**: - AR扫描文物展品获取普通徽章 - 知识问答获取特色徽章 - 共创活动获取稀有徽章 - 社交互动和徽章交换 - 实体奖励兑换 ⚠️ **需要技术验证**: - 微信小程序AR识别性能 - 展会现场网络稳定性 - 不同手机型号兼容性 - 用户数据隐私保护 ### 1.3 项目范围定义 **项目类型**: 全新开发的展会互动小程序 **主要目标**: 1. 通过AR技术和游戏化设计提升展会参观体验 2. 增强文物知识传播效果和观众参与度 3. 建立数字化展会互动标准解决方案 4. 收集观众行为数据用于展览优化 ### 1.4 目标和背景 #### 业务目标 - 🎪 **提升展会体验**: 将传统展会转变为沉浸式互动体验 - 📚 **增强知识传播**: 通过游戏化设计提高文物知识留存率 - 👥 **吸引年轻观众**: 利用AR技术吸引18-35岁年轻群体 - 📊 **数据驱动优化**: 收集观众行为数据指导展览改进 #### 技术背景 基于多八多云端开发容器环境: - Node.js 20.19.2 后端服务 - PostgreSQL 17 数据库 - Redis 7 缓存 - MinIO 对象存储 - 微信小程序前端平台 ## 2. 需求定义 ### 2.1 功能需求 基于ar-origin.md和brief.md的需求分析,我定义了以下功能需求: **FR1: AR扫描基础功能** - 必须提供内置文物定位地图,引导用户找到展品位置 - 支持现场采集文物图作为扫描参照物,确保精准识别 - 实现AR相机扫描功能,能够识别和定位文物展品 - 提供扫描成功反馈和徽章获取确认 **FR2: 徽章收集任务系统** - **普通徽章**: 扫描对应文物即可获得,低门槛参与 - **特色徽章**: AR扫描文物 + 答对漆艺知识问题获得,加深认知 - **稀有徽章**: 到达共创互动体验区,扫描互动入口码,完成共创任务获得 - 提供徽章展示和管理界面,支持收集进度跟踪 **FR3: 社交互动功能** - **徽章集市**: 支持玩家之间交换徽章 - **现场对对碰**: 近距离蓝牙或WiFi直连交换徽章 - **社交分享**: 稀有徽章可分享到社交平台,分享成功获得1张(限1次) - 提供徽章交换记录和社交互动历史 **FR4: 奖励兑换系统** - 集齐全部徽章可到服务台兑换实体AR透卡 - 兑换时加盖专属文物纹样印章 - 提供兑换状态跟踪和二维码验证 - 支持多展会场景的奖励管理 **FR5: 展会内容管理系统** - 支持展会主办方配置文物信息、位置地图 - 管理漆艺知识题库和问答内容 - 配置共创活动任务和互动入口码 - 提供数据统计和用户行为分析 ### 详细 rationale (决策依据): 这些需求基于对展会互动场景的深入分析: - **游戏化设计**: 三级徽章系统提供渐进式难度,平衡趣味性和教育性 - **技术可行性**: 微信小程序AR SDK支持文物识别,无需下载独立应用 - **社交传播**: 徽章交换和分享机制促进用户互动和口碑传播 - **实体激励**: 实体奖励增强成就感和参与动力 **关键假设**: - 目标用户是18-35岁对新技术和互动体验感兴趣的年轻观众 - 主要使用场景是展会现场,网络环境相对稳定 - 用户愿意参与徽章收集和社交互动活动 - 展会主办方能够提供文物图片和知识内容 **需要验证的领域**: - 微信小程序AR识别功能的性能和兼容性 - 展会现场网络对AR体验的影响 - 用户对徽章收集和交换的参与意愿 - 实体奖励兑换流程的顺畅性 ### 2.2 非功能性需求 **NFR1: AR识别性能和准确性** - AR识别响应时间必须小于2秒,确保流畅的用户体验 - 识别准确率需要达到95%以上,减少误识别 - 支持不同光照条件下的稳定识别 - 兼容主流手机型号的摄像头和传感器 **NFR2: 展会现场网络适应性** - 支持展会期间1000+并发用户的稳定访问 - 在网络不稳定的情况下提供降级方案 - 关键数据支持离线缓存和同步 - API响应时间控制在500ms以内 **NFR3: 用户体验和易用性** - 小程序启动时间控制在3秒以内 - 操作流程简单直观,新用户5分钟内可上手 - 提供清晰的进度反馈和引导提示 - 支持单手操作和移动端优化 **NFR4: 数据安全和隐私保护** - 用户数据加密存储,符合隐私保护法规 - 展会数据隔离,支持多展会同时运行 - 防止徽章数据篡改和作弊行为 - 提供数据备份和恢复机制 **NFR5: 系统稳定性和可靠性** - 展会期间系统可用性达到99.5% - 支持自动故障转移和恢复 - 提供实时监控和告警机制 - 关键业务逻辑有完善的错误处理 ### 详细 rationale (决策依据): 这些非功能性需求反映了展会场景的特殊要求: - **实时性要求**: AR识别和交互需要快速响应,避免用户等待 - **高并发处理**: 展会期间大量用户同时使用,需要稳定支撑 - **网络适应性**: 展会现场网络环境复杂,需要容错机制 - **移动端优化**: 小程序形式要求轻量化和快速启动 **技术约束**: - 必须基于微信小程序平台开发 - 需要兼容Node.js 20.19.2,PostgreSQL 17,Redis 7技术栈 - 部署在多八多云端容器环境,8080端口外网访问 - 使用MinIO对象存储管理图片和媒体文件 ### 3.2 技术架构策略 **微信小程序集成策略**: - 使用微信小程序原生开发框架 - 集成微信AR SDK实现文物识别功能 - 支持微信登录和用户信息获取 - 利用微信分享API实现社交传播 **后端服务架构**: - 基于Node.js + Hono框架构建RESTful API - 使用TypeORM管理PostgreSQL数据库 - Redis缓存提升AR识别和用户状态性能 - MinIO存储管理文物图片和媒体文件 **展会内容管理**: - 支持多展会配置和内容隔离 - 提供文物信息、位置地图的可视化配置 - 管理知识题库和共创活动任务 - 实时数据统计和用户行为分析 ## 5. Epic和故事结构 ### 5.1 Epic方法 **Epic结构决策**: 功能导向的Epic结构 - 按核心功能模块划分开发阶段 **决策依据**: - 项目为全新开发,需要按功能模块逐步构建 - 每个功能模块有明确的业务目标和用户价值 - 独立Epic便于并行开发和测试验证 - MVP优先,确保核心功能快速上线验证 ### 5.2 Epic详情 **Epic 001: 基础主数据管理系统** **Epic目标**: 建立展会基础数据管理框架,包括用户管理、文物数据、展会配置等核心数据模型 **成功标准**: 数据模型设计完整,API接口稳定可用,数据管理操作效率>90% #### Epic 001 主流程图 ```mermaid graph TD A[用户进入小程序] --> B[用户注册/登录] B --> C[展会选择] C --> D[获取展会配置] D --> E[加载文物地图] E --> F[开始AR扫描] F --> G[扫描成功] G --> H[获取徽章] H --> I[更新用户进度] I --> J[展示徽章收集] K[管理员登录后台] --> L[展会配置管理] L --> M[文物数据管理] M --> N[知识题库管理] N --> O[活动任务配置] O --> P[数据统计查看] ``` #### Epic 001 用户故事 **故事001-001: 用户注册和登录** - **作为** 展会参观者 - **我希望** 能够快速注册和登录小程序 - **以便** 开始徽章收集体验并保存我的进度 **故事001-002: 展会选择和配置** - **作为** 展会参观者 - **我希望** 能够选择当前参加的展会 - **以便** 获取正确的文物地图和徽章配置 **故事001-003: 文物数据管理** - **作为** 展会管理员 - **我希望** 能够管理文物信息、位置和图片 - **以便** 配置AR扫描的目标对象 **故事001-004: 知识题库管理** - **作为** 展会管理员 - **我希望** 能够管理漆艺知识题库 - **以便** 配置特色徽章的问答内容 **故事001-005: 活动任务配置** - **作为** 展会管理员 - **我希望** 能够配置共创活动任务 - **以便** 设置稀有徽章的获取条件 #### Epic 001 详细任务分解 **任务001-001: 用户数据模型设计** - **种类**: 后端API - **所在端**: 后端 - **描述**: 设计用户表结构,包括用户ID、微信OpenID、昵称、头像、注册时间等字段 **任务001-002: 用户认证API开发** - **种类**: 后端API - **所在端**: 后端 - **描述**: 实现微信登录接口,获取用户信息并创建用户记录 **任务001-003: 小程序登录页面开发** - **种类**: UI开发 - **所在端**: 小程序 - **描述**: 创建用户登录界面,集成微信登录按钮和授权流程 **任务001-004: 展会数据模型设计** - **种类**: 后端API - **所在端**: 后端 - **描述**: 设计展会表结构,包括展会ID、名称、描述、开始时间、结束时间、状态等 **任务001-005: 文物数据模型设计** - **种类**: 后端API - **所在端**: 后端 - **描述**: 设计文物表结构,包括文物ID、名称、描述、位置坐标、图片URL、AR识别特征等 **任务001-006: 知识题库数据模型设计** - **种类**: 后端API - **所在端**: 后端 - **描述**: 设计题库表结构,包括问题ID、问题内容、选项、正确答案、关联文物ID等 **任务001-007: 活动任务数据模型设计** - **种类**: 后端API - **所在端**: 后端 - **描述**: 设计活动任务表结构,包括任务ID、任务名称、描述、入口码、完成条件等 **任务001-008: 展会配置API开发** - **种类**: 后端API - **所在端**: 后端 - **描述**: 实现展会列表查询、展会详情获取、展会配置更新等接口 **任务001-009: 文物管理API开发** - **种类**: 后端API - **所在端**: 后端 - **描述**: 实现文物列表查询、文物详情获取、文物增删改等接口 **任务001-010: 知识题库API开发** - **种类**: 后端API - **所在端**: 后端 - **描述**: 实现题库查询、随机出题、答案验证等接口 **任务001-011: 活动任务API开发** - **种类**: 后端API - **所在端**: 后端 - **描述**: 实现任务查询、任务完成验证、任务状态更新等接口 **任务001-012: 小程序展会选择页面开发** - **种类**: UI开发 - **所在端**: 小程序 - **描述**: 创建展会列表页面,支持展会选择和切换 **任务001-013: 小程序首页开发** - **种类**: UI开发 - **所在端**: 小程序 - **描述**: 创建小程序首页,展示用户进度、徽章收集情况、快速入口等 **任务001-014: 后台管理系统框架搭建** - **种类**: UI开发 - **所在端**: 管理后台 - **描述**: 搭建展会管理后台的基础框架,包括登录、导航、布局等 **任务001-015: 展会管理后台开发** - **种类**: UI开发 - **所在端**: 管理后台 - **描述**: 开发展会配置管理界面,支持展会信息的增删改查 **任务001-016: 文物管理后台开发** - **种类**: UI开发 - **所在端**: 管理后台 - **描述**: 开发文物管理界面,支持文物信息、位置、图片的上传和管理 **任务001-017: 知识题库管理后台开发** - **种类**: UI开发 - **所在端**: 管理后台 - **描述**: 开发题库管理界面,支持问题的增删改查和批量导入 **任务001-018: 活动任务管理后台开发** - **种类**: UI开发 - **所在端**: 管理后台 - **描述**: 开发活动任务管理界面,支持任务配置和入口码生成 **任务001-019: 数据备份恢复机制实现** - **种类**: 后端API - **所在端**: 后端 - **描述**: 实现展会数据的自动备份和手动恢复功能 **任务001-020: 单元测试编写** - **种类**: 测试 - **所在端**: 后端/小程序/管理后台 - **描述**: 为所有API和关键功能编写单元测试,确保代码质量 **任务001-021: 集成测试执行** - **种类**: 测试 - **所在端**: 后端/小程序/管理后台 - **描述**: 执行端到端集成测试,验证各模块间的协作 **任务001-022: 性能测试执行** - **种类**: 测试 - **所在端**: 后端 - **描述**: 进行API性能测试,确保响应时间满足要求 **任务001-023: 安全测试执行** - **种类**: 测试 - **所在端**: 后端 - **描述**: 进行安全漏洞扫描,确保用户数据安全 **Epic 002: AR扫描基础功能开发** **Epic目标**: 实现核心AR扫描功能,包括文物定位地图、相机扫描、精准识别和徽章获取 **成功标准**: AR识别准确率>90%,扫描响应时间<2秒,用户能够顺利完成普通徽章收集 **Epic 003: 徽章收集系统实现** **Epic目标**: 构建完整的徽章收集系统,包括普通徽章、特色徽章、稀有徽章三级收集机制 **成功标准**: 三级徽章收集流程顺畅,知识问答正确率>70%,共创任务完成率>60% **Epic 004: 社交互动功能开发** **Epic目标**: 实现徽章集市、现场对对碰、社交分享等社交互动功能 **成功标准**: 徽章交换成功率>80%,社交分享率>30%,用户互动满意度>4/5 **Epic 005: 奖励兑换和后台管理** **Epic目标**: 构建奖励兑换系统和展会内容管理后台 **成功标准**: 实体奖励兑换流程顺畅,后台配置操作简便,数据统计准确 ### 5.3 各Epic用户故事概览 **Epic 001 - 基础主数据管理**: - 用户数据模型和认证系统 - 文物信息管理和位置配置 - 展会基础配置和参数管理 - 数据备份和恢复机制 **Epic 002 - AR扫描基础**: - 文物定位地图开发和集成 - AR相机扫描功能实现 - 文物识别算法优化 - 普通徽章获取流程 **Epic 003 - 徽章收集系统**: - 特色徽章知识问答功能 - 稀有徽章共创任务系统 - 徽章展示和管理界面 - 收集进度跟踪功能 **Epic 004 - 社交互动**: - 徽章集市交换功能 - 现场对对碰技术实现 - 社交平台分享集成 - 互动记录和统计 **Epic 005 - 奖励和管理**: - 实体奖励兑换流程 - 展会内容管理系统 - 用户行为数据分析 - 多展会支持功能 ## 6. 成功指标和验收标准 ### 6.1 关键绩效指标(KPI) **Epic 001 - 基础主数据管理指标**: - ✅ 数据模型完整性 100% - ⏱️ API响应时间 < 100ms - 📊 数据管理操作效率 > 90% - 💾 数据备份恢复成功率 100% **Epic 002 - AR扫描基础指标**: - ✅ AR识别准确率 > 90% - ⏱️ 扫描响应时间 < 2秒 - 📱 主流手机型号兼容性 > 95% - 🎯 普通徽章收集成功率 > 80% **Epic 003 - 徽章收集系统指标**: - ✅ 特色徽章知识问答正确率 > 70% - ✅ 稀有徽章共创任务完成率 > 60% - 📊 徽章收集完成度 > 50% - 🎮 用户参与度 > 60% **Epic 004 - 社交互动指标**: - ✅ 徽章交换成功率 > 80% - 📱 社交分享率 > 30% - 🤝 现场互动参与率 > 40% - 👍 社交功能满意度 > 4/5 **Epic 005 - 奖励和管理指标**: - ✅ 实体奖励兑换率 > 15% - 📊 后台配置操作效率 > 90% - 📈 数据统计准确性 > 95% - 🎪 展会部署成功率 100% **总体项目指标**: - 👥 **用户参与率**: 80%以上参观者使用小程序参与互动 - 🏆 **徽章收集率**: 平均每个用户收集4个以上徽章 - ⏱️ **用户停留时间**: 平均参观时间延长30% - 📱 **技术稳定性**: 小程序可用性99.5%,AR识别准确率95%+ ### 6.2 验收标准 **项目级验收**: - 所有AR扫描、徽章收集、社交互动、奖励兑换功能完整实现 - 展会内容管理系统可用,支持文物、知识、活动配置 - 性能指标满足要求:AR识别<2秒,并发支持1000+用户 - 安全审计通过,用户数据隐私保护合规 - 展会现场测试验证通过 **阶段性验收**: - 每个Epic完成后进行功能演示和用户测试 - 每周进度评审和风险识别 - 每月进行整体质量评估和指标检查 - 展会前进行完整流程压力测试 ## 7. 附录 ### 7.1 参考资料 - 需求文档: `docs/ar-origin.md` - 项目简介: `docs/brief.md` - 微信小程序开发文档: https://developers.weixin.qq.com/miniprogram/dev/ - 微信AR SDK文档: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/ar.html ### 7.2 相关文档 - 技术架构文档: `docs/architecture.md` - 开发指南: `docs/development.md` - 部署指南: `docs/deployment.md` - 展会操作手册: [待创建] ### 7.3 联系方式 - 产品负责人: [待指定] - 技术负责人: [待指定] - 开发团队: [待指定] --- **文档状态**: 已更新 **最后更新**: 2025-11-04 (版本1.1) **下次评审**: 2025-11-11