• 沒有找到結果。

基于微信公众号的在线练习系统设计与实现

N/A
N/A
Protected

Academic year: 2022

Share "基于微信公众号的在线练习系统设计与实现"

Copied!
2
0
0

加載中.... (立即查看全文)

全文

(1)

2021【3】11 3 卷 11 期 ISSN:2661-3573(Print);2661-3581(Online)

教育发展研究

117

【摘 要】

【关键词】

DOI: 88888888888888888888888

基于微信公众号的在线练习系统设计与实现

刘 芝1 罗 泉2 (1. 南宁师范大学 广西南宁 530000) (2. 广西大学行健文理学院 广西南宁 530000)

根据当前大学生常用微信的特点,基于微信公众号设计和实现了一个在线练习系统。通过该系统,学生可根据情况自主完 成练习,查缺补漏,教师可发布练习任务,检查学生练习效果。该系统操作简单,便于维护,具有较高的实用价值。

在线练习;微信;微信公众号

目前,我国的智能手机已经非常普及,对于大学生来说,

手机已经是日常生活及学习的一部分,大学生们非常愿意通过 智能手机,利用碎片时间进行自主学习。不少学者结合自身教 学情况开发了在线考试系统[1,2],其系统功能侧重于考试,未突 出练习,其中基于 Android 的系统需要下载 APP 进行安装,

略显繁琐。

自微信推出以来,越来越多的人使用其进行交流,其提供 的微信公众号是一种自媒体平台,可实现信息推送、文章展示、

用户管理等功能。据调查,在高校学生中公众号的普及率较高,

绝大部分大学生订阅了公众号,每天频繁浏览公众号的约占其 中的 43.99%[3]

由于微信普及率高,而且通过公众平台提供了二次开发的 可能,很多学者研发了基于微信公众平台的移动学习系统 [4,5],

有效提升了学生的学习效率。

现今大学生的学习更强调自主性,愿意根据自身知识基础 及能力,完成针对性的练习,并及时获得结果反馈,为此,开 发一个基于微信公众号的在线练习系统,提供多课程练习功能,

对于减少教师工作量、提高学生的自主学习效率,是非常有必 要的。

1、分析及设计

系统的设计目标是让学生能随时随地通过完成练习来巩固 课堂知识,让教师能发布指定的练习并了解学生完成的情况。

为了能在多门课程中使用,能在手机上方便操作,通过分析,

该在线练习系统包含管理员、教师、学生等角色,系统提供练 习的题型为单选、多选、判断、填空题,并且应具备如下功能:

教师能新增课程,创建课程题库,题库分为公共题库和私 有题库。共同题库可用于生成顺序练习、随机练习,对于所有 学生可用;私有题库用于创建班级专属练习任务,仅指定班级 可用。

(1)教师能创建练习任务,指派给班级,能查看指定班级 学生的练习结果。

(2)学生能通过微信完成练习,能记录错题信息并方便后 续复习。

(3)消息推送。当老师发布练习任务时,对应班级所有学 生用户均收到推送消息。

(4)系统操作简单,用户能快速掌握使用方法。

2、架构设计

整个系统由微信端、Web 端、系统服务端构成。微信端由 学生使用,提供课程练习;web 端供教师和管理员使用,提供 创建题库及管理等功能;系统服务端为微信端和 Web 端提供 各类 WebAPI 接口。

微信端使用 HTML5 技术实现。当微信公众用户和系统服

务端交互信息时,信息需要通过微信服务器进行转发,并使用 公众号的私有信息为秘钥进行数字签名 [6]。

Web 端使用 Html5 技术实现,由 Web 端保存用户状态,

通过 Ajax 异步调用系统服务端提供的 WebAPI。

系统服务端由身份认证服务、用户管理服务、题库服务、

练习任务服务等构成,部署在 Web 服务器上。其中,身份认 证服务实现了 auth2.0 规范,提供身份鉴权功能,可以使用微 信用户的 OpenId 进行鉴权;用户管理服务提供用户注册、基 本信息修改、用户查找、密码重置、角色设置等功能;题库服 务提供 4 种题型题目信息的创建、修改、发布,以及练习题的 顺序、随机、按章节获取的功能;练习任务服务提供任务的创建、

