本栏目责任编辑:谢媛媛
软件设计开发
基于小程序的在线练习系统
吕翔,罗回彬,陈蔓,陈国俊,丘柏俊,宋家豪
(北京理工大学珠海学院计算机学院,广东珠海519000)
摘要:针对在校学生进行日常练习时只可在PC 端的问题,提出了基于小程序的在线练习平台——“题客”。与传统学
习方式不同,该平台结合数据挖掘技术和小程序应用,可以较好地满足学生灵活做题需求以及方便教师及时掌控学生学习情况。
关键词:分布式系统;小程序;在线练习平台中图分类号:TP311
文献标识码:A
文章编号:1009-3044(2021)03-0122-03
开放科学(资源服务)标识码(OSID ):
Online Practice System Based on WeChat Mini Program
LV Xiang,LUO Hui-bin,CHEN Man,CHEN Guo-jun,QIU Bai-jun ,SONG Jia-hao
(Department of Computer,Beijing Institute of Technology Zhuhai,Zhuhai 519000,China)
Abstract:In order to solve the problems that can only be solved on PC during daily practice,an online practice platform based on WeChat was proposed.Different from the traditional way of learning,this platform combines data mining technology and WeChat small program application,which can better meet students'demands for flexible problem solving and facilitate teachers to control students'learning situations in time.
Key words:distributed system;WeChat Mini Program;online practice platform
1背景
在大数据时代下,教育这个传统行业也开始越来越多地走向智能化,网络课堂、线上问答学习模式的兴起,使得手机教育系统应运而生,充分利用好手机能够让学生们更好地汲取知识。其中,手机在线练习系统在智能教育中扮演着不可或缺的角,在高校学习知识的过程中,大学生也需要通过课程习题来巩固知识以及检验自己的水平,然而传统的学习检验方法都是通过笔试或是PC 的web 在线刷题,这种模式受限于时间和场地,不便于教师及时管理,不仅教师无法及时知道学生学习情况,而且也不便于学生学习。
如今,手机以它的便携性与轻巧性成为每个大学生随身携带的必需物,据调查,比起传统模式,大学生更愿意通过手机刷题做练习,但是,当前手机应用中并没有很实用且面向对象为高校老师和学生的做题软件,针对这些情形,高校可利用面向大学生且使用手机就可以操作的在线练习系统来管理学生学习,以便提升管理质量、促进学生们的学习。
2平台设计方案
2.1系统架构
在此练习平台研发的过程中,技术上突破了传统的WEB
后台的架构开发模式,采用了最新的分布式系统架构模式替代,并且在前后端分离开发的基础上,采
用模块化的微服务模式,具体架构如图1所示。学生将小程序作为入口,而老师端通过WEB 浏览器可以登录练习平台的后台。此外,以Spring Cloud Gateway 作为API 网关入口,应用服务器进行数据处理、存储以及报表统计等等,普通数据存储在关系型数据库MySQL 中,而需要进行分析挖掘的数据放置Elastic Search 非关系数据库中。为了解决性能瓶颈问题,采用了RabbitMQ 消息队列以及Redis 缓存等中间件,并采用Eureka 负责服务的注册与发现,同时采用docker [1]来管理各个部件,以此保证各个模块在自己的工作区顺利完成任务。
收稿日期:2020-10-08基金项目:北京理工大学珠海学院校级大学生创新创业项目:基于小程序的在线练习系统作者简介:吕翔(1998—),男,广东梅州人,本科在读,研究方向为java 后台开发;罗回彬(1986—),男,广东梅州人,通信作者,实验
师,硕士,主要研究方向为嵌入式系统设计及应用、人工智能;陈国俊(1998—),男,广东广州人,本科在读,研究方向为ja⁃va 后端开发;丘柏俊(1999—),男,广东惠州人,本科在读,研究方向为UI 设计;宋家豪(1998—),男,河南郑州人,本科在读,研究方向为web 前端开发;陈蔓(1998—),女,广东清远人,本科在读,研究方向为web 前端开发。
122
写文章的小程序软件设计开发
本栏目责任编辑:谢媛媛
Computer Knowledge and Technology 电脑知识与技术
第17卷第3期(2021年1月
)
图1系统架构图
2.2平台功能模块
使用在线练习平台的角有两个,分别是学生和老师,学
生端通过小程序进入该平台,该角功能主要由三个模块组成,分别是答题模块、班级模块以及论坛模块。教师端通过浏览器进入该平台,该平台由四个模块组成,分别为题目导入模块、班级初始化模块、答题分析模块以及报表服务模块。具体功能点如图2
所示。
图2功能点分析
3主要技术
3.1MySql 集机制
为了保证数据库的可靠性和应用服务器的可靠性,作者采用了主从复制的MySQL 集技术,部署了两台MySQL 服务器,分别作为主服务器(master )和从服务器(slave ),主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器和从服务器在日志中读取最后一次成功更新的位置。从服务器接收那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。具体如图3
所示。
图3数据库设计图
3.2Redis 缓存技术
考虑到平台有许多业务逻辑都有高并发的需求,比如在做题时需要获取题目,查看排行榜等等业务,数据库的读写操作将成为平台的瓶颈,作者使用Redis 缓存技术并采用主从复制
的Redis 集[2]
技术来保证其可靠性和高效性,具体如图4所示。这样当要从数据库中读取数据时,首先都要先查询Redis 中是否存在缓存数据,若有,则直接使用缓存数据,若没有,才去访问数据库,
同时将读取的数据存放到数据库中。
图4缓存查询业务
3.3RabbitMQ 消息队列
考虑到学生扎堆完成答题任务,需要将数据保存到数据库中,在应用服务器逻辑处理过程中,如果是多个学生在同一时间提交,会出现超出应用服务器的处理能力的问题,会导致用户操作得不到反应,这将极大影响用户体验。为此,作者采用了RabbitMQ [3]消息队列技术中的异步Topic 转发模式,如图5所示。学生只要提交请求,首先会将提交的做题数据保存起来放入消息队列中,然后应用服务器即可响应用户,而应用服务器
则可以慢慢地从消息队列中取出数据进行处理。
图5消息队列数据传递逻辑
3.4Elasticsearch 检索技术
在统计学生成绩以及报表服务的时候,需要对答题结果这
一张表进行大量检索,答题结果这张表的每条记录作为一个学生一道题的做题结果,这意味着这张表中的记录的增加速度十分迅速,若放在MySQL 关系型数据库中,一段时间之后的检索速度会有所下降,所以作者采用专门做检索的Elastic Search [4]来实现这一部分。同时,在MySQL 数据库中的该表用于保存数据,这样可以保证学生答题情况得到保存的可靠性。所有数据先插入到MySQL 数据库中,在应用服务器中开启了一个定时任务,每隔一分钟就会从MySQL 数据库中的答题结果表数据传输到Elastic Search 中并做好记录。
@Scheduled(cron ="0****MON-SAT")@Override
public void helloScheduled(){
123
本栏目责任编辑:谢媛媛
软件设计开发Computer Knowledge and Technology 电脑知识与技术第17卷第3期(2021年1月)
Object data =getDataFromMySQL();//将数据从数据库中取出data =freshData(data);//重新编排数据,以适用es
ESService.addResult(data);//将数据保存到es }
3.5学生成绩数据分析设计
该功能是根据学生平均做题时间与和老师布置任务所答题的正确率来进行划分,分为四个部分。根据所有答题学生的做题情况计算得出平均做题正确率--
----------accuracy 和平均做题时
长------time ,同时通过公式∑i =1
n
(accuracy i -------------accuracy )2和
i =1
n (time i -------time )2分别计算答题正确率标准差σ1和答题
时长标准差σ2,由正态分布[5]曲线的面积概率可知μ-+2σ为95.45%(μ为平均值,σ为标准差),我们认为如果某个学生的做
题正确率或平均答题时间不在μ-+
2σ的范围内,则认为该学
生做题异常,有挂科的可能。如图6所示。
图6做题正确率与做题时长划分图
4结束语
基于小程序的在线练习系统,是利用的普及程度,制作一个无须下载,就可方便使用的在线练习系统,具体实现效果如图7、图8所示。与传统教学管理相比较,教师可以利用该系统上传题库、创建班级,这不仅减少了教师批改作业的时间,而且教师通过学生们做题情况及答题质量,利用大数据分析,总结学生的问题所在,促使老师可及时了解学生的学习动向与问题,并在课堂做出相应调整,以此来达到高质量教学以及提高学生学习质量。而学生可以随时随地刷题、
查看解析以及提问讨论,不再受限于时间和地点,此外,
排名榜功能也会有助于学生学习兴趣的提高,
此系统旨在解决在智能时代下如
何利用好科技实现课堂、线下一体化。
图7学生答题情况详情页面
图8小程序实现效果
参考文献:
[1]刘鑫的博客.docker 容器技术[EB/OL].(2019-05-30)[2019-12-17].blog.csdn/liuxe1990/article/details/90641973.
[2]Java 架构技术分享.Redis.集管理[EB/OL].(2019-04-19)[2019-12-17].blog.csdn/weixin_44861409/article/de⁃tails/89406795.DOI.
[3]王磊.RabbitMQ 系列[EB/OL].(2018-07-06)[2019-12-16].wwwblogs/vipstone/p/9275256.html.
[4]zkycaesar.ElasticSearch 底层原理浅析[EB/OL].(2018-04-18)[2019-12-15].blog.csdn/zkyfcx/article/details/79998197.
[5]ClintonZero.正态分布[EB/OL].(2019-01-26)[2019-12-15].blog.csdn/Dulpee/article/details/86662035.
【通联编辑:谢媛媛】
124

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。