儿童体测数据分析系统的设计与开发
2022-08-31朱书彪邹小慧
朱书彪 邹小慧
摘要:为了解决儿童体测数据难以统计处理的问题,研究了一种基于B/S架构的儿童体测数据分析系统。采用了SpringBoot、Mybatis、LayUI等主流Web开发技术,实现了幼儿园、小学、初中三个阶段的儿童体测数据分析功能。依据国家标准对儿童的体测数据进行自动化分析,并生成相应的电子报告和PDF报告。系统在设计上综合考虑多方面因素,为学校和培训机构提供了体测报表管理、体测数据录入分析、体测报告管理、报告个性化设计、电子版报告查询等实用性的功能。
关键词:SpringBoot;LayUI;B/S架构;儿童体测;数据分析
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)17-0041-03
1引言
我国教育在发展过程中,始终强调素质教育的重要性,高举“德智体美劳”全面发展的大旗,破除应试教育的壁垒。“十四五”规划中提出体育在五育中占據重要地位,体育的发展关乎人类的可持续健康发展[1]。但是在当下,我国大部分学校的体育教育并非为了学生强身健体、更不是培养学生的体育兴趣,而是为了让学生能够在中考体育中获得更高的分数。有研究表明,中考体育确实在一定程度上提高了学生的身体素质,但是没有达到培养学生终身体育的目的,大多数学生在考试结束后就将体育抛弃[2]。
近年来,在国家政策的引导下,越来越多的学校逐渐重视学生体育素质的提升,但体测工作十分烦琐,仅仅依靠于人工统计分析,不仅耗时长,并且容易发生错误,也很难给到老师和学生反馈建议[3]。因此设计开发一个儿童体测数据分析系统具有很大的必要性。本文主要研究儿童体测数据分析系统的设计与开发,严格按照国家相关标准——《国民体质测定标准手册(幼儿部分)》《国家学生体质健康标准(2014 年修订)》对儿童的体测数据进行分析评测,不仅可以帮助学校、培训机构等体测组织者完成儿童的体测数据统计分析,还可以给学生、家长、老师相应的反馈报告,使得体测工作能够顺利进行。
2 系统总体设计
2.1 系统用户群体分析
在项目开发之前对用户群体进行分析是至关重要的一个步骤,了解系统使用者的需求有利于后期产品的普及[4]。在本系统中,使用者主要包括系统管理运营人员、幼儿园和中小学负责体测的教师、儿童体育培训机构的机构老师以及学生家长。针对不同的用户群体,将系统分为了三个不同的端口,为系统运营人员建设管理员端,功能强大,可以对系统情况、用户信息、体测数据等内容进行统一的管理;为学校、培训机构的体测教师分别学校端和场馆端,界面美观、操作方便,可以根据需求对PDF报告进行个性化设计;为家长和学生提供家长端,考虑到App开发成本大、使用成本高的弊端,家长端采用公众号平台,为家长提供查询报告的功能。
2.2 系统架构设计
本系统采用当下流行的SpringBoot、MyBatis、LayUI、SpringSecurity等框架进行项目代码的开发,使用MySQL数据库进行数据的存储,使用七牛云CDN存储系统图片文件。项目的系统架构图如图1所示:
2.3 系统主要功能
体测老师在线下为学生进行测试,统计学生体测数据,通过系统进行数据导入,系统可以自动根据国家规定的体测标准对数据进行智能化分析,为学生生成体测报告,报告分为PDF版和电子版,体测老师可以在学校端、场馆端管理学生的体测数据以及体测报告;家长可以通过关注公众号查询学生的电子版报告;管理员可以对系统中所有的体测数据、学校/场馆信息等内容进行管理。系统主要实现了以下功能:
1)系统用户管理。
2)体测标准管理。
3)体测报表管理。
4)体测数据录入分析。
5)体测报告管理。
6)报告个性化设计。
7)电子版报告查询。
3 系统数据库设计
根据前期的需求分析,综合考虑系统安全等各方面因素,系统设计了59张表,例如:体测标准表、体测数据表、体测项目表、用户表等。该系统数据库设计严格遵循第三范式设计原则,另外,考虑到物理外键的维护成本较高,所以本系统采用了目前较为成熟的逻辑外键,将一张表的主键作为字段设置到与其相关联的表中,以此来映射两张表之间的关系[5]。数据库部分表结构如图2、图3所示。
4.1数据管理分析
本系统支持幼儿阶段(3~6岁)、小学、初中三个阶段的数据分析,管理员预先将三个阶段的体测项目、评分标准录入至数据库中。体测老师通过学校端/场馆端可以将学生的体测数据导入系统中,系统可以自动根据不同的学段匹配相关标准,并给出对应的分数,考虑到数据分析效率的问题,本系统采用了多线程技术,设计了优质的算法,提高了系统的运行效率。为了满足录入时的不同需求,系统支持页面表单数据提交、Excel批量导入两种方式,不论是使用哪种方式,都提供了数据格式校验功能,避免了因数据格式不正确导致导入失败的问题。同时,为了方便机构和学校对数据的管理,系统支持标签功能,可以将体测数据分门别类进行管理。
客户端通过HTTP协议将体测数据传输到服务器端,服务器接收到数据后,采用多线程技术对每一条数据进行分析,分析过程中需要将各数据项与相匹配的标准进行比较,生成得分、评语、个人排名以及班级整体数据报告。数据管理分析部分代码如下所示:
@PostMapping("/hallImport")
public AjaxResulthallImport(@RequestBodyRequestHallImportVorequestHallImportVo) {
hallDataService.hallImport(requestHallImportVo);
return AjaxResult.success();
}
@PostMapping("/importByExcel")
public AjaxResultimportByExcel(@RequestParam("file") MultipartFilemultipartFile,
@RequestParam(name = "tagName",required = false) String tagName) throws IOException {
hallDataService.importByExcel(multipartFile,tagName);
return AjaxResult.success("导入成功");
}
4.2 PDF报告生成
PDF报告生成功能在本系统中至关重要,在项目开发前期,我们尝试了多种生成PDF的方法,均不能达到预期的效果,例如使用Freemarker模板设计报告样式,在通过Java语言调用打印PDF、使用ITEXT生成PDF等。最终,经过严格的实验,我们选择了phantomjs,一个基于webkit的JavaScript API。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而可以向操作系统读写文件等[5]。基于phantomjs的强大功能,我们为不同阶段的儿童分别设计了HTML报告模板,使用Java语言调用phantomjs,并且将分析的数据作为参数传递给HTML报告模板,HTML报告模板加载到数据后,phantomjs可以将当前网页转成PDF格式,保存在服务器中,至此就完成了PDF报告的生成功能。PDF报告生成部分代码如下所示:
try {
link = "phantomjs --debug=yes /root/PhantomJS/outputPDF.js " + path + uuid + hallGrformEntity.getStudentName() +".pdf\"file:///root/PhantomJS/bb/index3.html?" + URLEncoder.encode(link, "UTF-8") + "\"";
} catch (UnsupportedEncodingException e) {
log.error("UnsupportedEncodingException in link" + e);
}
link = link.replaceAll("%3D", "=");
link = link.replaceAll("%26", "&");
log.info(link);
Runtime run = Runtime.getRuntime();
String[] cmdA = {"/bin/sh", "-c", link};
int status = 0;
try {
Process pro = run.exec(cmdA);
status = pro.waitFor();
} catch (Exception e) {
log.info("phantomJs执行出错了" + e);
return false;
}
4.3 电子报告查询
电子报告查询功能主要是为了方便家长了解孩子的体测情况,电子版报告分为简版、详版,同时为三个不同的学段设置了不同的样式,在界面设计上符合了学生的年龄特征。家长关注公众号后,可以点击进入体测报告查询入口,然后输入手机号/11位编号即可查询到孩子所有的体测报告信息。电子版报告查询功能主要代码如下所示:
public R queryByUuid(@RequestParam("uuid") String uuid) {
Map
TestDataEntitytiCeData = testDataService.queryByUuid(uuid);
if (ObjectUtils.isEmpty(tiCeData)){
throw new RRException("数据不存在");
}
TestGrformEntitytestGrformEntity = testGrformService.queryByUuid(uuid);
result.put("uuid", tiCeData.getUuid());
result.put("school", testGrformEntity.getSchoolName());
......(为result设置参数)
return R.ok().put("result", result);
}
5系统效果展示
完成系统开发后,将系统部署至阿里云服务器,并申请了域名,为全国200余家体育场馆/学校提供了体测数据分析服务。目前系统还在不断更新迭代,在未来还将提供高中、大学等学段的体测数据分析功能。系统部分运行界面如图4~图8所示。
6 结束语
通过本系统的研究与应用,为中小学幼儿园以及各大体育场馆提供了技术上的帮助,有效解决了当下体测数据难以统计、处理等问题。为了保证系统后期的运行与维护,最终采用了阿里云服务器进行项目的部署,同时还利用Jenkins+Gitee进行持续集成,有助于系统的后期更新。项目上线后,首先在江西省南昌市试运行,主要对象为南昌市各大幼儿园,试运行结束后,我们根据实际用户的意见对系统进行了改进,例如,新增家长分享报告功能、扩充报告主题等功能。目前,系统使用者已经超过100家单位,真實体测数据近2万条。下一步,我们将根据前期客户的实际体验,对系统进行进一步的升级,提升客户的使用效率,更加注重体验感,对报告的样式进行设计,符合不同年龄段学生的特征。
参考文献:
[1] 李晓玥,曹林,赵旺,等.基于学生体测大数据的健康智能评价方法[J].办公自动化,2021,26(18):38-41.
[2] 胡娟.学生体质健康标准数据管理系统的设计与实现[J].科技展望,2015,25(32):252-254.
[3] 鹿耀辉.中学生体测对学生锻炼习惯的影响[J].体育风尚,2021(8):265-266.
[4] 朱锐勋,黄亮,岳正江.基于Spring Boot的办学质量评估系统设计[J].信息技术与信息化,2022(3):134-137.
[5] ZuQingWebDriver自动化测试工具(3)—PhantomJS的使用[EB/OL].[2021-06-20].https://www.cnblogs.com/zuqing/p/7298 266.html.
收稿日期:2022-03-16
作者简介:朱书彪(1998—),男,江西赣州人,信息系统项目管理师,助教,学士,主要研究方向为企业信息化建设;邹小慧(1996—),女,广西贺州人,学士,主要研究方向为软件系统建设。