修改等,用于教师角色给学生指派练习任务。

3、系统实现

根据上述分析,整个系统主要使用 java 实现,微信端和 web 端使用 Html5,服务端使用 SpringBoot 及公众号二次开 发框架 WxJava,数据库使用 MySQL5.8。

3.1 服务端核心功能

服务端核心功能由两部分构成。

第一部分由 WxJava 框架实现,遵循微信公众号二次开发 约定,主要提供与微信服务器的通信及消息解析,包括获取微 信用户信息、用户关注微信公众号时创建相应的学生用户、教 师发布练习任务时发送消息给相关学生。其中用户关注公众号 时创建学生用户的流程为:

(1)用户使用微信关注公众号

(2)微信服务器使用 XML 格式将用户关注公众号的消息 发送给服务端

(3)服务端收到 XML 信息后,从中获取此微信用户的 openID 信息,然后通过调用 WxJava 提供的方法,获取该微 信用户的其他信息,比如昵称、头像等。

(4)最后尝试使用 openID 和昵称创建学生用户。

具体代码如下:

if (inXmlMessage.getEvent().equals(“subscribe”)) { // 此时用户关注公众号

// 从 微 信 服 务 器 发 来 的 XML 消 息 中 获 取 用 户 对 应 的 OpenID

String userOpenId=inXmlMessage.getFromUser();

// 使用 OpenID,获取该用户对应的微信信息

Wx MpUs e r S e r v i c e u S e r v i c e = w x S e r v i c e.

getUserService();

W x M p U s e r u s e r W x I n f o = u S e r v i c e . userInfo(userOpenId, null);

// 使用微信用户信息,创建本系统用户信息

(2)

2021【3】11 3 卷 11 期 ISSN:2661-3573(Print);2661-3581(Online)

教育发展研究

118

S y s t e m U s e r s y s U s e r = S y s t e m U s e r . CreateUser(userWxInfo);

// 设置系统用户为 Student 角色,即学生用户 sysUser.addRole(“Student”);

// 尝试在系统中注册该用户

sysUserService.TryRegister(sysUser);

….

}

第二部分使用 SpringBoot 提供基于 Http 协议的各类 API 接口,当微信端或 Web 端通过异步请求 API 时,服务端处理 请求,验证是否有相应的权限,如果有则把结果以 JSON 文本 的形式返回。

// 获得单个练习题信息

@RestController

@RequiresPermissions(“exercise:get”) ‏

@RequestMapping(value =”/api/exer/get/

{id}”,method = RequestMethod.GET)

public Exercise exercise (@PathVariable(“id”) Long id){

return exerciseService.findById(id);

}

4、Web端核心功能

Web 端运行环境为个人电脑的主流浏览器,主要供管理员、

教师角色用户使用,用户登录后按需点击菜单进行相应的操作。

4.1 管理员模块

(1)用户管理。该功能对系统所有角色用户进行管理,可 批量导入用户信息,逐个添加、删除、修改各角色用户信息,

可重置用户的密码。

(2)配置管理。该模块提供基础信息配置、权限配置、角 色配置、日志配置等功能,方便管理员日常维护系统。

(3)权限管理。管理员可将某一学生用户设置为教师用户。

4.2 教师模块

(1)课程管理。教师用户可根据自己的教学情况创建课程,

课程信息包括课程名称、参考资料、教学大纲以及章节信息等。

课程发布后,学生用户方能查看。

(2)教学班管理。教师用户可以创建教学班,并将自己所 授课班级的学生信息导入到教学班中,并在教学过程中,查看

教学班学生的练习情况。

(3)题库管理。教师用户通过该功能为课程添加练习题,

练习题的类型为单选题、多选题、判断题、填空题,练习题须 与课程的某一个章节关联。练习题有是否公开属性,当练习题 公开时,对所有学生可见,否则仅能出现在练习任务中。

(4)练习任务管理。教师用户可从本课程题库中选择题目,

创建练习任务,并分配给指定的多个教学班。创建练习任务时,

