新鮮出爐的一款SpringBoot +Vue的考試系統

2021-02-20 秦子帥
一、考試系統簡介

新鮮出爐的一款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

前端項目地址

管理員前端: https://gitee.com/zhuimengshaonian/wisdom-education-admin-front學生考試前端: https://gitee.com/zhuimengshaonian/wisdom-education-front三、實戰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做個記錄。遇到問題其實也不可怕,合理利用搜尋引擎 + 開啟大腦思考功能,辦法總比困難多嘛!我相信問題一定可以解決的。下篇講考試系統的管理員部分的前後端搭建。

FAQ1.npm install 報錯:Error: Can't find Python executable "python", you can set the PYTHON env variable。
解決版方法:執行 npm install -g windows-build-tools命令2.npm install報錯:MSBUILD : error MSB4132: 無法識別工具版本「2.0」。可用的工具版本為 "4.0"。
解決方法:https://blog.csdn.net/sunxiaoju/article/details/1025675483.Windows下安裝前端項目,node-sass報錯。
解決方法:npm install node-sass@4.12.0 --save4.Vue packages version mismatch:vue@2.5.16, vue-template-compiler@2.5.2。
解決辦法:保持版本一致:npm install vue@2.5.2 --save5.How to fix ReferenceError: primordials is not defined in node。
解決方法:npm -g install gulp-cli

