SpringBoot +Vue开发考试系统的教程

 更新时间:2020年05月26日 09:56:58   作者:不安分的猿人  
这篇文章主要介绍了SpringBoot +Vue开发考试系统,支持多种题型:选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试,教师在线批改试卷。本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

一、考试系统简介

新鲜出炉的一款SpringBoot +Vue的考试系统,支持多种题型:选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试,教师在线批改试卷。

二、项目架构

后端技术栈

  • SpringBoot: SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。
  • Mybatis: 一个持久层的框架,与数据库进行交互,将数据持久化到关系型数据库中
  • Shiro: 一个功能强大且易于使用的Java安全框架,进行身份验证,授权,加密和会话管理,可用于保护任何应用程序- 从命令行应用程序,移动应用程序到大型的Web应用和企业应用。
  • mysql: 一个轻量级关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
  • redis: 一个完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

前端技术

  • Vue: 一套用于构建用户界面的渐进式框架。 与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。
  • Vuex: 一个专为Vue.js 应用程序开发的状态管理模式。 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
  • Element-UI: 一套为开发者、设计师和产品经理准备的基于Vue 2.0 的桌面端组件库。
  • vue-router: Vue.js 官方的路由管理器。
  • axios: 一个基于Promise 的HTTP 库,可以用在浏览器和node.js 中。

项目说明

考试系统整体为前后端分离项目,作者又在这基础上,将后端拆分成两个管理员后端和学生考试后端,后端的代码是在一起。前端也做了类似的拆分,所以其实是两个后端项目,两个前端项目。本篇先讲一下学生考试部分的前后端环境搭建。功能包括:学员在线做课程试题、在线考试、错题本功能记录、考试记录、个人中心。

后端项目地址

后端项目地址: https://gitee.com/zhuimengshaonian/wisdom-education

  • 管理员后台: education-admin-api
  • 学生考试后台: education-student-api

前端项目地址

三、实战

3.1 后端服务

下载项目

git clone https://gitee.com/zhuimengshaonian/wisdom-education.git

初始化数据库
创建数据库education,执行数据库脚本。这里数据库脚本在项目的db目录下。

init-data.sql  #初始化数据
init-region.sql #初始化system_region
init-table.sql  #初始化表结构

注意:system_log表少一个字段request_url,类型为varchar(100)
修改配置
阅读项目配置文件可知,项目使用的prod的配置文件,所以我们直接看application-prod.yml文件即可。这里主要关注数据库连接,再添加一下redis的配置。

server:
 port: 8001 #服务器端口
 servlet:
 context-path: /
#spring jdbc配置
spring:
#redis相关配置
 redis:
 jedis:
 pool:
 max-active: 8
 max-wait: 30
 max-idle: 8
 min-idle: 0
 port: 6379
 host: localhost
 password: 123456
#数据库连接
 datasource:
 url: jdbc:mysql://localhost:3306/education?serverTimezone=GMT%2B8&useSSL=true&useUnicode=true&characterEncoding=utf8
 username: root
 password: 123456
 driver-class-name: com.mysql.cj.jdbc.Driver

运行Application
运行EducationStudentApiApplication类,即可本地启动后端服务。

3.2 前端服务

下载项目

git clone https://gitee.com/zhuimengshaonian/wisdom-education-front.git

修改配置

用开发工具打开前端项目,这里我用的VSCode,打开config/index.js,这里主要修改一下proxyTable的内容:

proxyTable: {
 '/proxyApi': {
 target: 'http://localhost:8001',
 changeOrigin: true,
 pathRewrite: {
 '/proxyApi': 'http://localhost:8001'
 }
 }
 }
 

运行项目
在命令行窗口,或者VSCode终端执行下面命令就可以本地运行项目。

npm install #安装依赖
npm run dev #开发环境启动,默认http://localhost:8080/

要在服务端部署项目,执行下面打包命令,然后使用web容器部署即可。

