(一)基于Django的人脸识别在线考试系统(原创)

系统功能性需求分析

系统的功能需求可以说是本课题反作弊自动组卷系统具备的所有功能,由于系统的全部功能都是为了考试而设置的,所以这套系统主要针对三个方面,第一个是系统管理员,第二个是课程老师,第三个是系统主要用户——学生,因此本在线考试系统将以这三种用户身份进行具体的设计所需要的功能。同时,本系统还应该具备一定的反作弊能力,并根据实际情况和技术支撑来设计反作弊模块。对此下面将以三种用户身份具体对每种身份所需要的功能和如何反作弊进行功能性的需求分析。

管理员角度分析

管理员对于系统来说应该是最高的存在,拥有在最高的权限,对应的管理员的功能需求图3.1所示,具体有以下功能需求。
(1) 登录注册模块:每一个用户只有登录后才能使用系统的基本功能。用户按规定在登录页面填写账号、密码和验证码,点击登录后,后台会自动校验用户的合法性和权限,如果输入信息错误,返回错误信息,如果输入正确,则跳转至相关页面并显示权限内的所有功能。如果没有账号,可以在登录界面上点击“注册”,新注册用户的身份都是学生身份,如果你要当老师,就必须先向系统管理员申请。
(2) 用户管理:管理员登陆账号后,可以添加、删除、修改用户的账号,还能通过点击用户状态,一键封禁用户账号。如果用户数量过多,要查询用户可以在搜索栏对用户姓名进行查询,同时也可以对用户的状态进行改动,比如某位老师离职时可以修改其状态使其无法登陆系统。
(3) 课程管理:管理员可以对课程进行添加、修改、删除,最重要的就是可以指定某一老师为课程的所有人,而指定的老师则可以在指定的课程中享有一定的权限,这对系统的管理和老师的工作都有很大的帮助。
(4) 题库管理:可以管理所有题库,对试题进行添加、修改和删除,同时也能查看试题的详情信息,当要具体找某一道题目时,可以通过搜索题目的题干进行搜索,也可以通过分类进行筛查。
(5) 试卷管理:考卷可以添加、修改、删除,可以查看所有考卷的详细资料,同时还可以在试卷管理页面进行检索,方便管理员在大量考卷中快速查找自己需要的考卷。
(6) 试卷详情查看:管理员具有查看所有试卷的权限,能点击详情对试卷进行详细查看,查看试卷中含有哪些题目,可以用于其他教学环节。
(7) 考试记录查看:一旦有人提交试卷,系统就会自动生成一条记录,上面有考生的基本信息、试卷的基本信息、试卷的分数,还有考生的作答详情,管理员可以看到考生的成绩和试卷的详细信息。
(8) 个人信息:登陆账号后,可以对自己的一些基本资料进行修改,包括手机号、邮箱号、 QQ号、性别、生日、个人资料等等。还能上传图片,用于考试时人脸识别。
在这里插入图片描述

教师角度分析

教师用户必须要有该有的权限和功能,这样才能保证在线考试系统的正常运行。图3.2是教师功能需求图。教师用户对应功能如下。
(1)试卷管理:考卷可以添加、修改、删除,可以查看所有考卷的详细资料,同时还可以在试卷管理页面进行检索,方便教师在大量考卷中快速查找自己需要的考卷。
(2)题库管理:可以管理所有题库,对试题进行添加、修改和删除,同时也能查看试题的详情信息,当要具体找某一道题目时,可以通过搜索题目的题干进行搜索,也可以通过分类进行筛查。
(3)考试记录查看:一旦有人提交试卷,系统就会自动生成一条记录,上面有考生的基本信息、试卷的基本信息、试卷的分数,还有考生的作答详情,教师可以看到考生的成绩和试卷的详细信息。
(4)学生成绩查看:教师能查看自己所管理的班级内的学生的全部考试记录和试卷作答详情。
(5)学生管理:教师能看到自己所管理的班级内的全部的学生的个人信息,可以通过这些信息联系学生进行交流沟通,还能将学生移出课程,增强了师生的交流沟通。
(6)试卷详情查看:教师具有查看所有试卷的权限,能点击详情对试卷进行详细查看,查看试卷中含有哪些题目,可以用于其他教学环节。
(7)人脸识别记录查看:当某一试卷开启反作弊模式中的人脸识别模式时,考生在考试时会显示自己的实时情况,并且会随机进行截图,与个人信息中的图片进行人脸识别,同时会自动生成一个人脸识别的记录,教师能自由查看人脸识别记录,获取当时学生的实际情况和识别结果。
(8)个人信息:登陆账号后,可以对自己的一些基本资料进行修改,包括手机号、邮箱号、 QQ号、性别、生日、个人资料等等。还能上传图片,用于考试时人脸识别。
在这里插入图片描述

