Files
happy-life-star/情绪博物馆MVP需求规格书.md
T

13 KiB

情绪博物馆 MVP 需求规格书

文档版本: v1.0
最后更新: 2025-07-03 13:42:33
项目类型: iOS 移动应用
开发框架: SwiftUI


📋 目录


1. 项目概述

🎯 产品定位

情绪博物馆是一款基于AI技术的心理健康应用,通过智能对话、情绪分析、个性化成长方案等功能,帮助用户建立健康的情绪管理习惯。

🚀 核心价值

  • 情绪陪伴: AI驱动的智能对话系统,提供24/7情绪支持
  • 个性化成长: 基于用户数据的个性化心理成长路径
  • 社区分享: 安全的情绪表达和经验分享社区
  • 数据洞察: 情绪数据可视化,帮助用户了解自己

📱 应用架构

  • 平台: iOS (SwiftUI)
  • 导航结构: 底部Tab导航,4个主要模块
  • 设计风格: 简约温暖,注重用户体验

2. 技术架构

📊 技术栈

层级 技术选型 说明
前端框架 SwiftUI iOS原生开发框架
状态管理 @StateObject, @ObservedObject SwiftUI内置状态管理
网络请求 URLSession + Async/Await 现代异步网络编程
本地存储 Core Data iOS原生数据持久化
地图服务 高德地图SDK 国内地图服务
语音识别 Speech Framework iOS原生语音识别
AI服务 GPT-4 API 智能对话服务

🏗 架构设计

┌─────────────────────────────────────┐
│               SwiftUI               │
├─────────────────────────────────────┤
│          ViewModel Layer            │
├─────────────────────────────────────┤
│         Service Layer              │
│  ┌─────────┬─────────┬─────────┐   │
│  │ Network │ Storage │   AI    │   │
│  │ Service │ Service │ Service │   │
│  └─────────┴─────────┴─────────┘   │
├─────────────────────────────────────┤
│          Model Layer               │
└─────────────────────────────────────┘

3. 功能模块详解

3.1 记录页面

定位: 情绪主页 + AI对话入口

🎨 界面组件

组件 位置 功能描述 优先级
聊天记录入口 左上角 查看历史对话记录 P1
设置按钮 右上角 主题切换、音效设置 P2
日历组件 顶部 情绪记录、历史回顾 P1
AI形象 中心 3D/插图形象展示 P2
对话输入框 底部 语音/文字/图片输入 P1

⚙️ 核心功能

  1. 智能对话系统

    • 支持语音转文字 (Speech Framework)
    • 多模态输入:文字、语音、图片
    • AI情绪分析和智能回复
    • 全屏对话模式
  2. 情绪日历

    • 单行日历视图,可展开
    • 日期标记情绪状态
    • 支持情绪回顾和趋势查看
  3. 对话记录管理

    • 对话内容自动保存
    • 智能分类和标签
    • 搜索和筛选功能

📱 用户流程

进入记录页 → 选择输入方式 → 开始对话 → AI分析回复 → 保存记录 → 更新情绪日历

3.2 治愈页面

定位: 个人成长档案 + 课题系统

🎨 界面组件

模块 功能描述 数据来源 优先级
情绪洞察面板 个人情绪分析报告 对话数据+AI分析 P1
成长课题标签 个性化成长任务 智能推荐+用户选择 P1
五维雷达图 用户画像可视化 成长数据综合分析 P2
互动奖励 积分、称号、皮肤 完成度计算 P3

⚙️ 核心功能

  1. 智能情绪洞察

    • 基于对话内容的情绪分析
    • 个性化成长建议生成
    • 情绪模式识别和预警
  2. 成长课题系统

    • 动态课题推荐算法
    • 多维度进度追踪
    • 阶段性成就解锁
  3. 用户画像建模

    • 五维能力评估模型
    • 动态数据更新机制
    • 可视化展示组件

📊 数据维度

  • 自我感知: 情绪识别和表达能力
  • 情绪韧性: 压力应对和恢复能力
  • 行动力: 目标设定和执行能力
  • 共情力: 理解他人和社交能力
  • 生活热度: 兴趣探索和参与程度

3.3 探索页面

定位: 情绪地图 + 社区分享

🎨 界面组件

组件 功能描述 交互方式 优先级
地图视图 展示地理位置和情绪标记 缩放、拖拽、点击 P1
视图切换 地图模式/社区模式切换 左上角按钮 P1
地标弹窗 显示位置详情和笔记 点击地标触发 P1
分享创建 发布图文内容 长按地图添加 P2

⚙️ 核心功能

  1. 智能地图推荐

    • AI基于情绪状态推荐地点
    • 用户个人收藏和计划
    • 情绪-地理位置关联分析
  2. 社区笔记系统

    • 图文分享功能
    • 点赞、评论、转发
    • 内容审核和推荐算法
  3. 位置服务集成

    • 地理位置获取和标记
    • 周边推荐和导航
    • 隐私保护机制

🗺 地图功能

  • 个人标记: 用户自定义的情绪地点
  • AI推荐: 基于情绪匹配的地点推荐
  • 社区内容: 其他用户分享的美好角落
  • 导航服务: 一键导航到目标地点

3.4 个人页面

定位: 用户信息 + 成就系统

🎨 界面组件

模块 功能描述 更新频率 优先级
用户资料 基础信息和会员状态 手动更新 P1
成就面板 各类数据统计展示 实时更新 P1
邀请模块 好友邀请和奖励 事件触发 P2
设置中心 应用配置和隐私设置 手动配置 P1

📈 数据统计

  • 本周数据: 心情指数、对话次数、成长轨迹
  • 累计成就: 打卡记录、分享统计、影响力数据
  • 趋势分析: 情绪变化曲线、活跃度趋势
  • 社交数据: 好友互动、内容被访问情况