npm run build #项目打包
npm run build --report #项目打包并输出分析报告

3.3 运行效果

浏览器访问http://localhost:8080,默认用户密码: student 123456,就可以直接登录了。

运行效果:

四、最后

项目具备了考试系统基本功能,本篇讲了学生考试部分的前后端的搭建。另外比较重要的一部分就是管理员前端项目,本人不是专业搞前端的,还没搞定管理员前端项目,尝试过程中也遇到了很多问题,FAQ做个记录。遇到问题其实也不可怕,合理利用搜索引擎 + 开启大脑思考功能,办法总比困难多嘛!我相信问题一定可以解决的。下篇讲考试系统的管理员部分的前后端搭建。

FAQ

1.npm install 报错:Error: Can't find Python executable "python", you can set the PYTHON env variable。
解决版方法:执行 npm install -g windows-build-tools命令
2.window环境下npm install node-sass报错的解决方法。
解决方法:https://www.jb51.net/article/129081.htm
3.Windows下安装前端项目,node-sass报错。
解决方法:npm install node-sass@4.12.0 --save
4.Vue packages version mismatch:vue@2.5.16, vue-template-compiler@2.5.2
解决办法:保持版本一致:npm install vue@2.5.2 --save
5.How to fix ReferenceError: primordials is not defined in node。
解决方法:npm -g install gulp-cli

总结

到此这篇关于SpringBoot +Vue开发考试系统的文章就介绍到这了,更多相关springboot vue 考试系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java数据结构之顺序表和链表精解

    Java数据结构之顺序表和链表精解

    我在学习完顺序表后一直对顺序表和链表的概念存在一些疑问,这里给出一些分析和看法,通读本篇对大家的学习或工作具有一定的价值,需要的朋友可以参考下
    2021-09-09
  • 关于maven项目引入maven库没有的jar处理办法

    关于maven项目引入maven库没有的jar处理办法

    这篇文章主要介绍了关于maven项目引入maven库没有的jar处理办法,在平时开发中,有些jar包是不存在maven中央库中的,那么此时该如何解决才能方便后续处理呢,需要的朋友可以参考下本文
    2023-03-03
  • 初探Java内部类的使用

    初探Java内部类的使用

    Java内部类一般可以分为以下三种:成员内部类、静态内部类和匿名内部类。这篇文章主要带大家初探一下Java内部类的使用,感兴趣的可以了解一下
    2022-09-09
  • spring boot集成pagehelper(两种方式)

    spring boot集成pagehelper(两种方式)

    这篇文章主要介绍了spring boot集成pagehelper(两种方式),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Mybatis-Plus之ID自动增长的设置实现

    Mybatis-Plus之ID自动增长的设置实现

    本文主要介绍了Mybatis-Plus之ID自动增长的设置实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Spring自动装配bean的方式总结

    Spring自动装配bean的方式总结

    这篇主要介绍了Spring自动装配Bean的方式总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2024-01-01
  • javaWeb实现学生信息管理系统

    javaWeb实现学生信息管理系统

    这篇文章主要为大家详细介绍了javaWeb实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Spring启动后获取所有拥有特定注解的Bean实例代码

    Spring启动后获取所有拥有特定注解的Bean实例代码

    这篇文章主要介绍了Spring启动后获取所有拥有特定注解的Bean实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • java8版本base64加密解密的实例

    java8版本base64加密解密的实例

    下面小编就为大家分享一篇java8版本base64加密解密的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Spring AOP方法内部调用不生效的解决方案

    Spring AOP方法内部调用不生效的解决方案

    最近有个需求,统计某个方法的调用次数,开始使用 Spring AOP 实现,后来发现当方法被内部调用时,切面逻辑将不会生效,所以本文就给大家介绍了Spring AOP方法内部调用不生效的解决方案,需要的朋友可以参考下
    2025-01-01

最新评论