基于微信小程序的在线考试系统设计与实现

基于微信小程序的在线考试系统设计与实现

摘 要

微信小程序是一个受欢迎的应用程序平台,其月活跃用户数已超过1.2亿。它的应用场景越来越广泛,包括生活服务、电商购物、社交娱乐、教育培训、金融、医疗和旅游等行业。近两年,在线教育得到快速发展,并逐渐被越来越多的人接受。开发一款基于微信小程序的在线考试系统,可方便教师和学生进行在线考试和发布测验,提高学习效率和教学效率,也符合信息化教育的时代趋势。
在设计基于微信小程序的在线考试系统的过程中,使用了微信小程序开发工具、Pycharm等软件开发工具。本系统为前后端分离架构,小程序端采用了WXML、WXSS、WXS、JavaScript等微信小程序开发框架技术;服务器端采用了Python Django、Django Rest Framework框架。系统划分了考试模块、管理模块、个人中心三个功能模块。考试模块主要实现了参加考试、查看考试成绩、查看考试试卷等功能;管理模块主要实现了发布考试、创建考卷、查看考试结果、班级管理等功能;个人中心主要实现了查看个人信息、修改个人信息等功能。该系统的成功开发实现,对相关系统的开发具有一定借鉴意义。

第1章 引言

1.1 系统开发背景

微信小程序已经成为一个非常受欢迎的应用程序平台,截至2021年,微信小程序的月活跃用户数已经超过1.2亿。同时,微信小程序的应用场景也越来越广泛,不仅在生活服务、电商购物、社交娱乐、教育培训等领域得到广泛应用,还在金融、医疗、旅游等行业中得到了应用。微信小程序的开发者数量也在不断增加,截至2021年,已经有超过300万开发者注册了微信小程序开发者账号。微信小程序的开发工具也在不断升级,提供了更多的开发功能和工具,使得开发者可以更加方便地开发和发布微信小程序。总之,微信小程序已经成为一个非常重要的应用程序平台,未来还将继续得到广泛应用和发展。
新冠疫情的爆发,给全球教育带来了巨大的冲击。许多学校和教育机构被迫封校,学生们无法到校上课,这种情况下在线教育就成为了一种重要的教育方式。各个在线教育平台,为学生和教育机构提供了便利的在线教育服务。通过在线教育平台,学生可以在家里参加在线课程,与老师和同学进行互动交流。同时,教育机构也可以利用在线教育平台开发自己的在线课程,为学生提供更加灵活和多样化的学习体验。在新冠疫情期间,在线教育也得到了广泛应用。许多学校和教育机构利用在线教育平台开展在线教育,为学生提供了不间断的学习支持。同时,在线教育平台还可以为学生提供在线考试、作业提交等服务,保证了教育教学的正常进行。总之,新冠疫情加速了在线教育的发展,在线教育平台在其中扮演了重要的角色。未来,随着在线教育的不断深入和发展,在线教育平台也将继续发挥重要作用,为学生和教育机构提供更加便利和高效的教育服务。
本课题是以微信小程序框架为基础的在线考试系统的设计与实现,为用户提供便捷的在线考试服务,随考随用,多平台兼容。做到即时参与考试,便捷发布考试,快捷查询分数,随时查看试卷,复习错题于一体。

1.2 研究意义

基于微信小程序的在线考试系统将帮助高校老师更方便地安排在线考试,方便及时有效地检测教学效果。帮助教师分析教学成效,找出学生的学习薄弱点。便于高校教师做出针对性的解决方案,实现更加高效地教学。
通过该系统学生可以方便地参与在线考试,不用下载APP,点击微信小程序即可参与考试。不占用手机内存、即点即用。也方便学生整理错题,归纳知识点。同时学生不仅可以参加教师发布的考试,而且可以自定义考试,自主出题、自主测验,主动地检验自己的学习成果。
学校和部分社团组织也可以利用该系统,举办在线知识竞赛。如可以举办党史知识竞赛、技术规范测试、生产安全测试、消防知识测试等活动竞赛。参赛选手可以扫码参与竞赛,方便活动的举办与推广。

1.3 国内外研究现状