4. 用户体验流程

🌟 核心用户路径

首次使用流程

graph TD
    A[下载应用] --> B[注册登录]
    B --> C[个人信息设置]
    C --> D[情绪状态评估]
    D --> E[AI对话引导]
    E --> F[功能介绍]
    F --> G[开始使用]

日常使用流程

graph TD
    A[打开应用] --> B[查看今日情绪]
    B --> C[开始对话/浏览内容]
    C --> D[AI分析反馈]
    D --> E[查看成长建议]
    E --> F[探索推荐内容]
    F --> G[记录/分享]

🎮 用户激励机制

行为 奖励机制 说明
每日对话 积分+连续天数 培养使用习惯
完成课题 经验值+称号 促进成长目标
分享内容 影响力积分 鼓励社区参与
邀请好友 特殊奖励 促进用户增长

5. 开发优先级

🚀 MVP开发路线图

Phase 1: 核心对话系统 (2-3周)

  • 基础UI框架搭建
  • AI对话功能实现
  • 语音输入集成
  • 本地数据存储
  • 情绪日历基础版

Phase 2: 个人成长模块 (2-3周)

  • 情绪分析算法
  • 课题推荐系统
  • 用户画像建模
  • 数据可视化组件
  • 成就系统基础版

Phase 3: 地图和社区 (3-4周)

  • 地图SDK集成
  • 位置服务功能
  • 内容分享系统
  • 社区互动功能
  • 内容审核机制

Phase 4: 优化和完善 (1-2周)

  • 性能优化
  • 用户体验改进
  • 数据分析完善
  • 安全和隐私加强

📊 功能优先级矩阵

功能模块 用户价值 技术复杂度 开发优先级 预估工期
AI对话系统 P0 1周
情绪日历 P0 3天
对话记录 P0 2天
成长课题 P1 1周
情绪分析 P1 1.5周
地图功能 P2 2周
社区分享 P2 1周
用户画像 P3 3天

6. 技术实现建议

🛠 关键技术组件

AI对话服务

// AI服务协议
protocol AIServiceProtocol {
    func sendMessage(_ message: String) async throws -> AIResponse
    func analyzeEmotion(_ text: String) async throws -> EmotionAnalysis
}

// GPT-4集成示例
class OpenAIService: AIServiceProtocol {
    private let apiKey = "your-api-key"
    private let endpoint = "https://api.openai.com/v1/chat/completions"
    
    func sendMessage(_ message: String) async throws -> AIResponse {
        // 实现GPT-4 API调用
    }
}

语音识别集成

import Speech

class SpeechRecognitionService {
    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh-CN"))
    
    func startRecording() async throws -> String {
        // 实现语音转文字功能
    }
}

情绪数据模型

struct EmotionRecord {
    let id: UUID
    let date: Date
    let emotionType: EmotionType
    let intensity: Float // 0.0 - 1.0
    let context: String
    let aiAnalysis: String?
}

enum EmotionType: String, CaseIterable {
    case joy = "喜悦"
    case sadness = "悲伤"
    case anger = "愤怒"
    case fear = "恐惧"
    case surprise = "惊讶"
    case neutral = "平静"
}

🔧 第三方依赖

依赖库 用途 集成方式
AMapFoundation 地图服务 SPM/CocoaPods
AMapLocation 定位服务 SPM/CocoaPods
Charts 数据可视化 SPM
Alamofire 网络请求 SPM
Kingfisher 图片加载 SPM

7. 数据模型设计

📊 Core Data实体关系

User (用户)
├── conversations: [Conversation] (对话记录)
├── emotionRecords: [EmotionRecord] (情绪记录)
├── growthTopics: [GrowthTopic] (成长课题)
├── achievements: [Achievement] (成就记录)
├── locations: [UserLocation] (用户地点)
└── posts: [CommunityPost] (社区分享)

Conversation (对话)
├── messages: [Message] (消息列表)
├── emotionAnalysis: EmotionAnalysis (情绪分析)
└── topics: [String] (关联话题)

GrowthTopic (成长课题)
├── category: TopicCategory (课题分类)
├── progress: Float (完成进度)
├── interactions: [TopicInteraction] (互动记录)
└── rewards: [Reward] (获得奖励)

🗃 数据表结构

用户表 (User)

字段 类型 说明 索引
id UUID 主键 PK
username String 用户名 UNIQUE
email String 邮箱 UNIQUE
profile UserProfile 用户档案 -
createdAt Date 创建时间 INDEX
lastActiveAt Date 最后活跃 INDEX

对话表 (Conversation)

字段 类型 说明 索引
id UUID 主键 PK
userId UUID 用户ID FK
title String 对话标题 -
startTime Date 开始时间 INDEX
endTime Date 结束时间 INDEX
messageCount Int 消息数量 -

情绪记录表 (EmotionRecord)

字段 类型 说明 索引
id UUID 主键 PK
userId UUID 用户ID FK
emotionType String 情绪类型 INDEX
intensity Float 情绪强度 -
recordDate Date 记录日期 INDEX
context String 情绪背景 -

💾 数据同步策略

  • 本地优先: 所有数据本地存储,确保离线可用
  • 增量同步: 只同步变化的数据,减少网络开销
  • 冲突解决: 时间戳优先,客户端胜出策略
  • 数据备份: 定期备份到iCloud,支持设备间同步

📄 附录

版本历史

  • v1.0 (2025-07-03): 初始版本,完整的MVP需求规格

相关文档

  • 设计规范文档
  • API接口文档
  • 测试用例文档
  • 部署运维文档

本文档将根据开发进度持续更新和完善