欢迎光临
我们一直在努力

大学生在线焦虑测试系统

大学生在线焦虑测试系统

项目简介

这是一个专为大学生设计的在线心理健康评估与咨询平台,集成了焦虑测评、在线咨询、个性化建议等核心功能。系统采用前后端分离架构,支持学生、医生、管理员三种角色,提供专业的心理健康服务。

技术栈

后端技术

技术版本/说明
开发语言 Java 17
框架 Spring Boot 3.4.3
ORM框架 MyBatis-Plus 3.5.8
数据库 MySQL 8.0+
API文档 Knife4j 4.5.0 (Swagger增强)
工具库 Hutool 5.8.36
身份认证 JWT (jjwt 0.12.3)
构建工具 Maven

前端技术

技术版本/说明
框架 Vue 3.5.13
构建工具 Vite 6.2.4
UI组件库 Element Plus 2.9.8
状态管理 Pinia 3.0.1
路由管理 Vue Router 4.5.0
HTTP请求 Axios 1.8.4
包管理器 pnpm
代码规范 ESLint + Prettier + Oxlint

项目特点

  • 前后端分离:后端提供RESTful API,前端独立开发部署
  • 多角色管理:支持学生、医生、管理员三种角色
  • 专业测评:标准化焦虑测评问卷,科学评估心理状态
  • 在线咨询:实时消息系统,支持学生与医生在线沟通
  • 个性化建议:医生根据测评结果提供针对性建议
  • 数据可视化:测评结果图表展示,趋势分析
  • API文档:集成Knife4j,提供美观的API文档界面

功能模块

学生端功能

1. 用户管理
  • 用户注册/登录
  • 个人信息管理
  • 密码修改
  • 个人资料编辑
2. 焦虑测评
  • 查看可用问卷列表
  • 在线答题
  • 提交测评
  • 查看测评结果
  • 历史测评记录
  • 测评结果分析
3. 在线咨询
  • 发起咨询请求
  • 选择咨询医生
  • 实时消息沟通
  • 查看咨询历史
  • 咨询状态跟踪
4. 个性化建议
  • 查看医生建议
  • 建议收藏
  • 建议分类浏览
5. 疾病知识库
  • 浏览心理疾病信息
  • 症状查询
  • 治疗方法了解
  • 预防措施学习
6. 系统通知
  • 查看系统公告
  • 接收测评提醒
  • 咨询消息通知

医生端功能

1. 测评管理
  • 查看待处理测评
  • 测评结果分析
  • 填写处理意见
  • 测评统计分析
2. 在线咨询
  • 接收咨询请求
  • 回复学生消息
  • 咨询会话管理
  • 咨询记录查看
3. 个性化建议
  • 创建个性化建议
  • 编辑建议内容
  • 发布建议
  • 建议管理
4. 患者管理
  • 查看患者列表
  • 患者测评历史
  • 患者咨询记录
  • 患者档案管理

管理员功能

1. 用户管理
  • 用户列表查看
  • 用户信息编辑
  • 用户状态管理
  • 角色权限分配
2. 医生管理
  • 医生信息管理
  • 医生资质审核
  • 医生职称管理
  • 医生专业设置
3. 问卷管理
  • 问卷创建/编辑
  • 问题管理
  • 选项配置
  • 问卷发布/下架
4. 疾病管理
  • 疾病信息录入
  • 疾病分类管理
  • 症状描述编辑
  • 治疗方案维护
5. 通知管理
  • 发布系统通知
  • 通知编辑
  • 通知状态管理
  • 通知历史查看
6. 数据统计
  • 测评数据统计
  • 咨询数据分析
  • 用户活跃度统计
  • 系统使用报表

项目结构

