SpringBoot +Vue開發(fā)考試系統(tǒng)的教程
一、考試系統(tǒng)簡介
新鮮出爐的一款SpringBoot +Vue的考試系統(tǒng),支持多種題型:選擇題、多選題、判斷題、填空題、綜合題以及數(shù)學(xué)公式。支持在線考試,教師在線批改試卷。
二、項(xiàng)目架構(gòu)
后端技術(shù)棧
- SpringBoot: SpringBoot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等。
- Mybatis: 一個持久層的框架,與數(shù)據(jù)庫進(jìn)行交互,將數(shù)據(jù)持久化到關(guān)系型數(shù)據(jù)庫中
- Shiro: 一個功能強(qiáng)大且易于使用的Java安全框架,進(jìn)行身份驗(yàn)證,授權(quán),加密和會話管理,可用于保護(hù)任何應(yīng)用程序- 從命令行應(yīng)用程序,移動應(yīng)用程序到大型的Web應(yīng)用和企業(yè)應(yīng)用。
- mysql: 一個輕量級關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。
- redis: 一個完全開源免費(fèi)的,遵守BSD協(xié)議,是一個高性能的key-value數(shù)據(jù)庫。
前端技術(shù)
- Vue: 一套用于構(gòu)建用戶界面的漸進(jìn)式框架。 與其它大型框架不同的是,Vue 被設(shè)計(jì)為可以自底向上逐層應(yīng)用。
- Vuex: 一個專為Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。 它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化。
- Element-UI: 一套為開發(fā)者、設(shè)計(jì)師和產(chǎn)品經(jīng)理準(zhǔn)備的基于Vue 2.0 的桌面端組件庫。
- vue-router: Vue.js 官方的路由管理器。
- axios: 一個基于Promise 的HTTP 庫,可以用在瀏覽器和node.js 中。
項(xiàng)目說明
考試系統(tǒng)整體為前后端分離項(xiàng)目,作者又在這基礎(chǔ)上,將后端拆分成兩個管理員后端和學(xué)生考試后端,后端的代碼是在一起。前端也做了類似的拆分,所以其實(shí)是兩個后端項(xiàng)目,兩個前端項(xiàng)目。本篇先講一下學(xué)生考試部分的前后端環(huán)境搭建。功能包括:學(xué)員在線做課程試題、在線考試、錯題本功能記錄、考試記錄、個人中心。
后端項(xiàng)目地址
后端項(xiàng)目地址: https://gitee.com/zhuimengshaonian/wisdom-education
- 管理員后臺: education-admin-api
- 學(xué)生考試后臺: education-student-api
前端項(xiàng)目地址
- 管理員前端: https://gitee.com/zhuimengshaonian/wisdom-education-admin-front
- 學(xué)生考試前端: https://gitee.com/zhuimengshaonian/wisdom-education-front
三、實(shí)戰(zhàn)
3.1 后端服務(wù)
下載項(xiàng)目
git clone https://gitee.com/zhuimengshaonian/wisdom-education.git
初始化數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫education
,執(zhí)行數(shù)據(jù)庫腳本。這里數(shù)據(jù)庫腳本在項(xiàng)目的db
目錄下。
init-data.sql #初始化數(shù)據(jù)
init-region.sql #初始化system_region
init-table.sql #初始化表結(jié)構(gòu)
注意:system_log
表少一個字段request_url
,類型為varchar(100)
。
修改配置
閱讀項(xiàng)目配置文件可知,項(xiàng)目使用的prod
的配置文件,所以我們直接看application-prod.yml
文件即可。這里主要關(guān)注數(shù)據(jù)庫連接,再添加一下redis
的配置。
server: port: 8001 #服務(wù)器端口 servlet: context-path: / #spring jdbc配置 spring: #redis相關(guān)配置 redis: jedis: pool: max-active: 8 max-wait: 30 max-idle: 8 min-idle: 0 port: 6379 host: localhost password: 123456 #數(shù)據(jù)庫連接 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
運(yùn)行Application
運(yùn)行EducationStudentApiApplication
類,即可本地啟動后端服務(wù)。
3.2 前端服務(wù)
下載項(xiàng)目
git clone https://gitee.com/zhuimengshaonian/wisdom-education-front.git
修改配置
用開發(fā)工具打開前端項(xiàng)目,這里我用的VSCode
,打開config/index.js
,這里主要修改一下proxyTable
的內(nèi)容:
proxyTable: { '/proxyApi': { target: 'http://localhost:8001', changeOrigin: true, pathRewrite: { '/proxyApi': 'http://localhost:8001' } } }
運(yùn)行項(xiàng)目
在命令行窗口,或者VSCode
的終端
執(zhí)行下面命令就可以本地運(yùn)行項(xiàng)目。
npm install #安裝依賴 npm run dev #開發(fā)環(huán)境啟動,默認(rèn)http://localhost:8080/
要在服務(wù)端部署項(xiàng)目,執(zhí)行下面打包命令,然后使用web
容器部署即可。
npm run build #項(xiàng)目打包 npm run build --report #項(xiàng)目打包并輸出分析報告
3.3 運(yùn)行效果
瀏覽器訪問http://localhost:8080
,默認(rèn)用戶密碼: student 123456,就可以直接登錄了。
運(yùn)行效果:
四、最后
項(xiàng)目具備了考試系統(tǒng)基本功能,本篇講了學(xué)生考試部分的前后端的搭建。另外比較重要的一部分就是管理員前端項(xiàng)目,本人不是專業(yè)搞前端的,還沒搞定管理員前端項(xiàng)目,嘗試過程中也遇到了很多問題,F(xiàn)AQ做個記錄。遇到問題其實(shí)也不可怕,合理利用搜索引擎 + 開啟大腦思考功能,辦法總比困難多嘛!我相信問題一定可以解決的。下篇講考試系統(tǒng)的管理員部分的前后端搭建。
FAQ
1.npm install 報錯:Error: Can't find Python executable "python", you can set the PYTHON env variable。
解決版方法:執(zhí)行 npm install -g windows-build-tools命令
2.window環(huán)境下npm install node-sass報錯的解決方法。
解決方法:http://www.dbjr.com.cn/article/129081.htm
3.Windows下安裝前端項(xiàng)目,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
總結(jié)
到此這篇關(guān)于SpringBoot +Vue開發(fā)考試系統(tǒng)的文章就介紹到這了,更多相關(guān)springboot vue 考試系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用maven開發(fā)springboot項(xiàng)目時pom.xml常用配置(推薦)
- SpringBoot+Vue開發(fā)之Login校驗(yàn)規(guī)則、實(shí)現(xiàn)登錄和重置事件
- springboot對接支付寶支付接口(詳細(xì)開發(fā)步驟總結(jié))
- 淺談SpringBoot項(xiàng)目如何讓前端開發(fā)提高效率(小技巧)
- SpringBoot開發(fā)案例之配置Druid數(shù)據(jù)庫連接池的示例
- 使用SpringBoot開發(fā)Restful服務(wù)實(shí)現(xiàn)增刪改查功能
- SpringBoot項(xiàng)目開發(fā)常用技術(shù)整合
相關(guān)文章
詳解AngularJs與SpringMVC簡單結(jié)合使用
本篇文章主要介紹了AngularJs與SpringMVC簡單結(jié)合使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06解決在Idea 2020.2下使用 Lombok的注解不生效的問題(插件安裝了,依賴也寫了,自動注解也設(shè)置了)
這篇文章主要介紹了在Idea 2020.2下使用 Lombok的注解不生效的問題(插件安裝了,依賴也寫了,自動注解也設(shè)置了),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08SpringBoot2開啟Actuator端點(diǎn)監(jiān)控的方法
這篇文章主要介紹了SpringBoot2開啟Actuator端點(diǎn)監(jiān)控的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06