基于微信小程序的在线练习系统

2021-03-15 07:01吕翔罗回彬陈蔓陈国俊丘柏俊宋家豪
电脑知识与技术 2021年3期
关键词:微信小程序

吕翔 罗回彬 陈蔓 陈国俊 丘柏俊 宋家豪

摘要:针对在校学生进行日常练习时只可在PC端的问题,提出了基于微信小程序的在线练习平台——“题客”。与传统学习方式不同,该平台结合数据挖掘技术和微信小程序应用,可以较好地满足学生灵活做题需求以及方便教师及时掌控学生学习情况。

关键词:分布式系统;微信小程序;在线练习平台

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)03-0122-03

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]来管理各个部件,以此保证各个模块在自己的工作区顺利完成任务。

2.2 平台功能模块

使用在线练习平台的角色有两个,分别是学生和老师,学生端通过微信小程序进入该平台,该角色功能主要由三个模块组成,分别是答题模块、班级模块以及论坛模块。教师端通过浏览器进入该平台,该平台由四个模块组成,分别为题目导入模块、班级初始化模块、答题分析模块以及报表服务模块。具体功能点如图2所示。

3 主要技术

3.1 MySql集群机制

为了保证数据库的可靠性和应用服务器的可靠性,作者采用了主从复制的MySQL集群技术,部署了两台MySQL服务器,分别作为主服务器(master)和从服务器(slave),主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器和从服务器在日志中读取最后一次成功更新的位置。从服务器接收那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。具体如图3所示。

3.2 Redis缓存技术

考虑到平台有许多业务逻辑都有高并发的需求,比如在做题时需要获取题目,查看排行榜等等业务,数据库的读写操作将成为平台的瓶颈,作者使用Redis缓存技术并采用主从复制的Redis集群[2]技术来保证其可靠性和高效性,具体如图4所示。这样当要从数据库中读取数据时,首先都要先查询Redis中是否存在缓存数据,若有,则直接使用缓存数据,若没有,才去访问数据库,同时将读取的数据存放到数据库中。

3.3 RabbitMQ消息队列

考虑到学生扎堆完成答题任务,需要将数据保存到数据库中,在应用服务器逻辑处理过程中,如果是多个学生在同一时间提交,会出现超出应用服务器的处理能力的问题,会导致用户操作得不到反应,这将极大影响用户体验。为此,作者采用了RabbitMQ[3]消息队列技术中的异步Topic转发模式,如图5所示。学生只要提交请求,首先会将提交的做题数据保存起来放入消息队列中,然后应用服务器即可响应用户,而应用服务器则可以慢慢地从消息队列中取出数据进行处理。

3.4 Elasticsearch检索技术

在统计学生成绩以及报表服务的时候,需要对答题结果这一张表进行大量检索,答题结果这张表的每条记录作为一个学生一道题的做题结果,这意味着这张表中的记录的增加速度十分迅速,若放在MySQL关系型数据库中,一段时间之后的检索速度会有所下降,所以作者采用专门做检索的Elastic Search[4]来实现这一部分。同时,在MySQL数据库中的该表用于保存数据,这样可以保证学生答题情况得到保存的可靠性。所有数据先插入到MySQL数据库中,在应用服务器中开启了一个定时任务,每隔一分钟就会从MySQL数据库中的答题结果表数据传输到Elastic Search中并做好记录。

@Scheduled(cron = "0 * * * * MON-SAT")

@Override

public void helloScheduled(){

Object data = getDataFromMySQL(); //将数据从数据库中取出

data = ESService.refreshData(data); //重新编排数据,以适用es

ESService.addResult(data); //将数据保存到es

}

3.5 学生成绩数据分析设计

该功能是根据学生平均做题时间与和老师布置任务所答题的正确率来进行划分,分为四个部分。根据所有答题学生的做题情况计算得出平均做题正确率 [accuracy]和 平均做题时长 [time],同时通过公式 [i=1n(accuracyi-accuracy)2] 和 [i=1n(timei-time)2] 分别计算答题正确率标准差 [σ1] 和答题时长标准差[σ2],由正态分布[5]曲线的面积概率可知 [μ+2σ] 为95.45%([μ]为平均值,[σ]为标准差),我们认为如果某个学生的做题正确率或平均答题时间不在[μ+2σ]的范围内,则认为该学生做题异常,有挂科的可能。如图6所示。

4 结束语

基于微信小程序的在线练习系统,是利用微信的普及程度,制作一个无须下载,就可方便使用的在线练习系统,具体实现效果如图7、图8所示。与传统教学管理相比较,教师可以利用该系统上传题库、创建班级,这不仅减少了教师批改作业的时间,而且教师通过学生们做题情况及答题质量,利用大数据分析,总结学生的问题所在,促使老师可及时了解学生的学习动向与问题,并在课堂做出相应调整,以此来达到高质量教学以及提高学生学习质量。而学生可以随时随地刷题、查看解析以及提問讨论,不再受限于时间和地点,此外,排名榜功能也会有助于学生学习兴趣的提高,此系统旨在解决在智能时代下如何利用好科技实现课堂、线下一体化。

参考文献:

[1] 刘鑫的博客.docker容器技术[EB/OL].(2019-05-30)[2019-12-17].https://blog.csdn.net/liuxe1990/article/details/90641973.

[2] Java架构技术分享.Redis.集群管理[EB/OL].(2019-04-19) [2019-12-17].https://blog.csdn.net/weixin_44861409/article/details/89406795.DOI.

[3] 王磊. RabbitMQ系列[EB/OL].(2018-07-06)[2019-12-16].https://www.cnblogs.com/vipstone/p/9275256.html.

[4] zkycaesar.ElasticSearch底层原理浅析[EB/OL].(2018-04-18)[2019-12-15].https://blog.csdn.net/zkyfcx/article/details/79998197.

[5] ClintonZero.正态分布[EB/OL].(2019-01-26)[2019-12-15].https://blog.csdn.net/Dulpee/article/details/86662035.

【通联编辑:谢媛媛】

猜你喜欢
微信小程序
微信小程序在高校英语教学中的应用
当图书馆遇上微信小程序