学生角度分析

学生作为考试的参与者,将是使用在线考试系统频率最多的群体,让学生从传统考试形式中解脱,也是在线考试系统设计的初衷。图3.3是学生功能需求图,从学生角度来看,有以下数个功能。
(1)在线考试功能:在线考试系统必须要有强大的在线考试功能,要保证在考试时系统安全稳定,试卷清晰明了,答题时能在答题区舒服的书写答案,考试倒计时功能要正确运行精确的倒计时,并在倒计时结束时,实现自动收卷功能,若学生还没有提交试卷,便要在倒计时完成的同时强制自动提交学生的答题卷,收取试卷后评出成绩。
(2)考试记录查看:一旦有人提交试卷,系统就会自动生成一条记录,上面有考生的基本信息、试卷的基本信息、试卷的分数,还有考生的作答详情,学生只能看到自己的试卷的详细信息。
(3)课程学习:学生可以在课程列表界面浏览自己感兴趣的课程,并可以自由加入课程,学习课程中的内容。
(4)个人信息:登陆账号后,可以对自己的一些基本资料进行修改,包括手机号、邮箱号、 QQ号、性别、生日、个人资料等等。还能上传图片,用于考试时人脸识别。
在这里插入图片描述

反作弊模块分析

反作弊模块是本系统十分重要的模块,能够大大提升考试的公平性。这样才能保证在线考试系统的正常运行。图3.4是反作弊功能需求图。模块对应功能如下:
(1)题目乱序:教师在创建试卷时,可以选择开启题目乱序。开启后,当考生点击试卷进行考试时,后台会将试卷题目随机打乱一次,每一次打乱都是随机的,使得学生题目顺序不同,达到一定的反作弊效果。
(2)人脸识别:教师在创建试卷时,可以选择开启人脸识别。开启后,考生在考试时会显示自己的实时情况,并且会随机进行截图,与个人信息中的图片进行人脸识别,同时会自动生成一个人脸识别的记录,记录包含当时学生的实际情况和人脸识别结果。

图3.4 反作弊功能图

3.3 系统非功能性需求分析
对于非功能性需求就是在线考试系统要满足保持系统正常运转的所有指标,要达到指标所规定的标准,比如要稳定、要安全、要系统响应快和高并发等等,接下来就分析系统有哪些指标,达到这些指标规范的标准需要哪些条件。
(1)系统的界面要清晰简洁,用户操作系统不能太繁琐,特别是使用系统尽量要和人们在传统考试形式下养成的习惯保持一致,这要是一个符合所有群体使用的在线考试系统,不能像软件开发工具那样太专业,不然会出现使用在线考试系统前还得教用户怎么操作使用系统,要实现任何群体拿到就能马上上手使用,总之系统要和用户保持和谐,拥有强大的适应性。
(2)系统设计的各个功能要和用户的需求不说完完全全的吻合,但也一定要大体上满足用户的工作需求,所以无论系统最终能多少复杂的功能,他的所有功能都得是有强大的实用性。
(3)在设计系统架构时,要和系统后端的业务逻辑完美对接契合,所以合理的设计会让系统更加稳定,具有较高的健壮性,毕竟服务端的业务逻辑支撑的各个功能是否可靠。
(4)众所周知,系统正式开发出来用来使用,不可能一直使用系统的第一个版本,系统必须适应用户需求的变化,系统要能跟着用户的需求变化而变化,所以这就意味着系统将会隔三岔五的会更新升级,更新升级必然会改动先前的代码设计,甚至肯还会改变之前采用的开发技术,为了升级更新能顺利快速高效的进行,系统本身就必须有高的可扩展性,最好系统的各个功能模块保持高度的独立,模块之间的联系用不同的功能接口,这样就可以避免每一代更新又是一次从头再来的开发,做到哪个地方要更新只更新那个地方,其他地方保持不变,实现更新省时省力。
(5)在开发系统时,敲写的代码要规范,做到清晰明了,每个函数的命名要合理易懂,尽量做到编写的每一句代码都写上对应注释,方便自己、他人在日后还能瞬间看明白,这也有利于完成系统将来的升级更新工作。
(6)系统在保护用户隐私方面必须做到绝不泄露,所以系统要有优良的安全性,安全保障系统也是设计的重中之重,因此需要采用措施来确保系统的安全性。可以采用采用高规格的加密方式,进而来保护隐私等数据信息,然后当系统由于故障或者发生的某些事故时,要能及时保护数据,若出现数据丢失要能够做到自动恢复。
(7)系统每日的运行产生的花销等经济问题也要很好控制,同时在兼容性上要实现灵活,系统要可以兼容当前市面上所有种类浏览器,可以实现在所有浏览器上正常运行,若只适应某款浏览器,那用户要使用还安装一个自己用的不是很习惯得浏览器,这可能会给用户带来不适应。
(8)系统使用运行要流畅稳定,响应速度要快,要能经受的起当访问系统的用户很多时尽量不卡顿,让用户有良好的体验。

