基于SpringBoot技术的综测N服务管理系统设计与实现

2021-10-19 01:42邓斯妮陈家敏蔡维晟叶开平
现代信息科技 2021年5期

邓斯妮 陈家敏 蔡维晟 叶开平

摘  要:针对当前高校每学期的综测评分工作工序繁杂、手工操作低效、反复核对耗时长等痛点,设计并实现了一个大学生综测N服务管理信息系统。该系统的设计主要采用当前流行的Java轻量级开发框架SpringBoot开发技术,利用MyBatisPlus操作和管理MySQL数据库,采用Layui框架设计系统界面。该系统采用大量人工智能技术和算法来提高综测计算效率,主要有基于PaddlePaddle的图像识别技术,基于协同过滤算法的智能推荐算法,以及人脸识别技术。

关键词:综测评分;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  引  言

綜测考核是高校辅导员的一项重要工作,也是用以评估大学生综合素质的依据。开发出一个综测评估管理系统,是当今高校实现高效管理与培育大学生综合素质并对其进行能力评估的重要手段。因此,本文将从技术角度分析该系统开发的可行性和适用性。

利用传统的JavaEE应用体系进行综测评估管理系统的开发存在诸多不便。首先,需要进行复杂繁琐的配置搭建;其次,存在开发效率低、难度较高的三方集成;最后,部署流程极其复杂。对于先进的轻量级资源整合框架Spring,虽然其相较于传统开发技术实现了许多资源整合配置,但是开发人员仍旧需要手动添加依赖,进行XML配置。然而,SpringBoot省却了设置Spring应用程序所需的复杂例行配置。其最大的作用就是让配置文件、实际应用开发,发布和测试项目变得相对容易一些,此外,其还集成了大量外围框架[1],这足以体现SpringBoot的强大之处[2-4]。

随着互联网技术的迅猛发展,系统架构模式发生了巨大变化,其已经由单体配置[5]、分布式架构发展到当今比较流行的微服务架构。由于架构体系的变更,大多数公司更加注重于高效、便捷的技术,于是,基于快速构建、开箱即用的SpringBoot技术应运而生[6,7]。

1  系统设计

1.1  技术架构设计

本系统采用的是B/S架构模式,设计为前后端分离的方式。技术架构共分为六层,系统的技术架构如图1所示,接下来着重说明这六层的具体内容[8]:

(1)基础设施层。主要包括服务器、以太网、通信链路等设备,为系统的搭建提供基础设施保障。

(2)部署环境。主要采用的是Jdk1.8和Tomcat服务器,为系统的搭建提供项目环境。

(3)数据持久层。主要包括数据操作工具Mybatis Plus、分布式缓存中间件Redis。采用的是使用范围较广的MySQL数据库。为系统提供稳定的数据库搭建。

(4)业务层。主要涉及的是华为云ORS、SpringBoot以及应用管理系统模块,包括综测及推优管理、活动赛事管理、数据分析管理、审核数据管理、登录注册管理、违规违纪管理、用户管理、权限管理、个人中心管理及系统维护。

(5)网络通信。主要采用的是负载均衡的Nginx服务器,用于方便前后台交互,提供拦截机制。

(6)前端。主要包括前端三大基础HTML5、CSS3及JavaScript,Layui前端框架。其中还包括Node.js、NPM(主要用来管理前端工程)、Webpack(主要用于将静态资源js、css及less转换成一个静态文件,减少页面请求)及Bable(保证业务可以在现有环境中执行)。

权限设置和安全策略主要通过Spring Security提供。使用Spring Security提供多重身份认证模式,可以有效防止暴力攻击,保证系统用户安全。

1.2  核心功能模块设计

本系统的主要核心模块包括综测管理、推优管理、数据可视化管理、活动赛事管理,人脸识别登录管理,智能推荐赛事管理。以下为各模块的内容:

(1)综测管理。本模块主要是针对综合素质评估项进行管理。其中包括专业技能、创造能力、组织管理能力、文体能力、社会实践的评估测算。能够实现综合素质各个测评项的录入和计算。

(2)推优管理。本模块主要是针对综合素质及学业成绩的排名进行推优汇总。主要包括学生奖学金一二三等奖和优秀学生干部的内容。通过本系统学生可以直接查看自己是否获得推优。

(3)数据可视化管理。本模块主要是针对综合素质各测评数据以及活动赛事进行可视化管理,此模块能够直观清晰地分析个人综合素质情况,有助于学生、高校综测管理人员及时做出相应的调整和提升。

