鄧斯妮 陳家敏 蔡維晟 葉開平
摘? 要:針對當前高校每學(xué)期的綜測評分工作工序繁雜、手工操作低效、反復(fù)核對耗時長等痛點,設(shè)計并實現(xiàn)了一個大學(xué)生綜測N服務(wù)管理信息系統(tǒng)。該系統(tǒng)的設(shè)計主要采用當前流行的Java輕量級開發(fā)框架SpringBoot開發(fā)技術(shù),利用MyBatisPlus操作和管理MySQL數(shù)據(jù)庫,采用Layui框架設(shè)計系統(tǒng)界面。該系統(tǒng)采用大量人工智能技術(shù)和算法來提高綜測計算效率,主要有基于PaddlePaddle的圖像識別技術(shù),基于協(xié)同過濾算法的智能推薦算法,以及人臉識別技術(shù)。
關(guān)鍵詞:綜測評分;SpringBoot;MyBatisPlus;Layui框架
中圖分類號:TP391.3 ? ?文獻標識碼:A? 文章編號:2096-4706(2021)05-0013-06
Design and Implementation of Comprehensive Test N Service Management System Based on SpringBoot Technology
DENG Sini,CHEN Jiamin,CAI Weisheng,YE Kaiping
(Software Engineering Institute of Guangzhou,Guangzhou? 510990,China)
Abstract:Aiming at the pain points of the current comprehensive evaluation of college in each semester,such as complicated working procedures,inefficient manual operation and long time-consuming check,a N service management information system for college studentscomprehensive evaluation is designed and implemented. The design of the system mainly adopts the popular Java lightweight development framework SpringBoot development technology,uses MyBatisPlus to operate and manage MySQL database,and uses Layui framework to design the system interface. The system uses a large number of artificial intelligence technology and algorithms to improve the efficiency of comprehensive evaluation calculation,including image recognition technology based on PaddlePaddle,intelligent recommendation algorithm based on collaborative filtering algorithm,and face recognition technology.
Keywords:comprehensive evaluation;SpringBoot;MyBatisPlus;Layui framework
0? 引? 言
綜測考核是高校輔導(dǎo)員的一項重要工作,也是用以評估大學(xué)生綜合素質(zhì)的依據(jù)。開發(fā)出一個綜測評估管理系統(tǒng),是當今高校實現(xiàn)高效管理與培育大學(xué)生綜合素質(zhì)并對其進行能力評估的重要手段。因此,本文將從技術(shù)角度分析該系統(tǒng)開發(fā)的可行性和適用性。
利用傳統(tǒng)的JavaEE應(yīng)用體系進行綜測評估管理系統(tǒng)的開發(fā)存在諸多不便。首先,需要進行復(fù)雜繁瑣的配置搭建;其次,存在開發(fā)效率低、難度較高的三方集成;最后,部署流程極其復(fù)雜。對于先進的輕量級資源整合框架Spring,雖然其相較于傳統(tǒng)開發(fā)技術(shù)實現(xiàn)了許多資源整合配置,但是開發(fā)人員仍舊需要手動添加依賴,進行XML配置。然而,SpringBoot省卻了設(shè)置Spring應(yīng)用程序所需的復(fù)雜例行配置。其最大的作用就是讓配置文件、實際應(yīng)用開發(fā),發(fā)布和測試項目變得相對容易一些,此外,其還集成了大量外圍框架[1],這足以體現(xiàn)SpringBoot的強大之處[2-4]。
隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,系統(tǒng)架構(gòu)模式發(fā)生了巨大變化,其已經(jīng)由單體配置[5]、分布式架構(gòu)發(fā)展到當今比較流行的微服務(wù)架構(gòu)。由于架構(gòu)體系的變更,大多數(shù)公司更加注重于高效、便捷的技術(shù),于是,基于快速構(gòu)建、開箱即用的SpringBoot技術(shù)應(yīng)運而生[6,7]。
1? 系統(tǒng)設(shè)計
1.1? 技術(shù)架構(gòu)設(shè)計
本系統(tǒng)采用的是B/S架構(gòu)模式,設(shè)計為前后端分離的方式。技術(shù)架構(gòu)共分為六層,系統(tǒng)的技術(shù)架構(gòu)如圖1所示,接下來著重說明這六層的具體內(nèi)容[8]:
(1)基礎(chǔ)設(shè)施層。主要包括服務(wù)器、以太網(wǎng)、通信鏈路等設(shè)備,為系統(tǒng)的搭建提供基礎(chǔ)設(shè)施保障。
(2)部署環(huán)境。主要采用的是Jdk1.8和Tomcat服務(wù)器,為系統(tǒng)的搭建提供項目環(huán)境。
(3)數(shù)據(jù)持久層。主要包括數(shù)據(jù)操作工具Mybatis Plus、分布式緩存中間件Redis。采用的是使用范圍較廣的MySQL數(shù)據(jù)庫。為系統(tǒng)提供穩(wěn)定的數(shù)據(jù)庫搭建。
(4)業(yè)務(wù)層。主要涉及的是華為云ORS、SpringBoot以及應(yīng)用管理系統(tǒng)模塊,包括綜測及推優(yōu)管理、活動賽事管理、數(shù)據(jù)分析管理、審核數(shù)據(jù)管理、登錄注冊管理、違規(guī)違紀管理、用戶管理、權(quán)限管理、個人中心管理及系統(tǒng)維護。
(5)網(wǎng)絡(luò)通信。主要采用的是負載均衡的Nginx服務(wù)器,用于方便前后臺交互,提供攔截機制。
(6)前端。主要包括前端三大基礎(chǔ)HTML5、CSS3及JavaScript,Layui前端框架。其中還包括Node.js、NPM(主要用來管理前端工程)、Webpack(主要用于將靜態(tài)資源js、css及l(fā)ess轉(zhuǎn)換成一個靜態(tài)文件,減少頁面請求)及Bable(保證業(yè)務(wù)可以在現(xiàn)有環(huán)境中執(zhí)行)。
權(quán)限設(shè)置和安全策略主要通過Spring Security提供。使用Spring Security提供多重身份認證模式,可以有效防止暴力攻擊,保證系統(tǒng)用戶安全。
1.2? 核心功能模塊設(shè)計
本系統(tǒng)的主要核心模塊包括綜測管理、推優(yōu)管理、數(shù)據(jù)可視化管理、活動賽事管理,人臉識別登錄管理,智能推薦賽事管理。以下為各模塊的內(nèi)容:
(1)綜測管理。本模塊主要是針對綜合素質(zhì)評估項進行管理。其中包括專業(yè)技能、創(chuàng)造能力、組織管理能力、文體能力、社會實踐的評估測算。能夠?qū)崿F(xiàn)綜合素質(zhì)各個測評項的錄入和計算。
(2)推優(yōu)管理。本模塊主要是針對綜合素質(zhì)及學(xué)業(yè)成績的排名進行推優(yōu)匯總。主要包括學(xué)生獎學(xué)金一二三等獎和優(yōu)秀學(xué)生干部的內(nèi)容。通過本系統(tǒng)學(xué)生可以直接查看自己是否獲得推優(yōu)。
(3)數(shù)據(jù)可視化管理。本模塊主要是針對綜合素質(zhì)各測評數(shù)據(jù)以及活動賽事進行可視化管理,此模塊能夠直觀清晰地分析個人綜合素質(zhì)情況,有助于學(xué)生、高校綜測管理人員及時做出相應(yīng)的調(diào)整和提升。
(4)活動賽事管理。本模塊主要針對的是與大學(xué)生綜合素質(zhì)有關(guān)的競賽活動展示、報名。高校學(xué)生可以通過此模塊進行賽事報名,提升自身的綜合素質(zhì)能力。
(5)人臉識別登錄管理。本模塊主要是利用百度的PaddlePaddle人臉識別技術(shù)實現(xiàn)人臉模型匹配登錄,免去了賬號登錄的繁瑣性,有利于提高用戶數(shù)據(jù)的安全性。
(6)智能推薦賽事管理。本模塊主要是在首頁提供適合用戶參與的賽事活動。根據(jù)用戶所參與活動的歷史記錄情況,為其推薦同類的相關(guān)賽事活動。
2? 系統(tǒng)實現(xiàn)
2.1? 智能推薦賽事管理
在智能推薦賽事管理中,協(xié)同過濾算法,是僅僅基于用戶行為進行數(shù)據(jù)設(shè)計的推薦算法。本系統(tǒng)采用“協(xié)同過濾算法”的研究者所提出的眾多方法中的“基于領(lǐng)域的算法”。基于領(lǐng)域的算法分為兩大類,一類是“基于用戶的協(xié)同過濾算法”,另一類是“基于物品的協(xié)同過濾算法”。學(xué)生在參加活動后數(shù)據(jù)庫會記錄其參加比賽的數(shù)據(jù),系統(tǒng)可利用該名學(xué)生的歷史參賽數(shù)據(jù)來預(yù)測其可能喜好的比賽,生成推薦列表為學(xué)生推薦最新賽事,如圖2所示。
建立用戶模型代碼為:
int[][] currentMatrix = new int[acpapers.size()+5][acpapers.size()+5]; //構(gòu)建當前矩陣與共現(xiàn)矩陣
int[][] coOccurrenceMatrix = new int[acpapers.size()+5][acpapers.size()+5];
int[] N = new int[acpapers.size()+5];
構(gòu)建當前矩陣核心代碼為:
for(int i = 0; i < likeLists.size(); i++){int pid1 = likeLists.get(i).getPid();int pid2 = likeLists.get(j).getPid();
for(int j = i+1; j < likeLists.size(); j++){++currentMatrix [pid1][pid2];++currentMatrix[pid2][pid1]; }
構(gòu)建共現(xiàn)矩陣核心代碼為:
for(int j = 0; j < acpapers.size(); j++){
int pid1 = acpapers.get(i).getPid(), pid2 = acpapers.get(j).getPid();
coOccurrenceMatrix[pid1][pid2] += currentMatrix[pid1][pid2];
coOccurrenceMatrix[pid1][pid2] += currentMatrix[pid1][pid2];}
計算余弦相似度,生成推薦結(jié)果代碼為:
for(acPaper acpaper: acpapers){
AnB = coOccurrenceMatrix[i][j]; //既喜歡賽事A又喜歡賽事B的人
similarAnB = (double)AnB/Math.sqrt(N[i]*N[j]); //計算余弦相似度
tmp = activityDao.findacacPaperById(acpaper.getPid());tmp.setW(similarAnB);
preList.add(tmp);}
2.2? 人臉識別登錄管理
在人臉識別登錄管理中,系統(tǒng)采用人臉識別登錄方式,利用人臉的匹配機制算法進行合法性校驗,通過相機捕獲的人臉與現(xiàn)有的人臉庫進行實時比對,得到學(xué)生人臉庫中的id值,然后得出人臉相似度并返回兩兩比對的人臉相似度得分,用戶判斷兩張臉是否為同一個人,最后通過驗證實現(xiàn)人臉登錄,如圖3所示。這種登錄方式極大地提高了信息數(shù)據(jù)的安全性和保密性,為綠色校園的開展提供了信息數(shù)據(jù)的便捷性和可靠性。
前端通過Ajax將相機所捕獲的人臉數(shù)據(jù)發(fā)送給后臺。后臺調(diào)用百度AI接口中人臉查找的方法,將相機捕獲的人臉數(shù)據(jù)轉(zhuǎn)換為JSON后向百度API發(fā)送POST請求,將請求返回的數(shù)據(jù)轉(zhuǎn)換為map后對數(shù)據(jù)進行字符串處理,最后可將所得到的人臉相似度得分和用戶id用于登錄驗證。
人臉識別獲取用戶數(shù)據(jù)關(guān)鍵代碼為:
public String searchface(@RequestBodyModel model) {
Map
String student_id = searchface.get("student_id").toString();
String score=searchface.get("score").toString().substring (0,2);
int similarityScore = Integer.parseInt(score);
if(similarityScore>90){
model.addAttribute("studentid",student_id);
HttpSession session = request.getSession();
session.setAttribute("studentinf",student_id);
String s = GsonUtils.toJson(searchface);
return s;}
}
2.3? 綜測管理
綜測管理中,學(xué)生輸入綜合素質(zhì)測評項數(shù)據(jù)并提交,班級綜測小組審核并提交綜合素質(zhì)測評項數(shù)據(jù),班級綜測小組審核全班綜測數(shù)據(jù)無誤后提交給輔導(dǎo)員,輔導(dǎo)員復(fù)審無誤后提交給系綜測負責老師,系綜測負責老師查看全系綜合測評全部數(shù)據(jù),并公布全系的綜合測評全部數(shù)據(jù)。
學(xué)生學(xué)業(yè)成績、行為表現(xiàn)成績等數(shù)據(jù)通常保存在學(xué)校服務(wù)器中,在此模塊中,通過遠程調(diào)用接口的方法,可以解決學(xué)生綜測信息中各測評項數(shù)據(jù)的自動獲取與計算問題,得出測評數(shù)據(jù)供老師審核。
以學(xué)生突出表現(xiàn)能力得分的獲取以及匯總為例,綜測管理模塊通過調(diào)用測評模塊的接口,先在xml文件中編寫SQL語句以從“突出四項測評表”中查詢出五項能力的對應(yīng)分值,根據(jù)各項能力在綜測總分中的占比,將各項分值按對應(yīng)比例進行累加得到突出表現(xiàn)能力總分,生成統(tǒng)計數(shù)據(jù)存儲到本地數(shù)據(jù)庫。在測評模塊中,統(tǒng)計突出表現(xiàn)總分,如圖4所示。
遠程調(diào)用功能關(guān)鍵代碼為:
@PostMapping("evaluationCount/{num}")
public R outstadingCount(@PathVariable String num) {
evaService.outstadingrCount(num);
return R.ok();}
遠程調(diào)用獲取到的數(shù)據(jù)添加到本地數(shù)據(jù)庫的代碼為:
public void registerCount(String day) {
R registerR = ucenterClient.countRegister (day);
Integer countRegister = (Integer)registerR.getData().get("countRegister");
Outstading eva = new Outstading();
eva.setoutstadingNum(countOutstading);
baseMapper.insert(eva);}
2.4? 推優(yōu)管理
推優(yōu)管理中,各班輔導(dǎo)員查看全班綜合素質(zhì)測評排名,并根據(jù)排名情況篩選出有資格獲得學(xué)生獎學(xué)金和優(yōu)秀學(xué)生干部的學(xué)生名單,對于已提交的推優(yōu)名單中存在違紀的學(xué)生則采取剔除做法,系級綜測負責人查看全系推優(yōu)匯總名單并提交給院級學(xué)生處老師進行復(fù)審,最后對審核通過的推優(yōu)名單進行公示,如圖5所示。
根據(jù)選擇的條件篩選出有資格獲得學(xué)生獎學(xué)金和優(yōu)秀學(xué)生干部的學(xué)生名單,并判斷所選擇的條件是否存在,關(guān)鍵代碼為:
Page
QueryWrapper
String studentStart = studentQuery.getStudentStart();
String studentEnd = studentQuery.getStudentEnd();
if(!StringUtils.isEmpty("activityStart")){wrapper.ge("activityStart",activityStart);}
if(!StringUtils.isEmpty("activityEnd")){wrapper.le("activity End",activityEnd);}
查詢出班級內(nèi)所有具有推優(yōu)資格的學(xué)生并進行匯總后,教師可根據(jù)名單對學(xué)生進行擬定獎項推優(yōu)。根據(jù)總記錄數(shù)中學(xué)生的綜合測評分數(shù)進行排序的代碼為:
wrapper.orderByDesc("sutdent_score");
StudentEnrollService.page(pageStudentCondition,wrapper);
long total = pageStudentCondition.getTotal();
List
return R.ok().data("total",total).data("rows",records);
2.5? 綜測可視化管理
綜測可視化管理中,各班輔導(dǎo)員及學(xué)生可以通過點擊“統(tǒng)計分析”按鈕,查看綜測各項圖表分析,頁面展示的是使用ECharts得到的圖表展示,ECharts是通過JavaScript實現(xiàn)的開源可視化庫,可以在PC和移動設(shè)備中流暢地運行,對本系統(tǒng)中學(xué)生各項數(shù)據(jù)統(tǒng)計具有重要作用。綜測可視化管理界面如圖6所示。
后端模塊架構(gòu)使用Springboot框架。項目中創(chuàng)建mapper接口,在xml文件中編寫SQL語句查詢出前端頁面選擇的某一天賽事總數(shù)。然后對SQL數(shù)據(jù)庫查詢出的所有賽事列表中所需的字段進行封裝,返回前端ajax請求接口所需得到的數(shù)據(jù)格式。針對數(shù)據(jù)字段進行封裝返回json關(guān)鍵代碼為:
public BarVO getBarVO() {
List
List
List
for (activityBarVO activityBarVO : list) {
names.add(activityBarVO.getName());
values.add(activityBarVO.getCount());}
BarVO barVO = new BarVO();barVO.setNames(names); barVO.setValues(values);
return barVO;}
3? 系統(tǒng)測試和功能點測試
本綜測系統(tǒng)經(jīng)過一段時間的開發(fā)之后,核心功能模塊基本完成。接下來進入系統(tǒng)測試和功能點測試環(huán)節(jié)。
3.1? 系統(tǒng)測試
測試部署環(huán)境:jdk1.8、tomcat服務(wù)器、Swagger2調(diào)試。
測試硬件設(shè)備情況:CPU選擇Intel酷睿i7 8550;運行內(nèi)存為8 GB;內(nèi)存選擇固態(tài)硬盤256 GB+機械硬盤1 TB;操作系統(tǒng)選擇微軟Windows 10。
3.2? 功能點測試
表1是本系統(tǒng)核心系統(tǒng)功能測試。
4? 結(jié)? 論
基于SpringBoot技術(shù)的可視化分析綜測服務(wù)管理系統(tǒng)采用當今流行的技術(shù)框架。通過本系統(tǒng)可以更加有效地解決綜測評分管理工作的痛點,并確保綜測核算數(shù)據(jù)的完整性、準確性和共享性,大學(xué)生可以在本系統(tǒng)上查看綜合測評數(shù)據(jù)情況,通過分析自身綜合素質(zhì)和具體各項能力,發(fā)現(xiàn)自身存在的問題以便及時做出適當?shù)恼{(diào)整。這為大學(xué)生的綜測評估提供了一個良好的展示平臺。
與以往的綜測管理系統(tǒng)相比,本系統(tǒng)具有豐富性和多元化的特點,學(xué)生可以通過人臉識別進行登錄操作,進一步提升了信息數(shù)據(jù)的安全性。學(xué)生綜測統(tǒng)計數(shù)據(jù)的結(jié)果可以實時展示,便于高校綜測管理人員對學(xué)生的綜測情況進行及時有效的管理。本系統(tǒng)可拓展性極強,如果有新的需求,只需在原有接口上進行一定的修改或者新增接口即可快速實現(xiàn)二次開發(fā),可以按照學(xué)校實際需求將系統(tǒng)拓展到中小學(xué)“德智體美勞”素質(zhì)教育考核評估當中。
參考文獻:
[1] 田海晴.基于SpringBoot和Vue框架的共享運營管理平臺的設(shè)計與實現(xiàn) [D].濟南:山東大學(xué),2020.
[2] 桂晨暉.基于SpringBoot框架對P2P借貸平臺的設(shè)計與實現(xiàn) [D].成都:電子科技大學(xué),2019.
[3] 李忠毅.基于SpringBoot的小型日常交流論壇的設(shè)計與實現(xiàn) [J].現(xiàn)代計算機,2020(25):105-108.
[4] 常寧.基于HTML5的房產(chǎn)信息采集系統(tǒng)的設(shè)計與實現(xiàn) [D].青島:中國海洋大學(xué),2015.
[5] 張衛(wèi)華.基于SSM的權(quán)限管理系統(tǒng)及數(shù)據(jù)可視化 [D].北京:北京郵電大學(xué),2020.
[6] 閆四洋,胡昌平,卞德志,等.基于SpringBoot+Mongo DB的微服務(wù)日志系統(tǒng)的實現(xiàn) [J].計算機時代,2020(8):69-71+74.
[7] 熊永平.基于SpringBoot框架應(yīng)用開發(fā)技術(shù)的分析與研究 [J].電腦知識與技術(shù),2019,15(36):76-77.
[8] 黃華.基于J2EE技術(shù)架構(gòu)的數(shù)字電視管理系統(tǒng)的設(shè)計與實現(xiàn) [D].長沙:湖南大學(xué),2016.
作者簡介:鄧斯妮(2000—),女,漢族,湖南邵陽人,本科在讀,研究方向:網(wǎng)站開發(fā);陳家敏(1999—),女,漢族,廣東汕頭人,本科在讀,研究方向:網(wǎng)站開發(fā);蔡維晟(1999—),男,漢族,廣東揭陽人,本科在讀,研究方向:Java開發(fā);葉開平(1997—),男,漢族,廣東河源人,本科在讀,研究方向:Java開發(fā)。