系统设计与实现

系统功能架构

在做详细设计之前我们要完成对系统的整体的设计规划,根据需求分析,具体确定每个功能模块,然后对每个功能模块依次去详细的实现。本系统将管理员、教会和学生三类用户角度确定每一个功能模块,系统总体架构图如图4.1所示:

系统功能架构图

通过系统功能架构可知管理员有用户登录模块、用户管理模块、试卷管理模块、课程管理模块、题库管理模块、考试记录查看模块;教师有学生管理模块、试卷管理模块、 试题库管理模块、学生成绩查看模块、人脸识别记录查看模块:学生有学生课程学习模块、在线考试模块、成绩查看模块、试卷详情查看模块;反作弊模块有题目乱序模块,人脸识别模块。最终我们将以三种用户类型所细分的各个功能模块和反作弊模块进行设计实现,各个功能模块如下:
(1)管理员用户登录模块:登录后会通过session信息对用户进行身份校验,不同身份的用户进入后会显示不同的功能。
(2)管理员用户管理模块:管理教师用户和学生用户,可以分别对这两类用户进行查询、增加、修改和删除,超级管理员也可以增加和删除普通管理员。
(3)管理员试卷管理模块:可以对已有的试卷进行查询、修改、删除和预览试卷详情,对手动组卷模式的试卷进行添加题目。
(4)管理员课程管理模块:管理员可以对课程进行添加、修改、删除,最重要的就是可以指定某一老师为课程的所有人,而指定的老师则可以在指定的课程中享有一定的权限,还能设计课程的章节。
(5)管理员题库管理模块:可以管理所有题库,对试题进行添加、修改和删除,同时也能查看试题的详情信息,当要具体找某一道题目时,可以通过搜索题目的题干进行搜索,也可以通过分类进行筛查。
(6)管理员考试记录查看模块:一旦有人提交试卷,系统就会自动生成一条记录,上面有考生的基本信息、试卷的基本信息、试卷的分数,还有考生的作答详情,管理员可以看到考生的成绩和试卷的详细信息。
(7)教师学生管理模块:对课程内的学生进行删除和查看。
(8)教师试卷管理模块:可以预览当前已有试卷的详情,还可以进行查询、修改、删除,对于手动组卷的试卷,可以进入改试卷的组卷页面进行题目的添加。
(9)教师试题库管理模块:可以管理所有题库,对试题进行添加、修改和删除,同时也能查看试题的详情信息,当要具体找某一道题目时,可以通过搜索题目的题干进行搜索,也可以通过分类进行筛查。
(10)教师学生成绩查看模块:查看管理课程内的学生的考试记录和作答详情,查看个人组卷的试卷的考试详情。
(11)教师人脸识别记录查看模块:查看组卷的试题被用户作答时的视频监考图片和人脸识别算法判断的结果。
(12)学生课程学习模块:学生可以在课程列表界面浏览自己感兴趣的课程,并可以自由加入课程,学习课程中的内容。
(13)学生在线考试模块:考试可自主选取试卷进行在线考试,作答后可自行提交试卷,若考试时间到了,便会自动提交,提交后系统会自动阅卷,并生成考试记录和人脸识别记录。
(14)学生成绩查看模块:学生可自主查看自己的考试成绩和考试记录。
(15)学生试卷详情查看模块:学生提交试卷答案后能查看自己的作答详情和标准答案。
(16)题目乱序模块:开启后,当考生点击试卷进行考试时,后台会将试卷题目随机打乱一次,每一次打乱都是随机的,使得学生题目顺序不同,达到一定的反作弊效果。
(17)考生在考试时会显示自己的实时情况,并且会随机进行截图,与个人信息中的图片进行人脸识别,同时会自动生成一个人脸识别的记录,记录包含当时学生的实际情况和人脸识别结果。
(18)数据库模块:为系统设计数据库,创建所要的各类表,用于存储数据。