java-kaoshijiaolv/
├── backend/ # 后端项目(Spring Boot)
│ ├── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/sqa/anxiety/
│ │ │ ├── controller/ # 控制器层
│ │ │ ├── service/ # 业务逻辑层
│ │ │ ├── mapper/ # 数据访问层
│ │ │ ├── entity/ # 实体类
│ │ │ ├── dto/ # 数据传输对象
│ │ │ ├── vo/ # 视图对象
│ │ │ ├── config/ # 配置类
│ │ │ ├── common/ # 公共类
│ │ │ ├── exception/ # 异常处理
│ │ │ └── util/ # 工具类
│ │ └── resources/
│ │ ├── application.yml # 应用配置
│ │ └── mapper/ # MyBatis映射文件
│ ├── sql/
│ │ └── anxiety.sql # 数据库脚本
│ └── pom.xml # Maven配置
│
├── web-java/ # 前端项目(Vue 3)
│ ├── public/ # 静态资源
│ ├── src/
│ │ ├── api/ # API接口封装
│ │ ├── assets/ # 静态资源
│ │ ├── components/ # 公共组件
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # Pinia状态管理
│ │ ├── views/ # 页面视图
│ │ │ ├── student/ # 学生端页面
│ │ │ ├── doctor/ # 医生端页面
│ │ │ ├── admin/ # 管理员页面
│ │ │ └── common/ # 公共页面
│ │ ├── App.vue # 根组件
│ │ └── main.js # 入口文件
│ ├── package.json # 依赖配置
│ └── vite.config.js # Vite配置
│
├── 大学生在线焦虑测试系统.xmind # 项目思维导图
├── 功能图.jpg # 功能架构图
└── 演示视频.mp4 # 系统演示视频

数据模型

用户表 (users)

{
id: BIGINT, // 用户ID
username: VARCHAR(50), // 用户名
password: VARCHAR(100), // 密码
nickname: VARCHAR(50), // 昵称
phone: VARCHAR(20), // 手机号
email: VARCHAR(100), // 邮箱
role: ENUM, // 角色 (user/doctor/admin)
status: ENUM, // 状态 (active/disabled)
created_at: TIMESTAMP, // 创建时间
updated_at: TIMESTAMP // 更新时间
}

医生信息表 (doctor_profiles)

{
id: BIGINT, // 医生ID
user_id: BIGINT, // 关联用户ID
title: VARCHAR(50), // 职称
specialty: VARCHAR(100) // 专业
}

问卷表 (questionnaires)

{
id: BIGINT, // 问卷ID
title: VARCHAR(100), // 问卷标题
cate: VARCHAR(100), // 问卷类型
description: TEXT, // 问卷描述
status: ENUM, // 状态 (active/inactive)
created_at: TIMESTAMP, // 创建时间
updated_at: TIMESTAMP // 更新时间
}

问卷问题表 (questionnaire_questions)

{
id: BIGINT, // 问题ID
questionnaire_id: BIGINT, // 问卷ID
content: TEXT, // 问题内容
question_order: INT // 问题顺序
}

问卷选项表 (questionnaire_options)

{
id: BIGINT, // 选项ID
question_id: BIGINT, // 问题ID
content: VARCHAR(255), // 选项内容
value: INT, // 选项值
option_order: INT // 选项顺序
}

测评结果表 (test_results)

{
id: BIGINT, // 测评结果ID
user_id: BIGINT, // 用户ID
questionnaire_id: BIGINT, // 问卷ID
doctor_id: BIGINT, // 处理医生ID
total_score: INT, // 总分
level: ENUM, // 评估等级 (normal/mild/moderate/severe)
answers: JSON, // 答案记录
status: ENUM, // 处理状态 (pending/processed)
doctor_opinion: TEXT, // 医生处理意见
created_at: TIMESTAMP, // 创建时间
updated_at: TIMESTAMP // 更新时间
}

在线咨询会话表 (consultation_sessions)

{
id: BIGINT, // 会话ID
user_id: BIGINT, // 用户ID
doctor_id: BIGINT, // 医生ID
title: VARCHAR(100), // 咨询标题
status: ENUM, // 咨询状态 (pending/processing/completed/cancelled)
created_at: TIMESTAMP, // 创建时间
updated_at: TIMESTAMP // 更新时间
}

咨询消息表 (consultation_messages)