1.3.1 国外研究现状

目前,微信小程序主要在中国市场得到广泛应用和发展。其他国家的小程序发展现状相对较少,但也有一些国家开始尝试推广和使用小程序技术。例如,美国的Facebook和谷歌也开始推出自己的小程序平台,但目前还没有达到像微信小程序那样的普及程度。在欧洲,德国的Otto和英国的ASOS等电商公司也开始尝试使用小程序来提升用户体验。总的来说,小程序技术在全球范围内还处于发展初期,未来还有很大的发展空间。

1.3.2 国内研究现状

微信小程序在中国市场得到了广泛应用和发展,已经成为了人们生活中不可或缺的一部分。截至2021年6月,微信小程序的月活跃用户数已经超过1.3亿,涵盖了各个领域,包括电商、生活服务、教育、医疗等。在电商和生活服务领域,淘宝、京东、美团、饿了么等知名电商平台都推出了自己的小程序,以提供更加便捷的购物和服务体验。同时,小程序也在政务服务、公共交通、旅游等领域得到了广泛应用,方便了人们的日常生活。未来,随着技术的不断升级和应用场景的不断扩展,微信小程序在中国市场的发展前景依然广阔。预计小程序将会在更多领域得到应用,包括金融、教育、医疗等。同时,随着5G网络的普及和物联网技术的发展,小程序也将会更加智能化和个性化,为用户提供更加便捷、高效、智能的服务。
在中国,小程序在在线教育方面的应用和发展十分活跃。随着移动互联网的普及和在线教育市场的不断扩大,越来越多的教育机构和企业开始将小程序应用于其业务中。目前,小程序在在线教育领域主要应用于课程购买、直播课堂、在线测试等方面。例如,中国知名的在线教育平台“学而思”推出了自己的小程序,用户可以通过小程序购买课程、参加直播课堂和进行在线测试;另外,一些在线英语培训机构也推出了自己的小程序,用户可以通过小程序进行在线学习和交流。相比于传统的PC端和移动APP,小程序具有更快的加载速度、更简洁的界面和更便捷的使用体验,因此在在线教育领域得到了广泛的应用和认可。
微信小程序在在线考试方面也得到了广泛的应用。一些在线教育平台和机构推出了自己的小程序,用户可以通过小程序进行在线考试和评估。此外,一些招聘和考试机构也推出了自己的小程序,用户可以通过小程序进行在线考试和面试。小程序在在线考试方面的优势在于,可以提供更加安全和稳定的考试环境,防止作弊和泄题。同时,小程序也具有更快的加载速度和更简洁的界面,方便用户进行考试和交流。

1.4 研究内容

本文在对教师和学生进行需求调查后,展开了相关研究。并结合相关文献和一些在线考试平台案例,最终设计并实现了在线考试微信小程序,具体研究内容如下。
本系统主要分为基于微信小程序开发框架的小程序端,和基于Python Django框架负责业务处理和数据存储并依托于微信云托管服务的服务器后端。系统角色分为系统用户和系统管理员。用户在小程序端使用在线考试平台提供的一系列功能,管理员在管理员网页负责管理用户信息。具体功能如下:
(1)管理员可以管理用户,删除用户,维护服务状态。
(2)用户可以通过微信平台鉴权,通过微信账号注册成在线考试系统用户,在个人中心修改个人信息。
(3)用户可以参与在线考试,查看到已参加的考试记录,并且可以看到对应的考试成绩,完成考试后查看答题记录和题目正确答案。查看自己所在的班级,加入或者退出班级。
(4)用户可以自行创建考试,自行创建试卷,创建班级,管理班级。查看自己发布的考试的考试结果,编辑试卷。

第2章 系统分析

2.1 可行性分析

2.1.1 技术可行性

