APP下载

基于Node.js技术的在线测试系统设计方案

2023-10-24李淑玲朱彤

科技资讯 2023年19期
关键词:题库选择题页面

李淑玲 朱彤

(1.西安欧亚学院 陕西 西安 710065; 2.西安中兴新软件有限责任公司陕西 西安 710000)

随着我国教育体系的不断完善,各个高校的教学形式也变得多种多样并划分成了多个环节,如理论教学、实践教学、教学评测、教学答疑等。其中,教学评测是衡量学生每个阶段对知识的掌握程度、教师教学质量的重要手段[1]。该系统能实现教师与教师之间题库共享,改善教学评测的质量,具有试题、试卷管理能力,试卷能够得到有效的保存与反复利用。该系统具有自动判分和人工判分两个功能,自动判分下,教师能够第一时间得到考试反馈,并利用该系统的成绩分析功能对此次考试结果进行分析,保证考试的公平、公正的同时提高了工作效率。

1 需求分析

1.1 系统功能需求分析

系统的功能要求在RESTful 架构的基础上采用前后端分离的方式开发在线测试系统[2],系统界面美观、便于用户操作。运用Node.js 和MongoDB 技术应对可能遇到的高并发情况[3-4]。具体功能需求分析如下。

1.1.1 学生端

学生可以通过前台注册账号,并在登录后对个人信息进行修改、上传头像等。在考试规定时间段内参加自己分院、专业、班级的在线考试,亦可参加在线练习。答题后可以在公布成绩时间之后查看到该场考试自己的得分。超过考试时间或者已经参加过某场考试,将不能再次参加此场考试。

1.1.2 教师端

教师可以通过后台登录系统,对个人信息进行修改,通过后台对题库、题目、试卷、考试进行增删改查。系统实现选择题自动判分,教师可以通过后台对学生试卷选择题部分进行复查,对学生试卷简答题部分可以进行人工评阅。对于每一场在线考试或者在线练习,后台都可以进行成绩统计分析,将统计后的柱状图和饼状图呈现在教师的面前。超级管理员可以增加教师的数量并分配教师管理权限,教师账号仅由超级管理员分配,不支持自行注册。

1.2 可行性分析

该系统是在RESTful 架构的基础上采用前后端分离的方式进行开发。前端负责页面数据展示,请求后端数据[4]。后端负责接收前端请求,处理业务逻辑。该系统模式为B/S 模式,只需要一个浏览器就可以完成一系列操作,很大程度上节省了使用成本。

1.3 人员角色、功能和权限

在线考试系统角色、权限需求具体如表1所示。

2 系统设计

2.1 系统架构

该系统采用RESTful 架构,Server 统一提供一套RESTful API、web+ios+android 作为公共调用的API,各个客户端都采用自己比较成熟的前端框架来帮开发者事半功倍[5-6]。

Server 提供的RESTful API 中,URL 中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。本系统的API定义如表2所示。

表2 API表

表3 考试表

用HTTP协议里的动词来实现资源的添加、修改、删除等操作。即通过HTTP 动词来实现资源的状态扭转:GET用来获取资源;POST用来新建资源(也可以用于更新资源);PUT用来更新资源;Delete用来删除资源。

2.2 系统功能

在线测试系统需学生端和教师端两个模块共同实现。

学生端实现注册、登录、修改个人信息、参加在线练习、参加在线考试和查看考试成绩等功能。

教师端实现对题库、题目、试卷、考试的管理,包括基本的增删改的操作。不同的教师之间可以查看彼此创建的题库和题目,但是只能对自己创建的题库和题目进行增删改操作。教师端可用功能详见图1。

图1 教师端功能图

2.3 数据库设计

本系统采用的是MongoDB 数据库,是面向文档的数据库。相对于关系型数据库,其有丰富的数据模型、容易扩展、能够存储Json格式数据等诸多优势。

该在线答题系统需要建立8 张表,分别是用户表(user)、题库表(Question Bank)、选择题表(Select Question)、简答题表(Short Answer Question)、试卷表(Exam Paper)、考试表(Exam)、成绩表(Exam Score)、学生答案表(Student Exam Answer)。由于MongoDB是非关系型数据库,所以向数据库存储数据无须提前建表,数据对象都以json的形式存储,以考试表为例进行说明表的结构。

3 系统实现

3.1 学生端页面

由于该系统采用的RESTful 架构,因此所有的客户端请求都属于对资源的操作。