系统总体测试

1.用户登录模块的实现

用户登录功能是为了分辨出用户的身份以便用户更准确完整的服务,本系统的登录功能有验证码验证,防止被不法分子暴力破解密码,另外后台有使用了MD5加密,可以进一步提高系统用户的安全性,通过该登录功能可以对登录的用户进行鉴权,如果用户是管理员,则可以使用该系统的全部功能,包括个人信息管理、考试记录查询、题库管理、试卷管理、用户管理、课程管理、试题列表查询和提交记录的查询;如果用户是老师,则可以进行个人信息管理、自己科目的题库管理、发布考试和对学生的成绩管理;如果用户是学生,则可以进行在线考试、个人信息管理和查看自己的考试情况用户登录功能涉及的数据表用户信息数据表,对应的templates文件为login.html。

登录页面:

图5.1 系统登录界面

用户输入出错登录失败时,系统提示效果图如下所示。

图5.2 输入不完整提示

图5.3 用户名、密码和验证码错误提示
在这里插入图片描述

用户登录成功效果图以超级管理员为例,如图5.5所示。
图5.4 用户登录成功效果

2.个人信息管理模块的实现

修改用户个人信息是用户的基本权利,该模块主要实现的功能可以分为修改头像、修改个人信息等模块。用户注册时必须填写用户名及密码,当用户忘记密码时,系统会将密码重置为一个简单的密码,所以出于数据的安全性以及用户的体验考虑,还需要添加一个修改密码的功能。同时由于注册时只需要填写用户名和密码,用户的详细信息并不完整,所以再拓展一个修改个人信息的功能,可以对个人信息进行完善和补充。同时在考试人脸识别时,头像是人脸识别的依据。其功能如图5.5所示:

图5.5 个人信息编辑

3.在线考试的实现

在线考试是本系统的核心功能,其余的所有功能都是围绕着这一个功能实现的,在考试前,学生可以通过上方菜单-考试-试题列表查看老师发布的考试列表和考试开始和结束时间,如图5.6 所示
图5.6 考试列表页面
进入考试后,便开始计时,如图5.7 所示,在右上角可以清楚的看到考试剩余时间,方便考生掌握自己的答题节奏,右边还有菜单栏可以看到本次考试有题目类型和各类型题目的数量,点击题目还可以直接跳转定位到所选题目,方便考生修改答案。如果时间过完考生还未交卷系统会让考试结束并强制考生停止作答并将考生已答题目传回后台进行判卷,未回答的题目一律判错。
图5.7 考试页面

4.反作弊的实现(题目乱序,人脸识别)

题目乱序功能和人脸识别功能是本系统防作弊的核心体现。开启题目乱序功能后,在通过Django模板将题目传到前端之前会对题目进行随机打乱,由于每一次的打乱都是随机的,所以每个考生看到的试卷都是自动随机的,同一套题目会有很多总打乱顺序,但是考生提交试卷后,通过生成的考试记录查看自己的考试详情时,题目的顺序都是一样的,这样有助于后期老师的讲解。开启人脸识别功能后,考生在进入考试页面后会显示一个摄像头,通过摄像头会定时对屏幕前拍照取样,然后通过Ajax传入后端进行保存,保存后会调用人脸识别的代码进行人脸识别,识别完成之后会生成一个人脸识别的日志,以供老师后续对学生考试是否作弊提供依据。
图5.8 同一试卷不同用户不一样
图5.9 开启人脸识别
图5.10 人脸识别日志

