SpringBoot+Vue的学校心理测试系统

本文主要是介绍SpringBoot+Vue的学校心理测试系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、项目背景介绍:

研究背景介绍:

随着社会的发展和人们对心理健康重视程度的提升,学校心理教育和辅导工作日益受到关注。学校作为培养学生全面发展的重要场所,心理健康教育在学校中扮演着至关重要的角色。而学校心理测试系统作为辅助心理教育和辅导的重要工具,具有极大的应用潜力。

传统的学校心理测试工作往往依赖于纸质问卷和手工处理,存在许多问题,如成本高、效率低、难以统计分析等。为了解决这些问题,开发一套基于SpringBoot+Vue的学校心理测试系统具有非常重要的意义。

该系统的开发旨在提供一个实用、高效、智能化的平台,能够方便学校管理者、教师和学生进行心理测试与咨询工作。管理端模块提供了公告管理、学生管理、老师管理和管理员管理等功能,使得学校管理者能够快速发布通知、管理学生和教职工信息,保证学校的正常运转。教师端模块则提供了学生咨询管理、个人信息管理、试卷管理、建档信息和试题信息等功能,使得教师能够灵活安排心理咨询工作和考试管理。

同时,学生端模块包括登录注册、首页咨询、心理测试、咨询教师和个人中心等功能,使得学生能够方便地获取心理咨询服务、进行心理测试和管理个人信息。通过该系统,学生能够更好地了解自己的心理状态,寻求适当的心理咨询和辅导,从而增强心理健康。

二、项目技术简介:
  1. JAVA:Java是一门 面向对象编程语言 ,不仅 吸收了C++语言的各种优点 ,还摒弃了C++里难以理解的 多继承、指针 等概念,因此Java语言具有 功能强大和简单易用 两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。 Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
  4. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来 简化 新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  5. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  6. Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。

三、系统功能模块介绍:

四、数据库设计:

1:‘管理员表’(manage)

字段名

类型

默认值

列注释

id

bigint

NULL

管理员编号

user_name

varchar

NULL

用户名

pass_word

varchar

NULL

密码

photo_img

varchar

NULL

图片

name

varchar

NULL

名称

2:‘留言表’(messages)

字段名

类型

默认值

列注释

id

bigint

NULL

主键ID

tea_id

bigint

NULL

老师ID

stu_id

bigint

NULL

学生ID

create_time

datetime

NULL

创建时间

answer

varchar

NULL

回复

content

varchar

NULL

留言内容

3:‘公告信息表’(notice)

字段名

类型

默认值

列注释

id

bigint

NULL

公告编号

banner_img

varchar

NULL

公告图片

content

text

NULL

公告内容

info

varchar

NULL

公告简介

create_time

datetime

NULL

创建时间

title

varchar

NULL

公告标题

4:‘题目表’(questions)

字段名

类型

默认值

列注释

id

bigint

NULL

题目编号

title

text

NULL

题目标题

option_a

varchar

NULL

选项A

option_b

varchar

NULL

选项B

option_c

varchar

NULL

选项C

option_d

varchar

NULL

选项D

grade_a

varchar

NULL

答案A分数

grade_b

varchar

NULL

答案B分数

teacher_id

bigint

NULL

老师编号

create_time

datetime

NULL

创建时间

grade_c

varchar

NULL

答案C分数

grade_d

varchar

NULL

答案D分数

5:‘建档信息’(records)

字段名

类型

默认值

列注释

id

bigint

NULL

档案编号

stu_id

bigint

NULL

学生编号

test_id

bigint

NULL

试卷编号

tea_id

bigint

NULL

教师编号

grade

varchar

NULL

考试分数

create_time

datetime

NULL

创建时间

info

varchar

NULL

对应结果

6:‘学生表’(student)

字段名

类型

默认值

列注释

id

bigint

NULL

学生编号

stu_name

varchar

NULL

学生姓名

stu_age

int

NULL

年龄

stu_sex

int

NULL

性别[0:男,1:女]

stu_phone

varchar

NULL

联系方式

stu_address

varchar

NULL

家庭住址

stu_class_num

varchar

NULL

所属班级

stu_img

varchar

NULL

照片

password

varchar

NULL

登录密码

7:‘老师’(teachers)

字段名

类型