相關焦點

  • Springboot Vue Login(從零開始實現Springboot+Vue登錄)
    作者:Eli Shawhttps://blog.csdn.net/xiaojinlai123/article/details/90694372一、簡述最近學習使用 Vue 實現前端後端分離,在 Github 上有一個很好的開源項目:mall,正所謂百看不如一練,自己動手實現了一個 Springboot+Vue 的登錄操作,在此記錄一下踩過的坑。
  • 基於SpringBoot和Vue的企業級中後臺項目
    >2020年最新的常問企業面試題大全以及答案免費領取大家想看什麼類型的文章呢留言告訴亦夏哦,亦夏會在一周內進行推送~簡介SpringBoot和Vue,前後端分離,我們開源一套漂亮的代碼和一套整潔的代碼規範
  • BootDo 發布 2.0.0 版本,全面升級到 SpringBoot 2.x
    升級說明:眾多小夥伴希望本碼把bootdo使用的springboot升級到2.x版本,經過幾天的升級和測試可以發布新版本了。
  • Java在線考試系統
    項目介紹學之思在線考試系統是一款 java + vue 的前後端分離的考試系統。
  • 【項目】Java在線考試系統
    註:由於公眾號文章推送規則的改變,所以為了大家能夠準時收到我們的文章推送,請記得將公眾號: JAVA編碼進化論 設為星標~這樣就不會錯過每一篇精彩的推送啦~項目介紹學之思在線考試系統是一款java + vue 的前後端分離的考試系統。
  • SpringBoot+Vue完整的外賣系統,手機端和後臺管理,可以玩一下!
    一個完整的外賣系統,包括手機端,後臺管理,api基於spring boot和vue的前後端分離的外賣系統包含完整的手機端,後臺管理功能本項目主要供交流學習,不建議商用。技術選型核心框架:Spring Boot資料庫層:Spring data jpa/Spring data mongodb資料庫連接池:Druid緩存:Ehcache前端:Vue.js資料庫:mysql5.5以上,Mongodb4.0(不要使用最新版4.2)模塊flash-waimai-mobile 手機端站點flash-waimai-manage後臺管理系統flash-waimai-api
  • springboot+jpa+thymeleaf實現信息增刪改查功能
    前端:thymeleaf後端:springboot+jpa資料庫:mysql5.6jdk:1.8及以上; $.fn.datepicker.dates['cn'] = { days : [ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ], daysShort : [ "周日", "周一", "周二", "周三", "周四", "周五", "周六" ], daysMin : [ "日", "
  • Springboot @EnableWebMvc 註解
    }並且如果容器中存在  WebMvcConfigurationSupport 這個類,那麼 springboot 對於 springmvc 的自動配置將會失效可以看到這個類中都是一些空方法,只是保留了最基本的 MVC 的功能,並不具備其它的擴展功能如下:springboot 對於 mvc 模塊的配置就在 WebMvcAutoConfiguration
  • 「Vue.js開發連載一」Vue.js簡介
    一、簡介Vue.js(讀音 /vju/,類似於view)是一個構建數據驅動的web界面的漸進式框架。Vue。js的目標是通過儘可能簡單的API實現響應的數據綁定和組合的視圖組件。它不僅易於上手,還便於與第三方庫或既有項目整合。
  • 「精品源碼分享」springboot開發的學校教務管理系統
    使用技術該系統使用了springboot+mybatis+layui+shiro+jquery等技術開發而成有3個基本角色,為管理員,老師和學生!管理員具有這些模塊的所有功能!老師具有課程管理,成績管理,學生管理等功能!學生有選課管理等功能!基本實現了學校學生選課的一個後臺管理系統!
  • 揭密vue.js的神秘之處,小程序跟vue有什麼關係
    微容用的微信小程序平臺採用開發思路是前後端分離,前端採用vue.js+h5+jq開發,後端採用MVE的思路,用php開發,用vue.js構建來微信小程序可視化前端之後,微容給大家介紹下vue的來源和特徵。
  • pacebox-springboot 1.0.2 發布,新增 opentracing 埋點
    pacebox-springboot 融合封裝已發布,旨在提供快速開發腳手架、打造更好的開源生態環境。
  • Java 在線考試系統!
    今天就給大家分享一個 Gitee 上熱門的開源項目:Java在線考試系統。Java在線考試系統 的技術棧為 Java + Vue,即前後端分離,整個代碼結構清晰,適合新手閱讀學習;部署簡單快捷,短時間內就能上手操作。
  • springboot整合redis簡單案例
    前言:這裡簡單介紹下springboot整合redis(window版),以及簡單的測試demo。根據當前自己電腦的系統下載對應的redis版本,我這裡是以window版本作為測試的 demo。下載完直接解壓到自定義的目錄,如下:雙擊運行redis-server.exe,如下說明redis啟動成功:在創建的springboot項目的配置文件中,配置如下:創建配置類:
  • 計算機畢業設計之SpringBoot電影推薦系統 視頻推薦系統
    本系統最主要的功能就是電影的推薦,推薦算法採用市面上最流行也是最廣泛的協同過濾的推薦,當用戶沒有登錄的時候點擊推薦是提示用戶登錄,因為不是道是哪個用戶登錄的系統就無法知道給該用戶推薦什麼電影項目,協同過濾推薦算法是基於用戶,電影與偏好值進行的電影的推薦。
  • 甲骨文公司選擇 Pearson VUE 作為其認證考試服務提供商
    明尼蘇達州布魯明頓2009年9月10日電 /美通社亞洲/ -- 專注於提供高風險測試安全服務的全球領導者 Pearson VUE 今天宣布,該公司已經被甲骨文公司 (Oracle) 選中,成為其認證考試服務的提供商。
  • 2019年託福考試日期新鮮出爐啦!趕緊看看考試安排吧!
    想要在2019年報考託福的同學,ETS已經將2019年託福考試日期排好啦,一共48場考試。如果你想要在2019年拿下託福的,趕快看看考試日期,開始搶考位吧!想要知道2019年成都託福考場又有哪些的同學接著往下看。
  • 啥,聽說你用了springboot,但是開發的接口還在裸奔?
    id=5fe86eb74c636312f4b709551、應用場景簡介啥,聽說你用了springboot,但是開發的接口還在裸奔?快來試試這個PopularMVC吧,它也許是你想要找的神器!神器亮相springboot叫一鍵啟動,popularmvc為你的springboot項目插上翅膀,力求一鍵起飛!
  • vue高級進階系列——用typescript玩轉vue和vuex
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫用過vue的朋友大概對vuex也不陌生,vuex的官方解釋是專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式存儲管理應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。
  • 「乾貨」VUE腳手架使用教程
    前言:在上章節的使用教程中,我說過了哈,組件使用的問題了吧,好的,那麼我們如何解決這一問題只能採用1、WebStorm軟體安裝WebStorm是一款IDE工具和HBuilder類似,但是他可以支持使用DOS命令界面,並且可以支持更多的文件格式的提示哈