5.考试记录模块的实现

考试记录是对学生考试结果的记录,当学生完成一次考试后,系统会将本次考试信息记录并传会数据库保存。管理员和老师可以查看学生的考试记录,而学生只能查看自己的考试记录。学习记录可以通过查询来快速找到要找的学生考试记录。考试记录列表如图5.10 所示

图5.10 考试记录页面

考试详细记录如图5.11 所示,通过考试记录可以清楚的看到考生回答的问题,还可以看到答案和解析,使考生查询成绩时候能更加了解自己对哪些知识掌握不足,哪些地方还可以加强改进。

图5.11 考试详情页面

6.考试管理的实现

用户为管理员或者老师可以对试卷进行管理,可以发布新的考试,即添加试卷,也可以查询已经发布的试卷,或者对未发布的试卷进行预览或者修改等操作,也可以对试卷进行删除,还可以选择打开或关闭反作弊功能,同时为了方便查找发布的试卷,可以通过搜索功能快速的查找到需要查找的试卷。考试管理界面如图5.12 所示:

图5.12 试卷管理页

在预览界面可以看到系统所出的题目,但是无法作答提交,在编辑界面可以编辑已经发布但还未开始考试的试卷,由于添加试卷和编辑试卷大部分功能重复,所以编辑界面和添加试卷界面相同,可以修改题目分值或者题目数量等。预览和编辑界面(添加试卷)分别如图5.13 和图5.14 所示:

图5.13 试卷预览页

图5.14 试卷编辑页

7.学生管理的实现

无论是管理员还是教师,都能实现对学生的信息管理包括增加、删除、修改、查询和详细查看。这个功能对于系统非常关键,特别是增加和删除具有唯一性,整个系统要增加新的教师或学生用户都必须在这里添加,学生不再是系统的用户时,也将在这将其从系统删除。学生管理界面如图5.15 :

图5.15 学生管理页

在学习管理功能模块中还可以查看学生考试信息,对学生考试情况进行掌握,学生成绩管理如图5.16 所示

图5.16 成绩管理页

8.用户管理的实现

管理员能完成对教师、学生用户的信息管理,包括增加、删除、修改、查询和详细查看。这个功能对于系统非常关键,特别是增加和删除具有唯一性,整个系统要增加新的教师或学生用户都必须在这里添加,当教师或学生不再是系统的用户时,也将在这将其从系统删除。教师和学生不能这么操作,也是保障系统数据安全和防止教师或学生用户不小心把身份注销连带原先数据的丢失。用户管理界面如图5.17所示

图5.17 用户管理页

9.课程管理的实现

在本系统管理员可以进行课程管理,对已有的课程信息进行查看和修改,也可以自行新建课程,对课程的老师进行任命和设置课程详细信息。课程管理界面如图5.18 所示:

图5.18 课程管理页

添加课程或编辑课程信息界面如下图所示:

图5.19 课程编辑页

10.题库管理的实现

管理员可以对题库进行管理对题库内的题目进行查看和编辑,可以按照题目类型进行查看,也可以用搜索功能搜索题库内的相应题目。题库管理界面如图5. 20:

图5.20 题库管理页

题目编辑界面如图5. 21所示,在编辑界面可以对题目的题干,正确答案、干扰项和答案解析等进行编辑

图5.21 题目编辑页

11.课程学习的实现

在本系统内学生可以学习自己想学习的课程,并对该课程发布的考试进行在线考试测验,课程学习界面如图5.22所示

图5.22 课程列表页

点击进入课程可以查看该课程的详细信息和进行课程的在线学习,也可以对课程进行评价,课程学习界面如图5.23 和图5.24 所示

图5.23 课程详情页

图5.24 课程用户管理页

当课程所属教师点击进入课程详情后可以对课程的章节进行添加和修改,教师进入课程详情页的课程章节部分界面如图5.25所示

图5.25 教师章节管理页

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值