1、SCIENCE&TECHNOLOGY INFORMATION科技资讯 2023 NO.19 信 息 与 智 能科技资讯SCIENCE&TECHNOLOGY INFORMATION基于Node.js技术的在线测试系统设计方案李淑玲 1 朱彤 2(1.西安欧亚学院 陕西西安 710065;2.西安中兴新软件有限责任公司 陕西西安 710000)摘要:随着网络技术在教育领域的不断发展,通过网络手段实现在线测试环节使知识的测量变得更准确、客观,大大提高了学习效果评价效率。该文描述并总结了构建一个基于 RESTful架构的Node.js+MongoDB技术的在线测试系统的设计和实现方法。该系统可以实现多
2、用户操作、支持快速高并发数据处理,并能够评估学习者掌握知识点的准确程度。经过测试,该系统运行稳定、操作友好、试题难易程度合理、计算机自动评阅结果准确,因此可以在学习教学环节中有效提升学习效果。关键词:在线测试 RESTful Node.js MongoDB中图分类号:TM933文献标识码:A 文章编号:1672-3791(2023)19-0035-04The Design Scheme of the Online Test System Based on Node.js TechnologyLI Shuling1 ZHU Tong2(1.Xian Eurasian University,Xia
3、n,Shaanxi Province,710065 China;2.Xian Zhongxing New Software Co.,Ltd.,Xian,Shaanxi Province,710000 China)Abstract:With the continuous development of network technology in the field of education,the online testing link is realized through network means,which makes the measurement of knowledge more a
4、ccurate and objective and greatly improves the timeliness and efficiency of learning effect evaluation.This paper describes and summarizes the design and implementation methods of building an online testing system based on Node.js and MongoDB technologies of RESTful architecture.The system can reali
5、ze multi-user operations,support rapid high-concurrency data processing,and evaluate the accuracy of learners mastery of knowledge points.After testing,the system is stable in operation,friendly in operation,reasonable in the difficulty of test questions and accurate in automatic computer grading re
6、sults,so it can effectively improve learning effect in the learning and teaching link.Key Words:Online testing;RESTful;Node.js;MongoDB随着我国教育体系的不断完善,各个高校的教学 形式也变得多种多样并划分成了多个环节,如理论教学、实践教学、教学评测、教学答疑等。其中,教学评测是衡量学生每个阶段对知识的掌握程度、教师教学质量的重要手段1。该系统能实现教师与教师之间题库共享,改善教学评测的质量,具有试题、试卷管理能力,试卷能够得到有效的保存与反复利用。该系统具有自动判
7、分和人工判分两个功能,自动判分下,教师能够第一时间得到考试反馈,并利用该系统的成绩分析功能对此次考试结果进行分析,保证考试的公平、公正的同时提高了工作效率。1 需求分析1.1 系统功能需求分析系统的功能要求在RESTful架构的基础上采用前后端分离的方式开发在线测试系统2,系统界面美观、便于用户操作。运用Node.js和MongoDB 技术应对可DOI:10.16661/ki.1672-3791.2303-5042-5997基金项目:2021年陕西省计算机教育学会教学改革项目(项目编号:21-18)。作者简介:李淑玲(1976),女,硕士,副教授,研究方向为计算机应用、数据挖掘与分析、应用统计
8、。35SCIENCE&TECHNOLOGY INFORMATION科技资讯信 息 与 智 能 2023 NO.19 SCIENCE&TECHNOLOGY INFORMATION科技资讯能遇到的高并发情况3-4。具体功能需求分析如下。1.1.1 学生端学生可以通过前台注册账号,并在登录后对个人信息进行修改、上传头像等。在考试规定时间段内参加自己分院、专业、班级的在线考试,亦可参加在线练习。答题后可以在公布成绩时间之后查看到该场考试自己的得分。超过考试时间或者已经参加过某场考试,将不能再次参加此场考试。1.1.2 教师端教师可以通过后台登录系统,对个人信息进行修改,通过后台对题库、题目、试卷、考试
9、进行增删改查。系统实现选择题自动判分,教师可以通过后台对学生试卷选择题部分进行复查,对学生试卷简答题部分可以进行人工评阅。对于每一场在线考试或者在线练习,后台都可以进行成绩统计分析,将统计后的柱状图和饼状图呈现在教师的面前。超级管理员可以增加教师的数量并分配教师管理权限,教师账号仅由超级管理员分配,不支持自行注册。1.2 可行性分析该系统是在RESTful架构的基础上采用前后端分离的方式进行开发。前端负责页面数据展示,请求后端数据4。后端负责接收前端请求,处理业务逻辑。该系统模式为B/S模式,只需要一个浏览器就可以完成一系列操作,很大程度上节省了使用成本。1.3 人员角色、功能和权限在线考试系
10、统角色、权限需求具体如表1所示。2 系统设计2.1 系统架构该系统采用 RESTful 架构,Server 统一提供一套 RESTful API、web+ios+android作为公共调用的API,各个客户端都采用自己比较成熟的前端框架来帮开发者事半功倍5-6。Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。本系统的API定义如表2所示。用HTTP协议里的动词来实现资源的添加、修改、删除等操作。即通过HTTP动词来实现资源的状态扭转:GET用来获取资源;POST用来新建资源(也可以用于更新资源);PUT
11、用来更新资源;Delete用来删除资源。2.2 系统功能在线测试系统需学生端和教师端两个模块共同实现。学生端实现注册、登录、修改个人信息、参加在线练习、参加在线考试和查看考试成绩等功能。教师端实现对题库、题目、试卷、考试的管理,包括基本的增删改的操作。不同的教师之间可以查看彼此创建的题库和题目,但是只能对自己创建的题库和题目进行增删改操作。教师端可用功能详见图1。2.3 数据库设计本系统采用的是MongoDB数据库,是面向文档的数据库。相对于关系型数据库,其有丰富的数据模型、表2 API表接口/api/users/api/sessions/api/personal/api/exams/api/
12、question/api/questionBank/api/score/api/papers/api/studentAnswer描述对用户进行操作对登录用户进行操作对用户个人信息进行操作对考试进行操作对试题进行操作对题库进行操作对成绩进行操作对试卷进行操作对学生答案进行操作表1 角色、权限对照表序号123角色管理员教师学生功能对题库、题目、试卷、考试、学生账号、教师账号进行管理可以查看所有人教师的题库、题目和考试信息,只能对自己创建的题库、题目、试卷和考试进行操作可以修改个人信息,参加考试,查看成绩权限具有所有信息的新增、修改、删除权限对自己创建的内容具有新增、修改和删除权限;对其他教师创建的
13、内容只有制度权限本人账户信息的修改权限,和成绩查询权限36SCIENCE&TECHNOLOGY INFORMATION科技资讯 2023 NO.19 信 息 与 智 能科技资讯SCIENCE&TECHNOLOGY INFORMATION容易扩展、能够存储Json格式数据等诸多优势。该在线答题系统需要建立8张表,分别是用户表(user)、题库表(Question Bank)、选择题表(Select Question)、简答题表(Short Answer Question)、试卷表(Exam Paper)、考试表(Exam)、成绩表(Exam Score)、学生答案表(Student Exam A
14、nswer)。由于MongoDB是非关系型数据库,所以向数据库存储数据无须提前建表,数据对象都以json的形式存储,以考试表为例进行说明表的结构。3 系统实现3.1 学生端页面由于该系统采用的RESTful架构,因此所有的客户端请求都属于对资源的操作。当用户填写完账号、密码点击登录后,相当于客户端对Server中用户session资源的请求,当Server返回201状态码时代表登录成功,400或401状态码则代表请求资源失败,即登录失败。3.1.1 首页页面该页面由顶部导航栏、首页模块、底部版权信息组成。顶部导航栏由首页、试题练习、在线考试和个人中心4个导航项组成。点击不同的导航项系统将跳转到
15、相对应的页面。用户登录成功后导航栏右侧会显示登录用户的姓名和退出按钮。3.1.2 在线测试页面该页面由考试列表组成,列表只会显示与登录用户所在分院、专业和班级相同的考试,由考试名称、开始时间、结束时间和操作组成。如果当前时间超过考试结束时间,该场考试的操作栏将显示已过期的图标,用户不能参加这场考试。点击参加考试按钮,如果当前系统时间不在考试时间段内,系统将弹出提示信息:“不在考试时间段内,不能参加考试。”如果考试次数超过考试规定参加次数,系统将弹出提示。例如:教师设置某场考试只能参加一次,当用户参加过这场考试后再次点击参加考试,系统将弹出提示:“您已经参加过1次该考试,这场考试只允许参加一次。
16、”3.2 教师端教师登录界面与学生端登录界面风格基本一致,登录成功后进入教师首页,首页由左侧菜单栏和右侧主页面组成。右侧会展示登录教师的姓名和头像,首页默认为试题管理页面,主页面显示的是题库列表。3.2.1 试题管理页面试题管理页面可以修改该题库的名称,可以新增选择题和简答题。教师只对自己添加的题库和题目有修改和删除权限,其他教师添加的题库和题目只有只表3 考试表字段_idexamNameexamDescriptionexamTypecreateDateuserIdcreateUserNamejoinNumbeginTimeendTimeexamTimeexamStatebranchmajor
17、classroomshowScoreDateexamPaper数据类型Object IDStringStringIntegerDateObject IDStringIntegerDateDateStringIntegerStringStringStringDateObject约束主键外键描述考试编号考试名称考试介绍考试类型创建时间创建人Id创建人姓名参考次数开始时间结束时间考试时长考试状态所属分院所属专业所属班级成绩发布时间试卷图1 教师端功能图37SCIENCE&TECHNOLOGY INFORMATION科技资讯信 息 与 智 能 2023 NO.19 SCIENCE&TECHNOLOGY
18、 INFORMATION科技资讯读权限。点击新增选择题按钮,系统跳转到选择题添加页面。点击查看按钮,系统显示题目详细信息。试卷管理页面只会显示自己创建的试卷,对试卷可以进行查看、新增和删除操作。点击新增,系统进入到新增页面,可以点击预览题库,从而新增选择题和填空题。点击查看,系统进入试卷详情页,可以对试卷基本信息进行修改操作。点击“预览题库”,系统将弹出题库列表。3.2.2 考试管理页面在此页面可以看到包含所有教师创建的考试列表,但只有对于自己创建的考试才有修改和删除权限。列表呈现考试名称、考试类型、状态、发布时间、所属分院、专业、班级和操作信息。成绩分析页面首先会展示一个考试列表,供教师选择
19、要分析的考试,点击分析按钮,系统将自动统计每个分数段成绩的人数,并以柱状图和饼状图的形式展示出来。4 系统测试为了提前预防系统bug的出现与及时修复,系统测试是一个重要的环节。通过系统测试可以及时发现软件在使用过程中会出现的问题,便于及时修复和完善,对软件质量起着至关重要的作用。4.1 系统后台API测试以注册为例,编写后台API单元测试代码,命令行运行jasmine。如果测试通过时,命令行将显示一个绿点,并提示通过测试的数量:“1 spec”表示通过的测试数量,“1 failure”表示未通过的测试数量。未通过时,命令行将显示一个红色“F”,以及错误信息。4.2 系统功能模块测试针对在线答题
20、系统中的各功能模块进行单元测试,对比测试结果是否达到预期的结果,如果出现bug应及时修复和完善。每个功能模块采用功能测试用例进行测试,以考试评阅功能测试用例进行说明,如表4、表5所示。5 结语本系统遵循RESTful API的设计,后端提供数据接口,前端采用异步的形式请求后端资源,采用 Node.js和MongoDB技术配合React前端框架进行开发。学生端完成了登录、注册、修改个人信息、参加考试和查看成绩的功能,教师端完成了对题库、题目、试卷、考试的管理,并且可以选择系统自动阅卷或者人工阅卷,系统将对每场考试学生的成绩进行统计,统计结果将以柱状图和饼状图的形式呈现。经过一段时间运行,系统功能
21、基本达到了设计目的,运行稳定,能够满足学生与教师的考试需求。当然,系统还有很多地方需要进一步完善,如可以尝试React与Redux配合、Redux负责管理逻辑状态、React负责页面渲染等。参考文献1 甄真,张秀梅.学生网课学习系统的开发与设计J.现代信息科技,2020,4(23):8-10,16.2 月影.JavaScript 王者归来M.北京:清华大学出版社,2021.3 姚筱娟.云平台下在线学习系统设计与实现D.兰州:兰州理工大学,2021.4 宋凯,李耸,杜焱.大学生在线互动学习系统研究J.科教导刊,2020(8):9-10.5 汤明璐,李万涛,王思媛,等.基于“互联网+”技术的大学生在线学习系统设计与开发实践J.大学教育,2021(5):173-176.6 曹俊捷.面向成人高校的自适应学习系统设计与实现D.北京:北京邮电大学,2020.表5 考试评阅功能测试结果输入/动作教师点击评阅某个学生的试卷,并给予简答题分数教师点击评阅某个学生的试卷,给予该学生简答题分数超出简答题满分分值期望的输出/显示系统弹出提示“成绩更新成功”,数据库中学生成绩更新系统弹出提示简答题满分是多少,不能超过该分数测试结果测试成功测试成功表4 考试评阅功能测试用例用例名称待测试模块用例目的前提条件考试评阅功能测试用例简答题评语页面测试教师是否能正常人工评阅简答题,并给予分数用户已经登录成功38