可以手动选择题目,也可以由系统随机抽题,练习任务仅对指 定的教学班可见,并需要在限定时间内完成。练习任务发布后,

会通过微信公众号的消息接口通知相关学生。

(5)成绩统计。该模块按教学班提供任务成绩统计、任务 完成度统计、活跃度统计、章节正确率统计等功能,方便教师 用户分析学生的练习效果。

4.3 微信端核心功能

微信端由学生用户使用,主要提供查看课程信息、个人练 习、加入教学班等功能。

(1)查看课程信息。学生可看到教师用户发布的所有课程 信息,进入课程后,能看到相关参考资料及所有公开的练习题。

(2)加入教学班。学生填写个人学号、姓名信息,并输入 班级邀请码,即可加入指定教学班级。

(3)练习任务。当教师针对教学班发布练习任务时,学生 可在该模块查看任务信息,并按要求限时完成。

(4)个人练习。该模块提供顺序练习、随机练习、章节练习、

错题练习等练习模式,所用题库为当前课程的公开练习题。学 生可根据自身知识掌握情况,利用碎片时间进行练习,练习过 程中做错的题目,会自动保存到错题库。学生可在错题库中查 看每道题的答案解析,有利于加深记忆。

5、结束语

在线练习系统基于微信公众号实现,易维护,易扩展,立 足于课程教学及学生们学习的需要,界面简洁、操作简单,方 便学生们在任意时段完成课程练习,从而强化记忆、巩固课堂 所学知识,并在一定程度上激发学生们的学习主动性,具有较 高的实用价值。

基 金 项 目 : 广 西 高 校 中 青 年 教 师 科 研 基 础 能 力 提 升 项 目

(No.2019KY0413: 基于微信公众号的 SPOC 移动学习系统开 发);南宁师范大学青年科研基金项目(基于Android 手机 的通用移动微练习自主学习平台研究与设计);南宁师范大学 教学改革项目(No:2017JGX025)。

参考文献

[1] 董修严 , 柯洪昌 , 陈祥 . 基于 Android 的在线考试系统的设计与实现 [J]. 现代信息科技 .2019,3(7):95-96+99.

[2] 潘宏 . 高校学生考试系统的设计与实现 [J]. 信息与电脑 .2020,(1):76-78.

[3] 何淼 , 李彬 . 青年受众的微信公众号使用及满意度研究 [J]. 传媒 .2021,(03):65-67.

[4] 亓传伟 . 基于微信公众号的在线学习系统设计与实现 [J]. 濮阳职业技术学院学报 2019,32(6):38-40+53.

[5] 雒志奇 , 高亮 , 卢志谱 . 基于微信小程序的计算机等级考试辅导软件设计开发 [J]. 南方农机 .2021,(05):155-157.

[6] 李 建 华 , 夏 汛 , 罗 明 全 . 基 于 ThinkPHP 和 Redis 的 高 并 发 微 信 公 众 号 开 发 的 研 究 与 实 现 [J]. 计 算 机 应 用 与 软 件.2019,36(02):108-112.

參考文獻

相關文件

如系统发现电子表格 C 中有任何并未更新或核实的资料,会在画面上方发出未能递交电子表格的

 中国的高速铁路,是目前世界上最长、以及最快的高 速铁路系统 。现已建成四条横贯东西和四条纵贯南 北的高铁线路

p 先导化合物的优化( Lead Optimization)的 目的是针对先导化合物存在的一些缺陷,进

[r]

内蒙古大草原沙化退化,自然因素也好,人为因素也罢,最

业技术”模块是在“技术与设计 1” “技术与设计 2”必修模块学完之后的一 个选修模块,它包括“绿色食品” “种质资源的保护和引进” “无土栽培” “营 养与饲料”

2.1 教育局于 2016 年首次设立资优教育基金(下称基金),至今共向基金注资 16 亿元。基 金的投资收入除用作优化香港资优教育学苑 2 的服务外,亦提供资源以落实资优教育 咨询委员会

答 4: 现时大部分中小学均已设置固定旗杆。若未设置旗杆的学校应 尽可能在合适位置设置固定旗杆。学校如因环境或校舍设施限