当用户填写完账号、密码点击登录后,相当于客户端对Server 中用户session 资源的请求,当Server 返回201 状态码时代表登录成功,400 或401 状态码则代表请求资源失败,即登录失败。

3.1.1 首页页面

该页面由顶部导航栏、首页模块、底部版权信息组成。顶部导航栏由首页、试题练习、在线考试和个人中心4个导航项组成。点击不同的导航项系统将跳转到相对应的页面。用户登录成功后导航栏右侧会显示登录用户的姓名和退出按钮。

3.1.2 在线测试页面

该页面由考试列表组成,列表只会显示与登录用户所在分院、专业和班级相同的考试,由考试名称、开始时间、结束时间和操作组成。如果当前时间超过考试结束时间,该场考试的操作栏将显示已过期的图标,用户不能参加这场考试。

点击参加考试按钮,如果当前系统时间不在考试时间段内,系统将弹出提示信息:“不在考试时间段内,不能参加考试。”如果考试次数超过考试规定参加次数,系统将弹出提示。例如:教师设置某场考试只能参加一次,当用户参加过这场考试后再次点击参加考试,系统将弹出提示:“您已经参加过1 次该考试,这场考试只允许参加一次。”

3.2 教师端

教师登录界面与学生端登录界面风格基本一致,登录成功后进入教师首页,首页由左侧菜单栏和右侧主页面组成。右侧会展示登录教师的姓名和头像,首页默认为试题管理页面,主页面显示的是题库列表。

3.2.1 试题管理页面

试题管理页面可以修改该题库的名称,可以新增选择题和简答题。教师只对自己添加的题库和题目有修改和删除权限,其他教师添加的题库和题目只有只读权限。

点击新增选择题按钮,系统跳转到选择题添加页面。点击查看按钮,系统显示题目详细信息。

试卷管理页面只会显示自己创建的试卷,对试卷可以进行查看、新增和删除操作。点击新增,系统进入到新增页面,可以点击预览题库,从而新增选择题和填空题。点击查看,系统进入试卷详情页,可以对试卷基本信息进行修改操作。点击“预览题库”,系统将弹出题库列表。

3.2.2 考试管理页面

在此页面可以看到包含所有教师创建的考试列表,但只有对于自己创建的考试才有修改和删除权限。列表呈现考试名称、考试类型、状态、发布时间、所属分院、专业、班级和操作信息。

成绩分析页面首先会展示一个考试列表,供教师选择要分析的考试,点击分析按钮,系统将自动统计每个分数段成绩的人数,并以柱状图和饼状图的形式展示出来。

4 系统测试

为了提前预防系统bug 的出现与及时修复,系统测试是一个重要的环节。通过系统测试可以及时发现软件在使用过程中会出现的问题,便于及时修复和完善,对软件质量起着至关重要的作用。

4.1 系统后台API测试

以注册为例,编写后台API单元测试代码,命令行运行jasmine。

如果测试通过时,命令行将显示一个绿点,并提示通过测试的数量:“1 spec”表示通过的测试数量,“1 failure”表示未通过的测试数量。未通过时,命令行将显示一个红色“F”,以及错误信息。

4.2 系统功能模块测试

针对在线答题系统中的各功能模块进行单元测试,对比测试结果是否达到预期的结果,如果出现bug应及时修复和完善。每个功能模块采用功能测试用例进行测试,以考试评阅功能测试用例进行说明,如表4、表5所示。

表4 考试评阅功能测试用例

表5 考试评阅功能测试结果

5 结语

本系统遵循RESTful API的设计,后端提供数据接口,前端采用异步的形式请求后端资源,采用 Node.js和MongoDB 技术配合React 前端框架进行开发。学生端完成了登录、注册、修改个人信息、参加考试和查看成绩的功能,教师端完成了对题库、题目、试卷、考试的管理,并且可以选择系统自动阅卷或者人工阅卷,系统将对每场考试学生的成绩进行统计,统计结果将以柱状图和饼状图的形式呈现。经过一段时间运行,系统功能基本达到了设计目的,运行稳定,能够满足学生与教师的考试需求。当然,系统还有很多地方需要进一步完善,如可以尝试React与Redux配合、Redux负责管理逻辑状态、React负责页面渲染等。

猜你喜欢

题库选择题页面
刷新生活的页面
单项选择题狂练
“勾股定理”优题库
数列选择题精选精练
“轴对称”优题库
例说速解选择题的几种有效方法
“轴对称”优题库
“整式的乘法与因式分解”优题库
十种妙招握在手 破解选择题无忧
网站结构在SEO中的研究与应用