默认值

列注释

id

bigint

NULL

教师编号

username

varchar

NULL

账号

password

varchar

NULL

密码

tea_name

varchar

NULL

姓名

tea_age

int

NULL

年龄

tea_sex

int

NULL

性别

tea_info

text

NULL

简介

tea_tel

varchar

NULL

联系方式

tea_img

varchar

NULL

头像

create_time

datetime

NULL

创建时间

mail

varchar

NULL

邮箱

8:‘试卷管理’(test_paper)

字段名

类型

默认值

列注释

id

bigint

NULL

试卷编号

tea_id

bigint

NULL

所属老师

title

varchar

NULL

试卷标题

img

varchar

NULL

封面图片

create_time

datetime

NULL

创建时间

total_grade

varchar

NULL

总分

info

varchar

NULL

试卷简介

9:‘试卷题目’(test_questions)

字段名

类型

默认值

列注释

id

bigint

NULL

主键ID

test_id

bigint

NULL

所属试卷

question_id

bigint

NULL

题目编号

tea_id

bigint

NULL

老师编号

10:‘试卷规则管理’(test_rules)

字段名

类型

默认值

列注释

id

bigint

NULL

规则编号

test_id

bigint

NULL

试卷编号

min_grade

int

NULL

最低分数

max_grade

int

NULL

最高分数

info

varchar

NULL

对应结果

create_time

datetime

NULL

创建时间

tea_id

bigint

NULL

老师编号

五、功能模块:
  1. 公告管理模块:提供对学校内部公告的增加、修改、删除和查询功能,管理员可以按照时间,内容等方式对公告进行排序和查找,方便快速发布和管理校内通知。

  1. 学生管理模块:提供对学生信息的增加、修改、删除和查询功能

  1. 老师管理模块:提供对教职工信息的增加、修改、删除和查询功能

  1. 管理员管理模块:提供对管理员账号的增加、修改、删除和查询功能

  1. 学生咨询管理模块:提供给教师对学生心理咨询的管理与处理,以及学生咨询历史记录查询、沟通记录备份。

  1. 个人信息管理模块:提供给教师对个人信息的查看和管理,可以修改个人基本信息,包括姓名、照片、联系方式等。

  1. 提供试卷列表管理、试卷组装、试卷规则的设置等功能,教师可以根据不同的需求灵活地组合试卷,并设置具体的考试规则,满足不同场景下的学校考试需求。:试卷管理模块

  1. 建档信息模块:提供对学生心理建档的管理,包括学生数据的录入、历史记录查询,教师可以通过该模块辅助开展心理辅导工作。

  1. 试题信息模块:提供对试题信息的管理,包括试题列表查看、试题组卷、试题答案解析等功能,教师可以根据学科专业和知识点等标签分类,方便快速制定试卷。

  1. 登录注册模块:提供学生账号的注册与登录功能,使得学生可以使用自己的账号密码登录系统,更好地享受系统提供的服务。

  1. 首页咨询模块:提供心理咨询服务,包括心理资讯、在线问答、心理测评等,为学生提供相关心理知识和咨询服务。

  1. 心理测试模块:提供常见心理测试工具和教育心理学测验,为学生提供对自身心理状态的了解和思考。

  1. 心理测评试卷详情:在心理测评界面选择对应的试卷来进行填写系统会根据所填的答案进行评分

  1. 个人中心:提供学生个人信息的查看和管理,包括个人资料、心理测试记录、咨询记录、反馈建议等,方便学生根据自身需求使用系统服务。