(4)活动赛事管理。本模块主要针对的是与大学生综合素质有关的竞赛活动展示、报名。高校学生可以通过此模块进行赛事报名,提升自身的综合素质能力。

(5)人脸识别登录管理。本模块主要是利用百度的PaddlePaddle人脸识别技术实现人脸模型匹配登录,免去了账号登录的繁琐性,有利于提高用户数据的安全性。

(6)智能推荐赛事管理。本模块主要是在首页提供适合用户参与的赛事活动。根据用户所参与活动的历史记录情况,为其推荐同类的相关赛事活动。

2  系统实现

2.1  智能推荐赛事管理

在智能推荐赛事管理中,协同过滤算法,是仅仅基于用户行为进行数据设计的推荐算法。本系统采用“协同过滤算法”的研究者所提出的众多方法中的“基于领域的算法”。基于领域的算法分为两大类,一类是“基于用户的协同过滤算法”,另一类是“基于物品的协同过滤算法”。学生在参加活动后数据库会记录其参加比赛的数据,系统可利用该名学生的历史参赛数据来预测其可能喜好的比赛,生成推荐列表为学生推荐最新赛事,如图2所示。

建立用户模型代码为:

int[][] currentMatrix = new int[acpapers.size()+5][acpapers.size()+5]; //构建当前矩阵与共现矩阵

int[][] coOccurrenceMatrix = new int[acpapers.size()+5][acpapers.size()+5];

int[] N = new int[acpapers.size()+5];

構建当前矩阵核心代码为:

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]; }

构建共现矩阵核心代码为:

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];}

计算余弦相似度,生成推荐结果代码为:

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  人脸识别登录管理

在人脸识别登录管理中,系统采用人脸识别登录方式,利用人脸的匹配机制算法进行合法性校验,通过相机捕获的人脸与现有的人脸库进行实时比对,得到学生人脸库中的id值,然后得出人脸相似度并返回两两比对的人脸相似度得分,用户判断两张脸是否为同一个人,最后通过验证实现人脸登录,如图3所示。这种登录方式极大地提高了信息数据的安全性和保密性,为绿色校园的开展提供了信息数据的便捷性和可靠性。

前端通过Ajax将相机所捕获的人脸数据发送给后台。后台调用百度AI接口中人脸查找的方法,将相机捕获的人脸数据转换为JSON后向百度API发送POST请求,将请求返回的数据转换为map后对数据进行字符串处理,最后可将所得到的人脸相似度得分和用户id用于登录验证。

人脸识别获取用户数据关键代码为:

public String searchface(@RequestBodyModel model) {

Map searchface = loginService.searchface();

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  综测管理

综测管理中,学生输入综合素质测评项数据并提交,班级综测小组审核并提交综合素质测评项数据,班级综测小组审核全班综测数据无误后提交给辅导员,辅导员复审无误后提交给系综测负责老师,系综测负责老师查看全系综合测评全部数据,并公布全系的综合测评全部数据。

学生学业成绩、行为表现成绩等数据通常保存在学校服务器中,在此模块中,通过远程调用接口的方法,可以解决学生综测信息中各测评项数据的自动获取与计算问题,得出测评数据供老师审核。

以学生突出表现能力得分的获取以及汇总为例,综测管理模块通过调用测评模块的接口,先在xml文件中编写SQL语句以从“突出四项测评表”中查询出五项能力的对应分值,根据各项能力在综测总分中的占比,将各项分值按对应比例进行累加得到突出表现能力总分,生成统计数据存储到本地数据库。在测评模块中,统计突出表现总分,如图4所示。

远程调用功能关键代码为:

@PostMapping("evaluationCount/{num}")

public R outstadingCount(@PathVariable String num) {

evaService.outstadingrCount(num);

return R.ok();}

远程调用获取到的数据添加到本地数据库的代码为:

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  推优管理

推优管理中,各班辅导员查看全班综合素质测评排名,并根据排名情况筛选出有资格获得学生奖学金和优秀学生干部的学生名单,对于已提交的推优名单中存在违纪的学生则采取剔除做法,系级综测负责人查看全系推优汇总名单并提交给院级学生处老师进行复审,最后对审核通过的推优名单进行公示,如图5所示。

根据选择的条件筛选出有资格获得学生奖学金和优秀学生干部的学生名单,并判断所选择的条件是否存在,关键代码为:

Page pageStudentCondition = new Page<>(current,limit);

QueryWrapper wrapper = new 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);}