{
id: BIGINT, // 消息ID
session_id: BIGINT, // 会话ID
sender_id: BIGINT, // 发送者ID
receiver_id: BIGINT, // 接收者ID
content: TEXT, // 消息内容
message_type: ENUM, // 消息类型 (text/image/file)
is_read: BOOLEAN, // 是否已读
created_at: TIMESTAMP // 创建时间
}

个性化建议表 (personalized_advice)

{
id: BIGINT, // 建议ID
user_id: BIGINT, // 用户ID
doctor_id: BIGINT, // 医生ID
title: VARCHAR(100), // 建议标题
content: TEXT, // 建议内容
status: ENUM, // 状态 (draft/published)
created_at: TIMESTAMP, // 创建时间
updated_at: TIMESTAMP // 更新时间
}

疾病表 (diseases)

{
id: BIGINT, // 疾病ID
name: VARCHAR(100), // 疾病名称
description: TEXT, // 疾病描述
symptoms: TEXT, // 症状
treatments: TEXT, // 治疗方法
preventions: TEXT, // 预防措施
severity: ENUM, // 严重程度 (mild/moderate/severe)
created_at: TIMESTAMP, // 创建时间
updated_at: TIMESTAMP // 更新时间
}

通知表 (notifications)

{
id: BIGINT, // 通知ID
title: VARCHAR(100), // 通知标题
content: TEXT, // 通知内容
status: ENUM, // 状态 (draft/published)
created_at: TIMESTAMP, // 创建时间
updated_at: TIMESTAMP // 更新时间
}

焦虑评估等级

等级英文标识分数范围说明
正常 normal 0-20分 心理状态良好,无明显焦虑症状
轻度 mild 21-40分 存在轻微焦虑,建议自我调节
中度 moderate 41-60分 焦虑症状明显,建议咨询专业人士
重度 severe 61分以上 焦虑严重,需要及时就医治疗

运行环境要求

后端环境

  • JDK 17+
  • Maven 3.6+
  • MySQL 8.0+
  • IDE: IntelliJ IDEA / Eclipse

前端环境

  • Node.js 18.0+
  • pnpm 8.0+
  • 现代浏览器(Chrome、Firefox、Edge等)

快速开始

