AI源码
AI源码AI 精选 · 优质源码 · 助力学习

大学生在线焦虑测试系统

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

评分:4.8/5.0
销量:33
发布:2025/12/2
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

大学生在线焦虑测试系统

项目简介

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

技术栈

后端技术

技术版本/说明
开发语言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          // 更新时间
}

焦虑评估等级

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

运行环境要求

后端环境

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

前端环境

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

快速开始

1. 数据库配置

  1. 创建MySQL数据库
CREATE DATABASE exam_anxiety CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 导入数据库文件
mysql -u root -p exam_anxiety < backend/sql/anxiety.sql
  1. 修改数据库配置 编辑 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. 学生测评流程

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

2. 医生处理流程

  1. 医生登录系统
  2. 查看待处理测评列表
  3. 查看学生测评详情
  4. 分析测评结果
  5. 填写处理意见
  6. 提交处理结果
  7. 可选:创建个性化建议

3. 在线咨询流程

  1. 学生发起咨询请求
  2. 选择咨询医生
  3. 填写咨询标题和初始问题
  4. 医生接收咨询请求
  5. 双方实时消息沟通
  6. 医生提供专业建议
  7. 咨询完成或取消

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 - 发布通知(管理员)

扩展建议

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

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

注意事项

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

常见问题

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

许可证

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


祝学习顺利! 📚💻

技术分类

包含内容

完整源码
项目说明文档
演示材料

适用人群

学习参考与二次开发

关于 AI源码

AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 33+ 位用户
立即咨询

相关推荐

查看全部 →
大学生就业信息管理系统
Node
进阶

大学生就业信息管理系统

这是一个面向高校大学生的就业信息管理系统,采用前后端分离架构,实现了学生求职、企业招聘、管理员后台管理三端功能。系统涵盖职位发布、简历管理、面试安排、合同签署、就业指南等完整的就业服务流程,适合作为计算机设计或学习项目参考。

NodeVue3MySQL
4.842
商品管理系统HTML(登录注册增删增删改查)
Node
进阶

商品管理系统HTML(登录注册增删增删改查)

这是一个基于 Node.js + MySQL + HTML(Vue2) 的商品管理系统,包含用户登录注册和商品的增删改查功能。

Node大作业Vue2+1
4.838
高校快递代取系统
Node
NEW推荐
进阶

高校快递代取系统

本系统是一套高校快递代取微信小程序全栈平台,包含用户端小程序、骑手接单端与 PC 管理后台。用户可发布代取预约、在线支付、跟踪订单进度与申诉;骑手可在大厅接单、取件配送并填写备注;管理员负责驿站与价格配置、公告发布、骑手审核、订单改派及数据统计。后端采用 Express + MySQL,适合作为校园 O2O 类小程序计算机设计参考。

Node小程序Vue2+1
4.896
高校选课系统
Node
进阶

高校选课系统

这是一个完整的高校选课管理系统,采用前后端分离架构,实现了院系管理、专业管理、班级管理、学生管理、教师管理、课程管理、选课管理等核心功能。系统支持多角色(超级管理员、普通管理员、教师、学生)权限控制,适合作为Vue3全栈开发学习项目或计算机设计参考。

NodeVue3MySQL
4.872
高校查分系统
Node
NEW
进阶

高校查分系统

高校学生成绩查询与管理系统,采用前后端分离架构,支持管理员、教师、学生三种角色。

NodeVue3MySQL
4.843
鲜花商城(HTML版)
HTML
免费NEW
进阶

鲜花商城(HTML版)

鲜花商城是一个面向移动端的鲜花电商前端演示项目,采用纯 HTML + CSS + JavaScript 实现,无需构建工具即可直接运行。项目模拟了完整的购物流程:浏览商品、查看详情、下单确认、订单管理以及用户登录注册,适合作为前端大作业或移动端页面练习。

HTML大作业
4.844