查詢出班级内所有具有推优资格的学生并进行汇总后,教师可根据名单对学生进行拟定奖项推优。根据总记录数中学生的综合测评分数进行排序的代码为:

wrapper.orderByDesc("sutdent_score");

StudentEnrollService.page(pageStudentCondition,wrapper);

long total = pageStudentCondition.getTotal();

List records = pageStudentCondition.getRecords();

return R.ok().data("total",total).data("rows",records);

2.5  综测可视化管理

综测可视化管理中,各班辅导员及学生可以通过点击“统计分析”按钮,查看综测各项图表分析,页面展示的是使用ECharts得到的图表展示,ECharts是通过JavaScript实现的开源可视化库,可以在PC和移动设备中流畅地运行,对本系统中学生各项数据统计具有重要作用。综测可视化管理界面如图6所示。

后端模块架构使用Springboot框架。项目中创建mapper接口,在xml文件中编写SQL语句查询出前端页面选择的某一天赛事总数。然后对SQL数据库查询出的所有赛事列表中所需的字段进行封装,返回前端ajax请求接口所需得到的数据格式。针对数据字段进行封装返回json关键代码为:

public BarVO getBarVO() {

List list = activityMapper.findAllactivity BarVO();

List names = new ArrayList<>();

List values = new ArrayList<>();

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  系统测试和功能点测试

本综测系统经过一段时间的开发之后,核心功能模块基本完成。接下来进入系统测试和功能点测试环节。

3.1  系统测试

测试部署环境:jdk1.8、tomcat服务器、Swagger2调试。

测试硬件设备情况:CPU选择Intel酷睿i7 8550;运行内存为8 GB;内存选择固态硬盘256 GB+机械硬盘1 TB;操作系统选择微软Windows 10。

3.2  功能点测试

表1是本系统核心系统功能测试。

4  结  论

基于SpringBoot技术的可视化分析综测服务管理系统采用当今流行的技术框架。通过本系统可以更加有效地解决综测评分管理工作的痛点,并确保综测核算数据的完整性、准确性和共享性,大学生可以在本系统上查看综合测评数据情况,通过分析自身综合素质和具体各项能力,发现自身存在的问题以便及时做出适当的调整。这为大学生的综测评估提供了一个良好的展示平台。

与以往的综测管理系统相比,本系统具有丰富性和多元化的特点,学生可以通过人脸识别进行登录操作,进一步提升了信息数据的安全性。学生综测统计数据的结果可以实时展示,便于高校综测管理人员对学生的综测情况进行及时有效的管理。本系统可拓展性极强,如果有新的需求,只需在原有接口上进行一定的修改或者新增接口即可快速实现二次开发,可以按照学校实际需求将系统拓展到中小学“德智体美劳”素质教育考核评估当中。

参考文献:

[1] 田海晴.基于SpringBoot和Vue框架的共享运营管理平台的设计与实现 [D].济南:山东大学,2020.

[2] 桂晨晖.基于SpringBoot框架对P2P借贷平台的设计与实现 [D].成都:电子科技大学,2019.

[3] 李忠毅.基于SpringBoot的小型日常交流论坛的设计与实现 [J].现代计算机,2020(25):105-108.

[4] 常宁.基于HTML5的房产信息采集系统的设计与实现 [D].青岛:中国海洋大学,2015.

[5] 张卫华.基于SSM的权限管理系统及数据可视化 [D].北京:北京邮电大学,2020.

[6] 闫四洋,胡昌平,卞德志,等.基于SpringBoot+Mongo DB的微服务日志系统的实现 [J].计算机时代,2020(8):69-71+74.

[7] 熊永平.基于SpringBoot框架应用开发技术的分析与研究 [J].电脑知识與技术,2019,15(36):76-77.

[8] 黄华.基于J2EE技术架构的数字电视管理系统的设计与实现 [D].长沙:湖南大学,2016.

作者简介:邓斯妮(2000—),女,汉族,湖南邵阳人,本科在读,研究方向:网站开发;陈家敏(1999—),女,汉族,广东汕头人,本科在读,研究方向:网站开发;蔡维晟(1999—),男,汉族,广东揭阳人,本科在读,研究方向:Java开发;叶开平(1997—),男,汉族,广东河源人,本科在读,研究方向:Java开发。