1. 数据库配置

  • 创建MySQL数据库
  • CREATE DATABASE exam_anxiety CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  • 导入数据库文件
  • mysql -u root -p exam_anxiety < backend/sql/anxiety.sql

  • 修改数据库配置
    编辑 backend/src/main/resources/application.yml:
  • spring:
    datasource:
    url: jdbc:mysql://localhost:3306/exam_anxiety?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: your_password # 修改为你的密码

    2. 启动后端服务

    # 进入后端目录
    cd backend

    # 使用Maven编译
    mvn clean install

    # 启动Spring Boot应用
    mvn spring-boot:run

    后端服务默认运行在 http://localhost:8080

    API文档访问地址: http://localhost:8080/doc.html

    3. 启动前端服务

    # 进入前端目录
    cd web-java

    # 安装依赖
    pnpm install

    # 启动开发服务器
    pnpm dev

    前端服务默认运行在 http://localhost:5173

    4. 配置前端API地址

    如果后端地址不是默认的 http://localhost:8080,需要修改前端配置:

    编辑 web-java/src/api/request.js 或相关配置文件,修改API基础地址。

    默认账号

    管理员账号

    • 用户名:admin
    • 密码:123456

    测试账号

    系统启动后可以通过注册功能创建新账号,或由管理员添加。

    核心业务流程

    1. 学生测评流程

  • 学生登录系统
  • 选择焦虑测评问卷
  • 逐题作答
  • 提交测评
  • 系统自动计算分数和等级
  • 查看测评结果
  • 等待医生处理
  • 查看医生意见
  • 2. 医生处理流程

  • 医生登录系统
  • 查看待处理测评列表
  • 查看学生测评详情
  • 分析测评结果
  • 填写处理意见
  • 提交处理结果
  • 可选:创建个性化建议
  • 3. 在线咨询流程

  • 学生发起咨询请求
  • 选择咨询医生
  • 填写咨询标题和初始问题
  • 医生接收咨询请求
  • 双方实时消息沟通
  • 医生提供专业建议
  • 咨询完成或取消
  • API接口说明

    用户相关

    • POST /api/auth/register – 用户注册
    • POST /api/auth/login – 用户登录
    • GET /api/user/profile – 获取个人信息
    • PUT /api/user/profile – 更新个人信息
    • PUT /api/user/password – 修改密码

    问卷相关

    • GET /api/questionnaires – 获取问卷列表
    • GET /api/questionnaires/{id} – 获取问卷详情
    • POST /api/questionnaires – 创建问卷(管理员)
    • PUT /api/questionnaires/{id} – 更新问卷(管理员)
    • DELETE /api/questionnaires/{id} – 删除问卷(管理员)

    测评相关

    • POST /api/test-results – 提交测评
    • GET /api/test-results – 获取测评列表
    • GET /api/test-results/{id} – 获取测评详情
    • PUT /api/test-results/{id}/process – 处理测评(医生)

    咨询相关

    • POST /api/consultations – 创建咨询会话
    • GET /api/consultations – 获取咨询列表
    • GET /api/consultations/{id} – 获取咨询详情
    • POST /api/consultations/{id}/messages – 发送消息
    • GET /api/consultations/{id}/messages – 获取消息列表

    建议相关

    • POST /api/advice – 创建建议(医生)
    • GET /api/advice – 获取建议列表
    • GET /api/advice/{id} – 获取建议详情
    • PUT /api/advice/{id} – 更新建议(医生)

    疾病相关

    • GET /api/diseases – 获取疾病列表
    • GET /api/diseases/{id} – 获取疾病详情
    • POST /api/diseases – 创建疾病(管理员)
    • PUT /api/diseases/{id} – 更新疾病(管理员)

    通知相关

    • GET /api/notifications – 获取通知列表
    • GET /api/notifications/{id} – 获取通知详情
    • POST /api/notifications – 发布通知(管理员)

    扩展建议

    如需进一步完善项目,可考虑以下扩展:

  • 数据分析:添加数据可视化图表,展示测评趋势
  • 预约系统:支持学生预约医生咨询时间
  • 视频咨询:集成WebRTC实现视频通话
  • 移动端:开发微信小程序或APP
  • AI辅助:集成AI进行初步心理评估
  • 报告导出:支持测评报告PDF导出
  • 提醒功能:定期测评提醒、复诊提醒
  • 匿名模式:支持匿名咨询保护隐私
  • 社区功能:添加心理健康交流社区
  • 多语言支持:国际化支持
  • 注意事项

  • 本项目为学习演示项目,实际应用需完善安全机制
  • 生产环境部署需要配置HTTPS
  • 敏感信息需要加密存储
  • 建议定期备份数据库数据
  • 心理咨询功能需要专业资质支持
  • 遵守相关法律法规和隐私保护政策
  • 常见问题

    Q: 后端启动失败?

    A: 检查JDK版本是否为17+,MySQL服务是否启动,数据库配置是否正确

    Q: 前端无法连接后端?

    A: 检查后端服务是否启动,前端API地址配置是否正确,跨域配置是否正确

    Q: 数据库连接失败?

    A: 检查MySQL服务是否启动,数据库名称、用户名、密码是否正确

    Q: API文档无法访问?

    A: 确认后端服务已启动,访问 http://localhost:8080/doc.html

    Q: 前端页面空白?

    A: 检查浏览器控制台错误信息,确认Node.js版本是否符合要求

    技术支持

    如有问题,请查看:

    • 项目思维导图:大学生在线焦虑测试系统.xmind
    • 功能架构图:功能图.jpg
    • 演示视频:演示视频.mp4

    许可证

    本项目仅供学习交流使用,请勿用于商业用途。


    祝学习顺利! 📚💻

    赞(0)
    未经允许不得转载:171主机测评 » 大学生在线焦虑测试系统
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址