微信小程序基于微信运行环境,由微信负责多平台运行基础服务。小程序开发者无需考虑跨平台兼容性问题,具有天然的跨平台优势。微信小程序在多种设备上都能够正常运行,具有良好的兼容性,能够满足不同用户的需求。同时微信官方提供了丰富详尽的开发文档,可以快速入门上手开发一个小程序。许多技术团队也提供了基于微信小程序的开发扩展框架,本设计中就运用了腾讯官方开源的 Tdesign UI框架。可以快速简便地实现界面的设计和搭建。
服务器端采用Django框架开发,Django框架拥有完善的开发文档,提供各种简单化的开发工具,自带许多安全机制,同时代码结构清晰,易于维护等特点。同时采用了Django Rest Framework开源工具包,可以快速开发API,完成前后端分离式的Restful API构建。
微信官方还提供了云托管服务,可以将Django服务部署到微信提供的云服务器上,省去购买云服务器、域名、以及配置服务器等步骤。

2.1.2 操作可行性

本设计基于微信小程序,微信小程序在中国市场得到了广泛应用和发展,已经成为了人们生活中不可或缺的一部分。积累了许多用户,微信作为中国的一款国民级应用,自带流量入口,拥有最基础的用户量保障。同时在线教育在近几年得到长足发展,许多人已经从质疑在线教育走向拥抱在线教育。开发基于微信小程序的在线考试平台,顺应时代潮流。

2.1.3 经济可行性.

开发微信小程序的成本低,开发文档详实,教程资源丰富,学习开发微信小程序需要资金少。开发过程中所需要的开发工具全是免费的,同时微信官方提供的微信云托管业务所需资费也比较低。总之,开发成本低,后期维护成本也比较低,具有经济可行性。

2.2 需求分析

在设计过程中,本系统分为管理员与用户两种系统角色。管理员拥有管理用户信息模块、管理用户使用数据模块。用户拥有参与考试,查看已参与考试成绩和试卷等考试模块,创建考试、试卷、创建班级等发布考试模块,以及个人信息管理模块。简而言之,管理员角色负责系统的维护,用户角色既可以是考试参与者,也可以是考试发布者。

2.2.1 管理员模块

管理员模块功能,主要包括查看和管理用户信息。删除发布违规信息用户系统账号和资料的权利。
在这里插入图片描述

2.2.2 用户模块

微信用户可以通过微信账号鉴权后成为本小程序用户。用户可以通过本小程序参与其他用户发布的考试,以及自己发布考试,邀请他人参与考试,修改个人信息等功能。
在这里插入图片描述

2.2.3 系统用例分析

(1)系统用例图
本系统划分为用户和管理员两种角色,管理员管理用户,图示如下。
在这里插入图片描述
(2)用户用例图
用户可以发布考试、参加考试、查看考试成绩,班级管理、查看和修改个人信息,具体用例图如下。
在这里插入图片描述
(3)管理员功能用例图
管理员可以查看用户信息、修改用户信息、删除用户,图示如下。
在这里插入图片描述

第 3 章 相关技术介绍

3.1 微信小程序

微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用[1]。微信小程序是运行在微信体系中的一款应用,可以理解为软件中的软件。微信小程序的技术栈包括Java Script、WXML、WXSS等。微信小程序使用了前端技术栈 Java Script/WXML/WXSS。微信小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。整个小程序框架系统分为两部分:逻辑层(App Service)和视图层(View)。小程序提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。

3.2 Python Django框架

Django是一个开源的Web应用程序框架,使用Python编程语言编写。它遵循了MVC(Model-View-Controller)的软件设计模式,使得开发人员可以快速地构建复杂的Web应用程序。Django提供了许多内置的功能,如ORM(对象关系映射)、自动化管理后台、表单处理、用户认证和安全等。Django也具有高度可扩展性和灵活性,可以与其他Python库和框架集成使用[2]。Django框架具有以下优点:①快速开发:Django提供了许多内置的功能和工具,使得开发人员可以快速构建Web应用程序,减少了重复性的工作和时间成本。②高度可扩展性:Django具有高度可扩展性,可以与其他Python库和框架集成使用,以满足不同的需求和应用场景。③安全性:Django提供了多种安全机制,如跨站点请求伪造(CSRF)保护、XSS(跨站点脚本)防御等,保障Web应用程序的安全性。④ORM支持:Django提供了ORM(对象关系映射)支持,使得开发人员可以更加方便地操作数据库,减少了手动编写SQL语句的工作量。⑤自动化管理后台:Django提供了自动化管理后台,使得开发人员可以快速地创建和管理数据库表格、用户和权限等,减少了手动编写代码的工作量。⑥社区支持:Django拥有一个庞大的社区支持,开发人员可以从中获取丰富的资源和经验,解决各种技术难题。