六、代码示例:
    /*** 生成验证码*/@GetMapping("/captchaImage")public AjaxResult getCode(HttpServletResponse response) throws IOException{AjaxResult ajax = AjaxResult.success();boolean captchaEnabled = configService.selectCaptchaEnabled();ajax.put("captchaEnabled", captchaEnabled);if (!captchaEnabled){return ajax;}// 保存验证码信息String uuid = IdUtils.simpleUUID();String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;String capStr = null, code = null;BufferedImage image = null;// 生成验证码String captchaType = RuoYiConfig.getCaptchaType();if ("math".equals(captchaType)){String capText = captchaProducerMath.createText();capStr = capText.substring(0, capText.lastIndexOf("@"));code = capText.substring(capText.lastIndexOf("@") + 1);image = captchaProducerMath.createImage(capStr);}else if ("char".equals(captchaType)){capStr = code = captchaProducer.createText();image = captchaProducer.createImage(capStr);}redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);// 转换流信息写出FastByteArrayOutputStream os = new FastByteArrayOutputStream();try{ImageIO.write(image, "jpg", os);}catch (IOException e){return AjaxResult.error(e.getMessage());}ajax.put("uuid", uuid);ajax.put("img", Base64.encode(os.toByteArray()));return ajax;}/*** 通用的本地文件上传** @param multipartFile 文件对象* @return 文件访问链接URL*/@PostMapping("/file")public SimpleResponse uploadImg(@RequestParam("file") MultipartFile file) {// 文件后缀String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);File savePathFile = new File(newTomcatFolder);if (!savePathFile.exists()) {// 若不存在该目录,则创建目录savePathFile.mkdir();}// 通过UUID生成唯一文件名String filename = UUID.randomUUID() + "." + suffix;try {// 将文件保存指定目录file.transferTo(new File(newTomcatFolder + filename));} catch (Exception e) {e.printStackTrace();return SimpleResponse.error("保存文件异常");}// 返回访问链接return SimpleResponse.success(newTomcatHost + filename);}/*** 用户登录*/@PostMapping("/login")public ReturnMsg manageLogin(@RequestBody Map<String, String> param) {if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {return ReturnMsg.error("用户名或密码错误!");}ManageDTO manageDTO = new ManageDTO();manageDTO.setUserName(param.get("username"));manageDTO.setPassWord(param.get("password"));QueryWrapper<ManageDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);manageDTOQueryWrapper.last("limit 1");ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");Map<String, Object> map = new HashMap<>();map.put("avatar", StrUtil.isNotBlank(adminDTOS.getPhotoImg()) ? adminDTOS.getPhotoImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");map.put("introduction", adminDTOS.getName() + ",你好!");map.put("name", adminDTOS.getName());map.put("roles", Arrays.asList("admin"));map.put("type", adminDTOS.getStatus());Map<String, String> returnMap = new HashMap<>();String uuid = UUID.randomUUID().toString();returnMap.put("token", uuid);userInfoMap.put(uuid, JSON.toJSONString(map));return ReturnMsg.ok(returnMap);}

七、项目总结:

通过对SpringBoot+Vue的学校心理测试系统的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个SpringBoot+Vue的学校心理测试系统的程序时,

我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,

程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,

借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的SpringBoot+Vue的学校心理测试系统得以正常运行。

SpringBoot+Vue的学校心理测试系统在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:

(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。

(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的SpringBoot+Vue的学校心理测试系统中的相关网站更贴合。

(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,

同时对服务器上资源占用的比例进行降低。

SpringBoot+Vue的学校心理测试系统的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。

SpringBoot+Vue的学校心理测试系统的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。

八、源码获取:

 此源码非开源,若需要此源码可扫码添加微信进行咨询!

这篇关于SpringBoot+Vue的学校心理测试系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884635

相关文章

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

Java文件与Base64之间的转化方式

《Java文件与Base64之间的转化方式》这篇文章介绍了如何使用Java将文件(如图片、视频)转换为Base64编码,以及如何将Base64编码转换回文件,通过提供具体的工具类实现,作者希望帮助读者... 目录Java文件与Base64之间的转化1、文件转Base64工具类2、Base64转文件工具类3、

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

如何使用Spring boot的@Transactional进行事务管理

《如何使用Springboot的@Transactional进行事务管理》这篇文章介绍了SpringBoot中使用@Transactional注解进行声明式事务管理的详细信息,包括基本用法、核心配置... 目录一、前置条件二、基本用法1. 在方法上添加注解2. 在类上添加注解三、核心配置参数1. 传播行为(

css渐变色背景|<gradient示例详解

《css渐变色背景|<gradient示例详解》CSS渐变是一种从一种颜色平滑过渡到另一种颜色的效果,可以作为元素的背景,它包括线性渐变、径向渐变和锥形渐变,本文介绍css渐变色背景|<gradien... 使用渐变色作为背景可以直接将渐China编程变色用作元素的背景,可以看做是一种特殊的背景图片。(是作为背

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper