c895bc030b17bcd69edab2e452e74ba1d9f9aceb
情绪博物馆 (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+
启动步骤
- 启动Nacos配置中心
- 创建MySQL数据库并导入数据结构
- 启动Redis服务
- 配置Nacos命名空间和配置文件
- 启动各微服务模块
# 启动所有服务
cd backend
./start-services.sh
# 停止所有服务
./stop-services.sh
Web前端部署
环境要求
- Node.js 18+
- npm 9+
用户前端 (web)
# 进入前端目录
cd web
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
# 部署到服务器
bash deploy.sh
管理后台 (web-admin)
# 进入管理后台目录
cd web-admin
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
# 部署到服务器
bash deploy.sh
一键部署
# 部署所有服务(后端 + 前端 + 管理后台)
bash deploy-all.sh
# 部署指定服务
bash deploy-all.sh backend # 仅部署后端
bash deploy-all.sh frontend # 仅部署前端
bash deploy-all.sh admin # 仅部署管理后台
📊 核心功能模块
1. 记录模块
定位: 情绪主页 + AI对话入口
- 智能对话系统(支持语音、文字、图片输入)
- 情绪日历(情绪记录与回顾)
- 对话记录管理(自动保存、分类、搜索)
2. 治愈模块
定位: 个人成长档案 + 课题系统
- 智能情绪洞察(基于对话内容的情绪分析)
- 成长课题系统(个性化成长任务推荐)
- 用户画像建模(五维能力评估模型)
- 互动奖励(积分、称号、皮肤)
3. 探索模块
定位: 情绪地图 + 社区分享
- 智能地图推荐(基于情绪状态推荐地点)
- 社区笔记系统(图文分享、点赞评论)
- 位置服务集成(地理定位、周边推荐)
4. 个人模块
定位: 用户信息 + 成就系统
- 用户资料管理
- 成就面板(数据统计展示)
- 邀请模块(好友邀请和奖励)
- 设置中心(应用配置和隐私设置)
🔧 开发指南
后端开发
- 使用Spring Cloud Alibaba微服务架构
- 遵循RESTful API设计规范
- 使用MyBatis-Plus进行数据访问
- 集成Nacos进行配置管理
- 使用Spring Security进行安全控制
前端开发
- 使用Vue 3 Composition API
- 遵循TypeScript编码规范
- 使用Element Plus组件库
- 集成Tailwind CSS样式框架
- 使用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可视化监控
- 日志收集与分析
🤝 贡献指南
我们欢迎任何形式的贡献!
- Fork项目
- 创建功能分支
- 提交代码更改
- 编写测试用例
- 提交Pull Request
📄 许可证
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
📞 联系我们
如有任何问题或建议,请通过以下方式联系我们:
- 邮箱: [请填写邮箱地址]
- GitHub Issues: [项目Issues页面]
情绪博物馆 - 让每一种情绪都被温柔以待
Description
Languages
Java
49.9%
Vue
23.4%
JavaScript
8.7%
TypeScript
7.2%
Python
6.6%
Other
4.1%