3.3 Django Rest Framework

Django Rest Framework是Django框架的一个扩展,它提供了一组工具和库,使得开发人员可以更加方便地构建RESTful API(Representational State Transfer API)应用程序。它提供了诸如序列化、视图、认证、权限等功能,使得开发人员可以快速地构建出安全、可扩展、易于维护的API应用程序。Django Rest Framework还提供了文档生成、测试工具等辅助功能,使得开发人员可以更加方便地开发和测试API应用程序。

3.4 微信云托管

微信云托管是微信团队提供的以云原生为基础的,免运维、高可用服务上云解决方案,无需服务器,1分钟即可部署小程序/公众号服务端。微信云托管与微信生态深度融合,具有免鉴权,云调用,消息推送,微信支付等众多微信优势特性,开发者可以非常轻松和高效的完成互通,并且在安全、可靠性方面有微信团队的专业保障。微信云托管是以容器为基础的全托管服务,支持多种语言和框架,包括 Node.js、Python、PHP、Java、Go 等。

3.5 TDesign企业级设计体系

TDesign 企业级设计体系是腾讯开源的一套企业级设计体系,提供了统一价值观,一致的设计语言和视觉风格,和开箱即用的 UI 组件库。TDesign 将腾讯内部多年设计经验提炼总结为专业的设计指南,其所提供的通用设计解决方案,能够帮助产品经理、设计师、开发者等角色高效完成企业级产品的设计和研发,并保持设计语言和风格的一致,满足用户体验的要求TDesign 的特性可以总结为如下三点:①完整:完整的技术、设计资源,将设计与开发者从重复劳动中释放出来。②一致:统一价值观、一致的设计语言和视觉风格,保证产品在不同场景下的一致性。③开箱即用:提供丰富的 UI 组件库,支持多种框架。

第 4 章 系统设计

4.1 系统总体设计

本设计分为微信小程序端和管理员网页端以及服务器后端。为了满足用户发布和参与在线考试的需求,小程序端分模块提供了不同的功能。参与考试模块包括:参加考试、查看考试成绩、查看考试试卷、个人所在班级管理等功能。发布考试模块包括:创建考试、创建试卷、试卷管理、成绩管理、班级管理等功能。个人中心模块包括:个人信息查看、个人信息管理等功能。管理员网页端提供查看修改用户信息、删除用户两项功能。系统总体功能架构图如下。
在这里插入图片描述

4.2 数据库设计

4.2.1 数据库概念结构设计

系统有用户、班级、考试、试卷、题目题干、题目选项、作答记录、考试记录和班级人员记录等9个实体。
用户和班级在加入班级联系中是多对多关系,一个用户可以加入多个班级,一个班级也可以包含多个用户。班级人员记录表是加入班级联系的派生实体,用于记录用户加入了哪些班级,也可以查询出一个班级中拥有哪些用户。用户和班级在创建班级的联系中是一对多关系,一个用户可以创建多个班级,但是一个班级只能被一个用户所创建。
用户和考试实体在创建联系中是一对多关系,一个用户可以创建多场考试,一场考试的创建人只有一个。用户和考试实体在参加考试联系中是多对多关系,一个用户可以参加多场考试,一场考试也可以被多个用户所参与。考试记录实体和作答记录实体是参与考试联系的派生实体。其中,考试记录用于记录参与的考试的记录和考试成绩,用于实现用户查看考试成绩和历史考试记录功能;作答记录用于记录具体考试中学生每道题目的答题选项,用于实现考试成绩的计算和查看历史考试试卷作答详情的功能实现。
试卷实体与考试实体是一对多关系,一张试卷可以被多场考试引用,但一场考试只能有一张试卷。
试卷实体与题目题干实体是一对多关系,一张试卷可以包含多个题目即题目题干,但是一个题目题干只能被一场考试所引用。
题目题干实体与题目选项实体也是一对多关系,一个题干可以拥有多个选项,一个选项只能隶属于一个题目题干。
基于微信小程序的在线考试系统数据库E-R图如下。
在这里插入图片描述

4.2.2 数据库逻辑结构设计

本设计采用的是SQLite数据库,有以下几张数据库表族:User表族,Exam表族,分别对应用户、考试两个基础功能框架;User表族用于表示用户以及用户之间的关系。Exam表族表示与考试相关的信息,如试题信息、考试信息、作答记录、参与考试记录的等。
(1)用户表包含id、用户姓名、昵称、小程序唯一识别id等字段。其中openid与session_key用于存储微信官方提供的身份识别信息,此信息在本系统中用于识别用户身份。具体信息如下表。
在这里插入图片描述
(2)试题题目表记录题干信息,属性如下表。
在这里插入图片描述
(3)用户班级表,维护用户与班级多对多关系,具体字段字段及属性如下表。
在这里插入图片描述
(4)班级表记录班级信息,记录班级名和该班级的创建者。具体字段字段及属性如下表。
在这里插入图片描述
(5)试卷表,记录试卷名和该试卷的创建者,具体字段字段及属性如下表。
在这里插入图片描述
(6)选项表,记录题目选项及其他附属信息,属性如下表。
在这里插入图片描述
(7)考试作答表,记录考生参加考试的作答信息,具体属性如下。
在这里插入图片描述
(8)考试记录表,记录用户与其对应的考试记录,具体属性如下。
在这里插入图片描述
(9)考试信息表,记录考试相关信息,用于存储考试发布时相关考试的属性。
在这里插入图片描述

第5章 系统实现

第6章 系统测试

6.1 测试概述

系统测试是为了检验系统是否完成了开发目标,检验系统的健壮性、稳定性。是软件开发必不可少的重要部分。在软件测试中检测出问题,可以在项目上线前即时修补,提高软件的可用性。通过详细、完整的测试基于微信小程序的在线考试系统,可以避免恶性系统事故的出现,提高系统的用户满意度。

6.2 测试结果

本系统基于微信小程序环境,使用微信云托管Django作为服务器端。测试的过程中,通过在微信公众平台开发者面板中添加微信测试号,使用实机运行微信小程序,进行小程序系统测试。本文以用户角色进行测试,设置测试案例,检测小程序功能是否正常运行。

6.2.1 登录模块测试

登录模块测试主要测试,用户在打开微信小程序后,能否根据微信提供的鉴权服务自动生成新用户,以及在之后进入后是否匹配到已在数据库中的信息,返回用户信息。具体结果如下表。
在这里插入图片描述

6.2.2 创建考试模块测试

创建考试模块测试是为了测试系统的两个核心功能之一的发布考试功能,测试能否在各种不同数据情况下,能否发布考试。具体测试结果如下。
在这里插入图片描述

6.2.3 参与考试模块测试

参与考试模块是系统两大核心功能之一,是系统功能的重中之重。测试小程序考试系统能否在正常流程和其他非正常流程下完成考试。具体测试结果如下。
在这里插入图片描述

结 论

经过系统学习微信小程序开发的相关知识,完成了基于微信小程序平台的在线考试系统的设计开发。参考了部分小程序设计优秀案例,运用了许多开源框架和软件,逐步完成了最终系统的开发。本系统实现了用户参与考试功能、查看考试成绩、查看考试详细记录、创建试卷、修改试卷、发布考试、删除考试、创建班级、管理班级。管理员修改用户信息,删除用户等功能。本系统初步满足了用户在小程序上进行在线考试的需要。
但其还存在以下缺陷:
(1)前端页面交互效果不理想,UI设计未达到完全统一。
(2)受限于知识掌握水平,一些提升用户使用满足感的功能无法实现,例如无法实现小程序意外闪退后重新加载考试界面等。
(3)存在班级概念,但创建的班级考试无法实现主动微信通知用户,而是需要用户自主点击查看。
总之,目前该小程序只能初步满足考试要求,距离实现学校级别考试环境仍有较大差距。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只敲代码的嗷呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值