1. 项目概述
作为一名从事心理健康领域多年的开发者,我深知当前社会对心理健康服务的迫切需求。传统心理咨询服务受限于时间和空间,难以满足大众需求。基于此背景,我设计并实现了这款基于SpringBoot的心理测评服务平台,旨在为用户提供便捷、专业的在线心理服务。
这个平台采用B/S架构,前端使用Vue.js+ElementUI,后端采用SpringBoot+MyBatis框架,数据库选用MySQL 8.0。系统主要包含三大角色:普通用户、心理咨询师和管理员,每种角色都有其特定的功能模块和权限控制。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心需求解析
2.1 用户需求分析
在项目启动前,我进行了为期一个月的需求调研,通过问卷调查和访谈收集了200多位潜在用户的反馈。调研结果显示:
- 85%的受访者表示需要定期进行心理状态评估
- 72%的用户希望获得专业的心理咨询服务
- 63%的用户关注心理健康知识的获取
- 90%的用户重视隐私保护和数据安全
基于这些发现,我将系统核心功能划分为以下几个模块:
- 心理测评模块:提供专业量表评估
- 咨询服务模块:在线预约心理咨询师
- 知识社区模块:心理健康资讯和论坛交流
- 个人中心模块:用户数据管理和隐私设置
2.2 技术选型考量
在技术选型上,我主要考虑了以下几个因素:
- 开发效率:SpringBoot的约定优于配置原则可以大幅减少XML配置
- 性能需求:MySQL在OLTP场景下的稳定表现
- 可维护性:前后端分离架构便于团队协作
- 安全性:Spring Security提供的完善认证授权机制
经过对比测试,最终技术栈确定如下:
| 技术分类 | 选型 | 版本 | 选择理由 |
|---|---|---|---|
| 前端框架 | Vue.js | 2.6.x | 渐进式框架,学习曲线平缓 |
| UI组件库 | ElementUI | 2.15.x | 丰富的组件,良好的文档 |
| 后端框架 | SpringBoot | 2.7.x | 快速开发,生态完善 |
| ORM框架 | MyBatis | 3.5.x | SQL可控性强 |
| 数据库 | MySQL | 8.0.x | ACID支持完善 |
| 应用服务器 | Tomcat | 9.0.x | 轻量级,部署简单 |
3. 系统架构设计
3.1 整体架构
系统采用典型的三层架构设计:
code复制┌───────────────────────────────────────┐
│ 客户端层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐│
│ │ Web │ │ 移动端 │ │管理后台 ││
│ └─────────┘ └─────────┘ └─────────┘│
└───────────────────────────────────────┘
↓
┌───────────────────────────────────────┐
│ 应用服务层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐│
│ │ 网关服务 │ │业务服务 │ │认证服务 ││
│ └─────────┘ └─────────┘ └─────────┘│
└───────────────────────────────────────┘
↓
┌───────────────────────────────────────┐
│ 数据持久层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐│
│ │ MySQL │ │ Redis │ │ 文件存储││
│ └─────────┘ └─────────┘ └─────────┘│
└───────────────────────────────────────┘
3.2 数据库设计
数据库设计遵循第三范式,主要实体关系如下:
- 用户体系:user(基础表)、registered_user(注册用户)、consultant_user(咨询师)
- 内容体系:article(文章)、psychological_knowledge(心理知识)
- 服务体系:consultant_information(咨询师信息)、consultant_appointment(预约)
- 测评体系:evaluation(问卷)、evaluation_question(题目)、evaluation_user_answer(用户答案)
核心表consultant_information的设计考虑了咨询师信息的完整性和查询效率:
sql复制CREATE TABLE `consultant_information` (
`consultant_information_id` int NOT NULL AUTO_INCREMENT,
`consultant_user` int DEFAULT NULL COMMENT '咨询师用户ID',
`consultant_name` varchar(64) DEFAULT NULL COMMENT '姓名',
`consultant_gender` varchar(64) DEFAULT NULL COMMENT '性别',
`consultants_phone_number` varchar(64) DEFAULT NULL COMMENT '电话',
`consultant_age` double DEFAULT NULL COMMENT '年龄',
`consultant_photo` varchar(255) DEFAULT NULL COMMENT '照片URL',
`fee_information` varchar(64) DEFAULT NULL COMMENT '收费信息',
`service_scope` text COMMENT '服务范围',
