# 情绪博物馆 (Emotion Museum)

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

## 📋 项目概述

### 🎯 产品定位
情绪博物馆致力于为用户提供一个安全、私密的情绪表达空间，通过AI技术提供24/7的情绪陪伴与支持，帮助用户更好地理解和管理自己的情绪。

### 🚀 核心价值
- **情绪陪伴**: AI驱动的智能对话系统，提供全天候情绪支持
- **个性化成长**: 基于用户数据的个性化心理成长路径
- **社区分享**: 安全的情绪表达和经验分享社区
- **数据洞察**: 情绪数据可视化，帮助用户了解自己

## 🏗️ 技术架构

### 整体架构
情绪博物馆采用现代化的前后端分离架构，包含iOS移动端、Web端和后端微服务系统。服务IP：101.200.208.45

```
┌─────────────────────────────────────────────────────────────┐
│                    iOS 移动端 (SwiftUI)                     │
├─────────────────────────────────────────────────────────────┤
│                    Web 前端 (Vue3 + TS)                     │
├─────────────────────────────────────────────────────────────┤
│              API 网关 (Spring Cloud Gateway)                │
├─────────────────────────────────────────────────────────────┤
│  用户服务  │  AI服务  │  记录服务  │  成长服务  │  探索服务  │
├─────────────────────────────────────────────────────────────┤
│                     公共组件 & 基础设施                     │
│  Nacos配置中心  │  MySQL数据库  │  Redis缓存  │  日志系统   │
└─────────────────────────────────────────────────────────────┘
```

### 技术栈

#### 后端技术栈
- **微服务框架**: Spring Cloud Alibaba 2022.0.0.0
- **核心框架**: Spring Boot 3.0.2
- **服务注册发现**: Nacos 2.2.0+
- **数据库**: MySQL 8.0+
- **缓存**: Redis 7.0+
- **AI服务**: Coze API (GPT-4)
- **WebSocket**: Spring WebSocket
- **构建工具**: Maven 3.6+

#### 前端技术栈
- **Web端**: Vue 3.4.21 + TypeScript 5.4.2 + Vite 5.1.6
- **管理后台**: Vue 3.4.0 + TypeScript 5.3.3 + Element Plus 2.4.4
- **移动端**: SwiftUI (iOS原生)
- **UI框架**: Element Plus 2.6.1 + Tailwind CSS 3.4.1
- **状态管理**: Pinia 2.1.7
- **实时通信**: STOMP + 原生WebSocket
- **数据可视化**: ECharts 5.5.0
- **构建工具**: Vite 5.1.6

## 📁 项目结构

```
.
├── UniApp/                 # UniApp跨平台移动应用
├── backend/                # 后端微服务系统
│   ├── emotion-gateway/    # API网关服务
│   ├── emotion-user/       # 用户服务
│   ├── emotion-ai/         # AI对话服务
│   ├── emotion-record/     # 情绪记录服务
│   ├── emotion-growth/     # 成长课题服务
│   ├── emotion-explore/    # 地图探索服务
│   ├── emotion-reward/     # 成就奖励服务
│   ├── emotion-stats/      # 统计分析服务
│   └── emotion-common/     # 公共模块
├── backend-single/         # SpringBoot单体后端服务
├── web/                    # 旧版Web前端
├── web-new/                # 新版Web前端(Vue3+TS)
└── 开心APP网页代码v1.1/      # 早期网页版本
```

## 🚀 快速开始

### 后端微服务部署

#### 环境要求
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Redis 7.0+
- Nacos 2.2.0+

#### 启动步骤
1. 启动Nacos配置中心
2. 创建MySQL数据库并导入数据结构
3. 启动Redis服务
4. 配置Nacos命名空间和配置文件
5. 启动各微服务模块

```bash
# 启动所有服务
cd backend
./start-services.sh

# 停止所有服务
./stop-services.sh
```

### Web前端部署

#### 环境要求
- Node.js 18+
- npm 9+

#### 用户前端 (web)
```bash
# 进入前端目录
cd web

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

# 部署到服务器
bash deploy.sh
```

#### 管理后台 (web-admin)
```bash
# 进入管理后台目录
cd web-admin

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

# 部署到服务器
bash deploy.sh
```

### 一键部署
```bash
# 部署所有服务（后端 + 前端 + 管理后台）
bash deploy-all.sh

# 部署指定服务
bash deploy-all.sh backend    # 仅部署后端
bash deploy-all.sh frontend   # 仅部署前端
bash deploy-all.sh admin      # 仅部署管理后台
```

## 📊 核心功能模块

### 1. 记录模块
**定位**: 情绪主页 + AI对话入口
- 智能对话系统（支持语音、文字、图片输入）
- 情绪日历（情绪记录与回顾）
- 对话记录管理（自动保存、分类、搜索）

### 2. 治愈模块
**定位**: 个人成长档案 + 课题系统
- 智能情绪洞察（基于对话内容的情绪分析）
- 成长课题系统（个性化成长任务推荐）
- 用户画像建模（五维能力评估模型）
- 互动奖励（积分、称号、皮肤）

### 3. 探索模块
**定位**: 情绪地图 + 社区分享
- 智能地图推荐（基于情绪状态推荐地点）
- 社区笔记系统（图文分享、点赞评论）
- 位置服务集成（地理定位、周边推荐）

### 4. 个人模块
**定位**: 用户信息 + 成就系统
- 用户资料管理
- 成就面板（数据统计展示）
- 邀请模块（好友邀请和奖励）
- 设置中心（应用配置和隐私设置）

## 🔧 开发指南

### 后端开发
1. 使用Spring Cloud Alibaba微服务架构
2. 遵循RESTful API设计规范
3. 使用MyBatis-Plus进行数据访问
4. 集成Nacos进行配置管理
5. 使用Spring Security进行安全控制

### 前端开发
1. 使用Vue 3 Composition API
2. 遵循TypeScript编码规范
3. 使用Element Plus组件库
4. 集成Tailwind CSS样式框架
5. 使用Pinia进行状态管理

### 访问地址

#### 生产环境 (101.200.208.45)
- **用户前端**: http://101.200.208.45/emotion-museum/
- **管理后台**: http://101.200.208.45/emotion-museum-admin/
- **后端API**: http://101.200.208.45:19089/api
- **WebSocket**: ws://101.200.208.45:19089/ws

#### 开发环境 (本地)
- **用户前端**: http://localhost:5173
- **管理后台**: http://localhost:5174
- **后端API**: http://localhost:19089/api
- **WebSocket**: ws://localhost:19089/ws

## 🧪 测试策略

### 后端测试
- 单元测试覆盖率 > 80%
- 集成测试覆盖核心业务流程
- API测试验证接口正确性
- 性能测试确保系统稳定性

### 前端测试
- 组件单元测试 (Vitest)
- 端到端测试 (Cypress)
- 跨浏览器兼容性测试
- 移动端响应式测试

## 📈 部署与监控

### 部署方式
- Docker容器化部署
- Kubernetes集群部署
- CI/CD自动化部署

### 监控体系
- 健康检查端点
- Prometheus指标收集
- Grafana可视化监控
- 日志收集与分析

## 🤝 贡献指南

我们欢迎任何形式的贡献！

1. Fork项目
2. 创建功能分支
3. 提交代码更改
4. 编写测试用例
5. 提交Pull Request

## 📄 许可证

本项目采用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。

## 📞 联系我们

如有任何问题或建议，请通过以下方式联系我们：
- 邮箱: [请填写邮箱地址]
- GitHub Issues: [项目Issues页面]

---

*情绪博物馆 - 让每一种情绪都被温柔以待*