摘 要

随着信息技术的迅速发展,教育领域逐渐向数字化转型,在线学习平台和小程序成为教育教学的重要工具。NodeJS课堂测试小程序旨在为教师、管理员和考生提供一个高效、便捷的测试管理和学习平台。本小程序基于NodeJS框架开发,结合小程序的高效性能与用户体验,提供了丰富的功能模块,包括教师的测试安排、学习资源管理和在线测题功能;管理员的系统管理、用户权限管理和学校资讯等资源管理功能;考生的在线测试、学习资源访问以及反馈建议等功能。通过这些功能,平台为不同用户群体提供了个性化的服务,优化了教学与学习过程。教师可以更好地组织和管理课程测试,管理员则可高效地维护平台运行和信息发布,考生能够便捷地参与测试并获得学习资源。此外,平台的易用性与数据处理能力确保了各类用户的操作流畅性和数据安全性,促进了教学与学习效果的提升。

NodeJS课堂测试小程序不仅适应了现代教育发展的需求,也为课堂教学和考试管理提供了更为便捷的解决方案。

关键词:NodeJS;课堂测试;小程序;教育平台;在线测题;学习资源

Abstract

With the rapid development of information technology, the education sector is gradually transitioning towards digitalization, and online learning platforms and mini programs have become important tools for education and teaching. The NodeJS classroom testing mini program aims to provide an efficient and convenient testing management and learning platform for teachers, administrators, and candidates. This mini program is developed based on the NodeJS framework, combined with the efficient performance and user experience of the mini program, providing rich functional modules, including teacher testing arrangements, learning resource management, and online testing functions; Administrator's system management, user permission management, and school information resource management functions; Online testing, access to learning resources, and feedback and suggestions for candidates. Through these features, the platform provides personalized services for different user groups and optimizes the teaching and learning process. Teachers can better organize and manage course tests, while administrators can efficiently maintain platform operations and information dissemination. Candidates can easily participate in tests and access learning resources. In addition, the platform's ease of use and data processing capabilities ensure smooth operation and data security for various users, promoting the improvement of teaching and learning effectiveness.

The NodeJS classroom testing mini program not only meets the needs of modern educational development, but also provides a more convenient solution for classroom teaching and exam management.

Keywords: NodeJS; Classroom testing; Mini program; Education platform; Online test questions; Learning Resource

目录

摘 要

第1章引言

1.1研究背景与意义

1.2国内外研究现状

1.3论文组成结构

第2章相关技术介绍

2.1Express介绍

2.2Node.js介绍

2.3MySQL数据库

2.4JavaScript 运行模式

2.5B/S框架

2.6微信开发者工具

2.7小程序框架介绍

第3章系统分析

3.1可行性分析

3.1.1技术可行性

3.1.2经济可行性

3.1.3操作可行性

3.2系统功能需求

3.3系统性能需求

3.4 系统流程分析

3.4.1系统开发流程

3.4.2用户登录流程

3.4.3系统操作流程

3.4.4添加信息流程

3.4.5修改信息流程

3.4.6删除信息流程

第4章系统设计

4.1系统体系结构

4.2总体结构设计

4.3数据库设计

4.3.1概念设计

4.3.2数据库表设计

第5章系统实现

5.1登录模块的实现

5.2 考生用户子系统模块的实现

5.2.1 用户首页模块

5.2.2 学校资讯模块

5.2.3 测试安排模块

5.2.4 学习资源模块

5.3 教师用户子系统模块的实现

5.3.1 测试安排管理模块

5.3.2学习资源管理模块

5.3.3 科目列表模块

5.4 管理员子系统模块的实现

5.4.1测试安排管理模块

5.4.2系统用户模块

5.4.3参考信息管理模块

5.4.4学习资源管理模块

5.4.5系统管理模块

5.4.6通知公告管理模块

第6章系统测试

6.1 测试目的

6.2测试方法

6.3测试内容

6.4测试结果

结论

参考文献

致谢

第1章 引言

1.1研究背景与意义

随着互联网技术和移动互联网的迅速发展,传统的教学模式正面临着新的变革。现代教育体系日益注重信息技术的应用,以提高教学效率和学习体验。课堂测试作为评估学生学习情况的重要手段,其传统形式逐渐暴露出一些不足,如测试过程繁琐、资源管理困难、学生参与度低等问题。为了更好地解决这些问题,开发适应现代教育需求的在线测试工具显得尤为重要。

课堂测试小程序的出现,正是为了在教育环境中提供更加灵活、高效的测试管理方式。小程序凭借其便捷的使用方式和较低的系统要求,能够在不同设备上快速部署,满足教师、学生和管理员的多方需求。通过这一平台,教师可以便捷地安排和管理各类测试,考生能够随时随地进行在线测试与学习,同时还可以提供反馈与建议,有效促进教学互动。

课堂测试小程序还能够在系统管理、资源分配、数据分析等方面提供更高效的解决方案。教师和管理员能够实时查看各类数据,及时调整教学策略,优化教学内容。学生则通过平台可以获得更多的学习资源和实时的成绩反馈,从而更好地掌握学习进度和提升学习效果。

因此,课堂测试小程序不仅为教育管理提供了一个新的思路,也为师生之间的互动提供了更多的便利,推动了教育信息化的发展,具有重要的研究意义。

1.2国内外研究现状

课堂测试小程序作为一种新兴的教育技术工具,近年来在国内外教育领域得到了广泛关注和应用。在国内,随着教育信息化进程的不断推进,越来越多的教育机构开始探索通过移动互联网平台优化课堂管理和测试评估流程。许多高校和中小学逐步采用基于小程序的测试系统,旨在提升测试管理效率、学生参与度以及教师与学生之间的互动。例如,国内一些知名高校已经实现了小程序平台上课题的在线测评,帮助教师快速安排和发布考试,同时为学生提供便捷的学习资源与反馈渠道。这些实践表明,小程序在教学管理中的优势逐步得到认可,尤其是在跨平台兼容性和简便的操作体验方面。

在国外,在线学习和数字化教育的应用已经取得了较为成熟的进展。许多教育技术公司和学校已开发并采用了类似的在线测试系统,这些系统多以Web端和移动端为载体,支持不同形式的测试,包括自动评分、即时反馈和成绩分析等功能。国外的研究者和开发者也不断探索如何通过技术手段提高测试的智能化和个性化水平,帮助学生和教师更好地管理学习和教学。与此同时,国外一些先进的教育理念和技术在课堂测试领域的应用也为国内发展提供了参考。

在国内外的相关研究中,虽然有不少针对教育技术的应用研究,但专门围绕课堂测试小程序的系统化研究仍然较少。现有的研究多集中于单一功能模块的分析和技术实现,缺乏对平台整体架构、用户体验及教学效果的系统性评估。因此,如何在课堂测试小程序的设计中实现更加科学的功能布局与优化,以及如何有效提升各类用户的使用体验,仍然是当前国内外研究的重点方向。

1.3论文组成结构

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第一章:引言。第一章主要介绍了课题研究的背景和意义,系统开发的国内外研究现状和本文的组成结构。

第二章:开发工具及相关技术介绍。主要介绍系统开发所采用的工具和技术。

第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。

第四章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。

第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。

第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试

第七章:总结与展望。

第2章 相关技术介绍

2.1Express介绍

Express是目前流行的基于Node.js运行环境的Web应用程序开发框架,它简洁且灵活,为Web应用程序提供了强大的功能。Express提供了一个轻量级模块,类似于jQuery(封装的工具库),它把Node.js的HTTP模块的功能封装在一个简单易用的接口中,用于扩展HTTP模块的功能,能够轻松地处理服务器的路由、响应、Cookie和HTTP请求的状态[1]。

Express的优势:

(1)简洁的路由定义方式。

(2)简化HTTP请求参数的处理。

(3)提供中间件机制控制HTTP请求。

(4)拥有大量第三方中间件。

(5)支持多种模版引擎。

2.2Node.js介绍

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。

Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHPPythonPerlRuby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。

Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。 Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用[2]。

2.3MySQL数据库

MySQL是一种开源关系型数据库管理系统,广泛应用于Web应用和企业级数据存储。MySQL支持结构化查询语言,允许开发者通过标准语句进行数据的创建、读取、更新和删除操作[3]。数据库通过表格形式组织数据,支持数据完整性和约束条件的定义。MySQL的存储引擎机制使得用户可以根据具体需求选择不同的存储引擎,以优化性能和功能。

MySQL具有高性能和可扩展性,支持大规模数据存储和高并发访问。系统提供了丰富的用户权限管理和数据加密安全特性。MySQL能够与多种编程语言和框架兼容,广泛应用于内容管理系统、电子商务平台和数据分析等各种场景。

2.4JavaScript 运行模式

JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的[4]。

是一种解释性脚本语言(代码不进行预编译)。

主要用来向HTML标准通用标记语言下的一个应用)页面添加交互行为。

可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离[5]。

跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如WindowsLinuxMacAndroidiOS等)[6]。

JavaScript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。JavaScript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。

2.5B/S框架

B/S(Browser/Server)架构是一种基于浏览器和服务器的系统架构模式,用户通过浏览器与服务器进行交互。B/S架构简化了客户端的部署和管理,用户无需在本地安装复杂的软件,只需使用标准浏览器即可访问应用程序。服务器端负责处理业务逻辑和数据存储,客户端则主要负责展示用户界面和数据交互[7]。B/S架构的设计使得系统更新和维护集中在服务器端,降低了维护成本。

B/S架构通常采用Web技术进行实现,包括HTML、CSS和JavaScript等。用户在浏览器中发起请求,服务器响应并返回数据。数据传输通常通过HTTP或HTTPS协议进行,B/S架构的灵活性使其适用于在线购物、信息管理系统和社交网络等各类应用场景[8]。由于其易于扩展性,B/S架构可以方便地支持大规模用户访问,适应不断变化的业务需求。

2.6微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储:显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

2.7小程序框架介绍

这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

第3章 系统分析

3.1可行性分析

开发任何一个系统,都要对其可行性进行分析,对其时间和资源上的限制进行考虑,这样可以减少系统开发的风险。同时,分析之后不仅能够合理的运用人力,还能在各方面资源的消耗上得到节省。下面就对技术、经济和操作三个方面来介绍。

3.1.1技术可行性

课堂测试小程序具有较高的技术可行性。首先,Node.js作为一种高效的服务器端运行环境,具备非阻塞I/O和事件驱动的特性,能够在高并发情况下保持系统的高性能,适应课堂测试小程序的实时数据处理需求。Express框架简化了Web应用的开发,提供了灵活的路由和中间件支持,确保了后台逻辑的快速实现。MySQL作为成熟的关系型数据库,能够高效地管理和查询大量的数据,保证了数据的完整性与一致性。通过这些技术的结合,系统能够提供稳定、可靠的服务,同时具有良好的扩展性和维护性,满足课堂测试小程序未来的增长需求。

3.1.2经济可行性

课堂测试小程序在经济上具有较高的可行性。采用Node.js和Express框架进行开发,可以大大减少开发时间和人力成本,同时由于这两者都是开源技术,避免了昂贵的商业软件授权费用。MySQL作为一款广泛应用的开源数据库,其成本较低且支持高效的数据管理,能够满足系统的存储需求而不增加额外开销。此外,系统的模块化设计与高效的性能支持,意味着平台能够处理大量用户数据,提升运营效率,进而降低了后期维护和扩展的成本。因此,从初期开发到长期运营,系统的经济性都表现出较强的竞争力,为课堂测试小程序提供了低成本、高回报的解决方案。

3.1.3操作可行性

课堂测试小程序在操作上具有较高的可行性。首先,Node.js和Express框架的广泛应用使得开发人员能够快速上手,开发周期短且易于维护。系统采用的前后端分离架构,前端与后端通过API进行高效通信,简化了操作流程,提升了用户体验。同时,MySQL数据库的管理和查询操作直观且稳定,能够保证数据的准确性和实时性。对于管理员和用户而言,系统界面设计简洁直观,操作流程清晰,且通过权限控制,确保了不同角色的操作权限。系统的可扩展性和易于升级的特性,也为后期操作的灵活调整提供了保障。因此,该系统在日常操作中具备高效、稳定且易于管理的特点,确保了平台的顺利运行。

综上所述,课堂测试小程序在技术、经济、操作三个方面都是完全可行的。

3.2系统功能需求

在系统开发设计前,应该对功能做初步设想,清楚这个管理系统有什么板块,每个板块有什么功能,整体的设计是否满足使用者的需求,接着对所开发的系统功能进行的详细分析总结,从而设计出完整的系统并将其实现。用户与开发人员的交流分析,使其达到最佳理解程度,使系统功能达到最佳。

考生用户用例图如下所示。

图3-1 考生用户用例图

管理员用例图如下所示。

图3-2 管理员用例图

教师用户用例图如下所示。

图3-3 教师用户用例图

通过对用例图的分析和调查,根据本系统的实际需要,从用户角度提出需求功能如下:

1. 考生用户功能描述

考生用户的功能相对简化,主要包括访问首页、查看交流论坛和学校资讯、提供反馈建议、参与在线测题、查看测试安排和学习资源,并且能够查看通知公告以及个人信息(如收藏、评论、参考信息、错题列表等)。考生可以通过这些功能获取必要的学习资料与资讯,提升自己的学习效果。

2.管理员功能描述

管理员用户则拥有更为广泛的管理权限,除了具备教师用户的功能外,还可以访问系统管理、轮播图设置、留言管理、通知公告管理、资源管理(如学校资讯与资讯分类)、错题记录、交流管理等功能。此外,管理员还能进行权限管理,确保系统运行的安全与合规。

3.教师用户功能描述

教师用户能够访问后台首页,管理测试安排和参考信息,进行学习资源管理,并且有权限创建和管理在线测题,包括科目列表、试题库和试卷列表等功能,方便教师根据课程安排进行教学与评估。

3.3系统性能需求

评判一个系统好坏的一项重要指标就是性能,下面是对此系统的一些性能进行阐述。

1.系统的安全性和稳定性: 课堂测试小程序在管理权限上有着严格的控制,即想登录此平台进行操作,则必须要有操作权限,没有权限的用户是不可能登录平台查看任何的信息和数据,从而确保了系统的安全性。

2.数据的完整性和准确性:第一个是各项记录信息的完整性,信息记录的内容可以为空;第二个是各项信息数据之间相互联系的准确性;第三个是数据在不同记录信息的一致性

3.用户操作系统简单方便:在系统开发中按照“简单易用”的原则,能够使用户对系统的使用一目了然,既能保证用户使用,同时又能保证维护人员方便维护。

3.4 系统流程分析

3.4.1系统开发流程

课堂测试小程序开发时,首先进行需求分析,进而对系统进行总体的设计规划,设计系统功能模块,数据库的选择等,本系统的开发流程如图3-4所示。

图3-4系统开发流程图

3.4.2用户登录流程

为了保证系统的安全性,要使用本系统对系统信息进行管理,必须先登陆到系统中。如图3-5所示。

图3-5 登录流程图

3.4.3系统操作流程

用户打开并进入系统后,会先显示登录界面,输入正确的用户名和密码,系统自动检测信息,若信息无误,则用户会进入系统功能界面,进行操作,否则会提示错误无法登录,操作流程如图3-6所示。

图3-6 系统操作流程图

3.4.4添加信息流程

管理员可以进行信息的添加,用户也可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图3-7所示。

图3-7 添加信息流程图

3.4.5修改信息流程

管理员可以进行信息修改,用户也可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图3-8所示。

图3-8 修改信息流程图

3.4.6删除信息流程

管理员可以进行信息删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图3-9所示。

图3-9 删除信息流程图

第4章 系统设计

4.1系统体系结构

课堂测试小程序选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:

图4-1 系统工作原理图

其最终前后台交互原理如图4-2所示。

图4-2前后台交互原理

具体交互流程为:浏览器中执行具体操作,操作命令将生成一个do方法。该方法使得浏览器能够访问后台中的Controller层,Controller层由于业务上的需要执行进而访问Service层。Service层收到指令后将会去调用内部DAO层的接口。接口将会和MyBatis层下的一个SQL语句相对接。对接好之后进而访问MySql数据库。更新底层数据,然后将数据同步回MyBatis层,同步变化后的数据将通过DAO层接口,Service层和后台Controller层,直观反映到浏览器页面上。

4.2总体结构设计

课堂测试小程序的整体结构设计如下图所示。

图4-3系统功能结构图

4.3数据库设计

在进行数据库设计时,概念设计帮助明确系统的整体结构和需求。在这一阶段,需要确定实体、属性以及它们之间的关系,为后续的数据库表设计奠定基础。接下来,将深入探讨数据库表设计的具体细节,实现更高效的数据存储和管理。

4.3.1概念设计

概念设计是数据库设计的第一步,其主要目标是对系统的数据需求进行全面的理解和抽象[9]。在这一阶段,通过建立实体-关系模型(ER模型)来识别系统中的关键实体、属性及其相互关系。概念设计的输出是一个清晰的ER图,作为后续数据库表设计的基础。以下将展示系统的全局E-R图。

图4-4数据库E-R图

4.3.2数据库表设计

这一阶段的重点是将概念模型转换为实际的数据库结构,包括表的创建、字段的定义及数据类型的选择。每个实体通常对应于数据库中的一张表,而实体的属性则转化为表的列[10]。以下是系统的数据库表设计展示。

表 4-1-access_token(登陆访问时长)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

token_id

int

临时访问牌ID

2

token

varchar

64

临时访问牌

3

info

text

65535

信息

4

maxage

int

最大寿命:默认2小时

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

user_id

int

用户编号

表 4-2-article(文章)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

article_id

mediumint

文章id

2

title

varchar

125

标题

3

type

varchar

64

文章分类

4

hits

int

点击数

5

praise_len

int

点赞数

6

create_time

timestamp

创建时间

7

update_time

timestamp

更新时间

8

source

varchar

255

来源

9

url

varchar

255

来源地址

10

tag

varchar

255

标签

11

content

longtext

4294967295

正文

12

img

varchar

255

封面图

13

description

text

65535

文章描述

表 4-3-article_type(文章分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

display

smallint

显示顺序

3

name

varchar

16

分类名称

4

father_id

smallint

上级分类ID

5

description

varchar

255

描述

6

icon

text

65535

分类图标

7

url

varchar

255

外链地址

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-4-auth(用户权限管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

auth_id

int

授权ID

2

user_group

varchar

64

用户组

3

mod_name

varchar

64

模块名

4

table_name

varchar

64

表名

5

page_title

varchar

255

页面标题

6

path

varchar

255

路由路径

7

parent

varchar

64

父级菜单

8

parent_sort

int

父级菜单排序

9

position

varchar

32

位置

10

mode

varchar

32

跳转方式

11

add

tinyint

是否可增加

12

del

tinyint

是否可删除

13

set

tinyint

是否可修改

14

get

tinyint

是否可查看

15

field_add

text

65535

添加字段

16

field_set

text

65535

修改字段

17

field_get

text

65535

查询字段

18

table_nav_name

varchar

500

跨表导航名称

19

table_nav

varchar

500

跨表导航

20

option

text

65535

配置

21

create_time

timestamp

创建时间

22

update_time

timestamp

更新时间

表 4-5-candidate_user(考生用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

candidate_user_id

int

考生用户ID

2

name_of_candidate

varchar

64

考生姓名

3

candidate_gender

varchar

64

考生性别

4

examine_state

varchar

16

审核状态

5

user_id

int

用户ID

6

create_time

datetime

创建时间

7

update_time

timestamp

更新时间

表 4-6-code_token(验证码)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

code_token_id

int

验证码ID

2

token

varchar

255

令牌

3

code

varchar

255

验证码

4

expire_time

timestamp

失效时间

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

表 4-7-collect(收藏)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

collect_id

int

收藏ID

2

user_id

int

收藏人ID

3

source_table

varchar

255

来源表

4

source_field

varchar

255

来源字段

5

source_id

int

来源ID

6

title

varchar

255

标题

7

img

varchar

255

封面

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-8-comment(评论)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

comment_id

int

评论ID

2

user_id

int

评论人ID

3

reply_to_id

int

回复评论ID

4

content

longtext

4294967295

内容

5

nickname

varchar

255

昵称

6

avatar

varchar

255

头像地址

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

source_table

varchar

255

来源表

10

source_field

varchar

255

来源字段

11

source_id

int

来源ID

表 4-9-exam_question_database(试题库)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

exam_question_id

mediumint

试题库ID

2

subject_name

varchar

255

科目名称

3

type

varchar

20

类型

4

title

varchar

255

题目

5

question_item

varchar

500

选项

6

answer

varchar

500

参考答案

7

score

double

总分

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-10-forum(论坛)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

forum_id

mediumint

论坛ID

2

display

smallint

排序

3

user_id

mediumint

用户ID

4

nickname

varchar

16

昵称

5

praise_len

int

点赞数

6

hits

int

访问数

7

title

varchar

125

标题

8

keywords

varchar

125

关键词

9

description

varchar

255

描述

10

url

varchar

255

来源地址

11

tag

varchar

255

标签

12

img

text

65535

封面图

13

content

longtext

4294967295

正文

14

create_time

timestamp

创建时间

15

update_time

timestamp

更新时间

16

avatar

varchar

255

发帖人头像

17

type

varchar

64

论坛分类

18

istop

int

是否置顶

表 4-11-forum_type(论坛分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

name

varchar

16

分类名称

3

description

varchar

255

描述

4

url

varchar

255

外链地址

5

father_id

smallint

上级分类ID

6

icon

varchar

255

分类图标

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-12-hits(用户点击)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

hits_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

表 4-13-learning_resources(学习资源)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

learning_resources_id

int

学习资源ID

2

resource_name

varchar

64

资源名称

3

resource_type

varchar

64

资源类型

4

teacher_user

int

教师用户

5

teachers_name

varchar

64

教师姓名

6

upload_date

date

上传日期

7

resource_cover

varchar

255

资源封面

8

resource_video

varchar

255

资源视频

9

resource_documentation

varchar

255

资源文档

10

resource_content

longtext

4294967295

资源内容

11

praise_len

int

点赞数

12

collect_len

int

收藏数

13

comment_len

int

评论数

14

create_time

datetime

创建时间

15

update_time

timestamp

更新时间

表 4-14-message(留言板)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

message_id

int

留言板ID

2

user_id

int

用户ID

3

title

varchar

64

标题

4

content

longtext

4294967295

内容

5

nickname

varchar

32

昵称

6

avatar

varchar

255

头像

7

email

varchar

125

留言者邮箱

8

phone

varchar

11

留言者手机号码

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

11

reply

longtext

4294967295

回复

12

reply_state

tinyint

回复状态

表 4-15-notice(公告)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notice_id

mediumint

公告ID

2

title

varchar

125

标题

3

content

longtext

4294967295

正文

4

create_time

timestamp

创建时间

5

update_time

timestamp

更新时间

表 4-16-praise(点赞)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

praise_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

status

tinyint

点赞状态:1为点赞,0已取消

表 4-17-reference_information(参考信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

reference_information_id

int

参考信息ID

2

classroom_name

varchar

64

教室名称

3

classroom_location

varchar

64

教室位置

4

test_no

varchar

64

测试编号

5

test_time

datetime

测试时间

6

invigilator_teacher

int

监考老师

7

reference_candidates

int

参考考生

8

name_of_candidate

varchar

64

考生姓名

9

reference_number

double

参考人数

10

create_time

datetime

创建时间

11

update_time

timestamp

更新时间

12

source_table

varchar

255

来源表

13

source_id

int

来源ID

14

source_user_id

int

来源用户

表 4-18-schedule(日程管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

schedule_id

smallint

日程ID

2

content

varchar

255

日程内容

3

scheduled_time

datetime

计划时间

4

user_id

int

用户ID

5

create_time

datetime

创建时间

6

update_time

datetime

更新时间

表 4-19-score(评分)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

score_id

int

评分ID

2

user_id

int

评分人

3

nickname

varchar

64

昵称

4

score_num

double

评分

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

source_table

varchar

255

来源表

8

source_field

varchar

255

来源字段

9

source_id

int

来源ID

表 4-20-slides(轮播图)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

slides_id

int

轮播图ID

2

title

varchar

64

标题

3

content

varchar

255

内容

4

url

varchar

255

链接

5

img

varchar

255

轮播图

6

hits

int

点击量

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-21-subject(科目)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

subject_id

int

科目ID

2

name

varchar

255

科目名称

3

update_time

timestamp

更新时间

4

create_time

timestamp

创建时间

表 4-22-subject_exam(考试)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

exam_id

mediumint

考试id

2

subject_name

varchar

255

3

name

varchar

32

考试名称:[2,32]

4

duration

int

答题时长

5

score

double

总分

6

status

varchar

10

状态:启用、禁用

7

create_time

timestamp

创建时间:

8

update_time

timestamp

更新时间:

9

user_id

int

出题人

表 4-23-subject_exam_question(试题)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

exam_question_id

mediumint

试题ID

2

subject_name

varchar

255

科目名称

3

type

varchar

20

类型

4

title

varchar

255

题目

5

question_item

varchar

500

选项

6

answer

varchar

500

参考答案

7

score

double

总分

8

question_order

int

排序

9

exam_id

mediumint

所属试卷

10

create_time

timestamp

创建时间

11

update_time

timestamp

更新时间

表 4-24-subject_user_answer(用户答题)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_answer_id

mediumint

用户答题ID

2

user_id

mediumint

用户ID

3

exam_id

mediumint

考试id

4

score

double

分数

5

answers

text

65535

答案

6

score_detail

text

65535

评分详情

7

objective_score

double

客观题得分

8

subjective_score

double

主观题得分

9

score_state

tinyint

评分状态

10

nickname

varchar

255

提交人

11

create_time

timestamp

创建时间

12

update_time

timestamp

更新时间

13

comment_desc

varchar

255

评语

表 4-25-teacher_user(教师用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

teacher_user_id

int

教师用户ID

2

teachers_name

varchar

64

教师姓名

3

gender_of_teachers

varchar

64

教师性别

4

examine_state

varchar

16

审核状态

5

user_id

int

用户ID

6

create_time

datetime

创建时间

7

update_time

timestamp

更新时间

表 4-26-testing_arrangements(测试安排)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

testing_arrangements_id

int

测试安排ID

2

classroom_name

varchar

64

教室名称

3

classroom_location

varchar

64

教室位置

4

test_no

varchar

64

测试编号

5

test_time

datetime

测试时间

6

test_duration

varchar

64

测试时长

7

invigilator_teacher

int

监考老师

8

remaining_seats

double

剩余座位

9

cover_image

varchar

255

封面图片

10

details_introduction

longtext

4294967295

详情简介

11

praise_len

int

点赞数

12

collect_len

int

收藏数

13

comment_len

int

评论数

14

reference_information_limit_times

int

参考限制次数

15

create_time

datetime

创建时间

16

update_time

timestamp

更新时间

表 4-27-upload(文件上传)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

upload_id

int

上传ID

2

name

varchar

64

文件名

3

path

varchar

255

访问路径

4

file

varchar

255

文件路径

5

display

varchar

255

显示顺序

6

father_id

int

父级ID

7

dir

varchar

255

文件夹

8

type

varchar

32

文件类型

表 4-28-user(用户账户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_id

int

用户ID

2

state

smallint

账户状态:(1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

所在用户组

4

login_time

timestamp

上次登录时间

5

phone

varchar

11

手机号码

6

phone_state

smallint

手机认证:(0未认证|1审核中|2已认证)

7

username

varchar

16

用户名

8

nickname

varchar

16

昵称

9

password

varchar

64

密码

10

email

varchar

64

邮箱

11

email_state

smallint

邮箱认证:(0未认证|1审核中|2已认证)

12

avatar

varchar

255

头像地址

13

open_id

varchar

255

针对获取用户信息字段

14

create_time

timestamp

创建时间

表 4-29-user_answer_wrong(用户错题)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_answer_id

mediumint

用户错题ID

2

subject_name

varchar

255

科目名称

3

question_item

varchar

255

选项

4

title

varchar

255

题目

5

type

varchar

255

题目类型

6

exam_id

mediumint

考试ID

7

score

double

分数

8

answers

text

65535

用户提交的答案

9

answer

text

65535

参考答案

10

score_detail

text

65535

评分详情

11

objective_score

double

客观题得分

12

subjective_score

double

主观题得分

13

score_state

tinyint

评分状态

14

nickname

varchar

255

提交人

15

user_id

int

提交人ID

16

create_time

timestamp

创建时间

17

update_time

timestamp

更新时间

表 4-30-user_group(用户组)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

group_id

mediumint

用户组ID

2

display

smallint

显示顺序

3

name

varchar

16

名称

4

description

varchar

255

描述

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

register

smallint

注册位置

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间


第5章 系统实现

5.1登录模块的实现

为确保系统安全性,系统操作员只有在登录界面输入正确的用户名、密码、权限以及验证码,单击“登录”按钮后才能够进入本系统的主界面。登录界面如下图所示。

图5-1登录界面

用户登录的关键代码如下:

Login.prototype.api = async function(req) {

var body = req.body;

var obj = await $.services["user"].get_obj({

username: body.username

},{like:false});

if (obj) {

var group = await $.services["user_group"].get_obj({

name:obj.user_group

})

if (group){

if (group.name!=="管理员"){

var sql = "select examine_state from "+ group.source_table +" WHERE user_id = " + obj.user_id;

var userExamine = await $.mysql.run(sql);

if (userExamine && userExamine.length > 0 && userExamine[0].examine_state!=="已通过"){

return {

error: {

code: 70000,

message: "该用户审核未通过"

},

};

}

}

if (obj.state!==1){

return {

error: {

code: 70000,

message: "用户非可用状态,不能登录"

},

};

}

var password = md5(body.password);

if (password === obj.password) {

req.session.user = obj;

var date = Date.parse(new Date());

var token = md5(obj.user_id + "_" + date);

await $.services["access_token"].add({

token,

info: JSON.stringify(obj),

user_id:obj.user_id

});

obj.token = token;

return {

result: {obj}

};

} else {

return {

error: {

code: 70000,

message: "密码错误"

},

};

}

}else {

return {

error: {

code: 70000,

message: "用户组不存在"

},

};

}

} else {

return {

error: {

code: 70000,

message: "账户不存在"

}

};

}

};               

5.2 考生用户子系统模块的实现

5.2.1 用户首页模块

首页是系统的主界面,展示系统的核心内容,包括轮播图、最新学校资讯等。用户可以通过首页快速访问各个功能模块,还可以根据关键词搜索相关内容,如下图所示。

图5-2 首页界面

前台首页关键代码如下:

Service.prototype.get_list = async function(query, config) {

var sql = $.mysql.toGetSql(query, Object.assign({}, this.config, config || {}));

return await this.run(sql);

};

5.2.2 学校资讯模块

用户点击“学校资讯”,将显示学校资讯信息,用户可以查看有关学校的资讯信息,支持通过关键词搜索或者筛选、排序,点击可查看资讯详情,在详情页面可以进行点赞、收藏、评论等操作。界面如下图所示。

图5-3学校资讯界面

5.2.3 测试安排模块

此功能允许考生查看各类考试的具体安排,帮助考生提前了解考试时间和科目,做好备考准备。页面如下图所示。

图5-4测试安排界面

5.2.4 学习资源模块

点击系统导航栏上的“学习资源”菜单按钮,将进入学习资源列表,用户可以查看所有的学习资源,支持通过关键词搜索和下拉搜索。点击某个学习资源,用户可以查看该学习资源的详细信息,可以进行下载、点赞、收藏、评论等操作。页面如下图所示。

图5-5学习资源界面

5.3 教师用户子系统模块的实现

5.3.1 测试安排管理模块

教师用户点击“测试安排管理”这一菜单会显示测试安排列表这个子菜单,点击“测试安排列表”可以查看所有的测试安排,还可以进行重置和查询的操作。页面如下图所示。

图5-6测试安排管理界面

5.3.2学习资源管理模块

教师用户点击“学习资源管理”这一菜单会显示学习资源列表和学习资源添加两个子菜单,点击“学习资源列表”可以查看所有的学习资源,还可以进行重置、查询、删除等操作。点击“学习资源添加”,教师用户可以添加新的学习资源信息。页面如下图所示。

图5-7学习资源管理界面

5.3.3 科目列表模块

教师能够管理平台中的科目列表,设置不同学科的测试内容和课程安排,确保每个科目都能有相应的教学与测试计划。界面如下图所示。

图5-8科目列表界面

5.4 管理员子系统模块的实现

5.4.1测试安排管理模块

管理员点击“测试安排管理”这一菜单会显示测试安排列表和测试安排添加两个子菜单,点击“测试安排列表”可以查看所有的测试安排和用户评论,还可以进行重置、查询、删除等操作。点击“测试安排添加”,管理员可以添加新的测试安排信息。页面如下图所示。

图5-9测试安排管理界面图

新增测试安排代码如下:

Controller.prototype.add = async function(ctx) {

var result = await this.service.add(ctx.request.body, this.config);

if (this.service.error) {

return {

error: this.service.error,

};

}

return {

result,

};

};

5.4.2系统用户模块

管理员点击“系统用户”,可以管理所有用户的信息,包括新增、修改、删除、搜索等。界面如下图所示。

图5-10系统用户界面图

系统用户的关键代码如下:

Register.prototype.index = async function(req,res) {

var group_list = await $.services["user_group"].get_list({}, Object.assign({}, this.config));

return await res.render(this.config.tpl + "index.html", {

group_list

});

};

Register.prototype.api = async function(req) {

var user = $.services.user;

var body = req.body;

var username = body.username;

var obj = await user.get_obj({

username

});

if (obj) {

return {

error: {

code: 70000,

message: "账户名已存在",

},

};

} else {

var password = md5(body.password);

var nickname = body.nickname;

var user_group = body.user_group;

var email = body.email;

var email_state= body.hasOwnProperty('email_state') ? body.email_state : 0;

var phone = body.phone;

var phone_state= body.hasOwnProperty('phone_state') ? body.phone_state : 0;

var bl_reg = await user.add({

username,

password,

nickname,

user_group,

email,

email_state,

phone,

phone_state

});

if (bl_reg) {

return {

result: "注册成功"

};

} else {

return {

error: {

code: 70000,

message: "注册失败",

},

};

}

}

};

5.4.3参考信息管理模块

管理员点击“参考信息管理”这一菜单会显示参考信息列表,管理员可以查看用户提交的参考信息,还可以进行重置、查询、删除等操作。页面如下图所示。

图5-11参考信息管理界面图

5.4.4学习资源管理模块

管理员点击“学习资源管理”这一菜单会显示学习资源列表和学习资源添加两个子菜单,点击“学习资源列表”可以查看所有的学习资源和用户评论,还可以进行重置、查询、删除等操作。点击“学习资源添加”,管理员可以添加新的学习资源信息。界面如下图所示。

图5-12学习资源管理界面图

上传文件代码如下:

Controller.prototype.upload = async function(ctx) {

var req = ctx.request;

var query = req.query;

var url = "";

if (req.files && req.files.file) {

var f = req.files.file;

const render = fs.createReadStream(f.path);

var name = f.name;

var dir = f.dir || "";

var file = _dir + dir + name;

try {

if (fs.existsSync(file)) {

var arr = name.split(".");

name = arr[0];

var extension = arr[arr.length - 1];

var num = 10000;

for (var i = 0; i < num; i++) {

var na = name + "_" + (i + 1) + "." + extension;

file = path.join(_dir, na);

if (!fs.existsSync(file)) {

name = na;

break;

}

}

}

const upStream = fs.createWriteStream(file);

render.pipe(upStream);

url = _path + name;

} catch (e) {

console.log("上传失败:", e);

}

return {

result: {

url

}

};

} else {

return {

code: 10000,

message: "上传的文件(file)不能为空!",

};

}

};

5.4.5系统管理模块

管理员点击“系统管理-轮播图管理”菜单,可以对前台展示的轮播图进行设置,系统管理。页面如下图所示。

图5-13系统管理界面图

5.4.6通知公告管理模块

管理员点击“通知公告管理”这个菜单,可以对系统中的通知公告进行管理,包括通知公告的增删改查等操作。页面如下图所示。

图5-14通知公告管理界面图

第6章 系统测试

6.1 测试目的

测试的主要目的是确保系统的功能和性能满足预期的需求,同时识别和修复潜在的缺陷。通过系统测试,可以验证各个功能模块的正确性和稳定性,确保系统在不同使用场景下的表现符合设计要求。测试目的包括确认系统功能的完整性、验证数据处理的准确性、评估系统的性能和安全性。测试还可以提高用户满意度,保证用户在使用系统时获得流畅和可靠的体验。通过全面的测试,可以降低后期维护成本,减少系统上线后出现故障的风险,从而保障系统的长期稳定运行。

6.2测试方法

在本系统中,测试方法主要依赖于测试用例的设计与执行。测试用例是根据系统需求文档编写的,覆盖所有功能模块及其边界情况。每个测试用例包含输入数据、预期结果和实际结果的对比,以验证系统的功能是否按预期工作。

常见的测试用例包括功能测试用例、边界测试用例和异常测试用例[11]。功能测试用例针对系统的各项功能进行验证;边界测试用例则侧重于输入数据的边界条件,验证系统在极端情况下是否能够稳定运行;异常测试用例则用于验证系统在处理错误输入或异常情况时的反应。本文选择功能测试用例进行系统测试。

在测试执行过程中,记录每个用例的执行结果,并根据实际结果与预期结果的对比,判断系统是否存在缺陷。通过系统化的测试用例执行,可以有效提高测试的覆盖率和效率,为系统的最终上线提供保障。

6.3测试内容

通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。以下是详细的测试:

表6-1用户注册登录测试表

用户注册登录测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

用户注册、登录

测试用户正确注册、登录

  1. 在首页界面注册一个新用户,按规定输入合理的注册信息,提交。
  2. 用户在登录界面输入账户密码登录

用户注册成功,登录成功

结果输出符合预期

通过

表6-2在线测题测试表

在线测题用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

在线测题

测试用户在线测题功能

  1. 在首页点击在线测题,进入详情页; 
  2. 点击“在线测题”,输入相关信息后点击提交

用户参加测试,生成新的在线测题

结果输出符合预期

通过

表6-3学校资讯评论测试表

学校资讯评论测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

学校资讯评论

测试用户学校资讯评论功能

1、在首页点击学校资讯并看详情; 

2、点击评论,输入相关信息点击提交

生成新的评论信息

结果输出符合预期

通过

表6-4学校资讯添加测试表

管理员学校资讯添加测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

学校资讯添加测试

测试管理员添加学校资讯功能

  1. 管理员点击学校资讯、点击添加; 
  2. 输入相关信息点击提交

学校资讯添加成功

结果输出符合预期

通过

表6-5系统公告删除测试表

系统公告删除测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

系统公告删除测试

测试系统公告删除功能

  1. 管理员点击系统公告管理;
  2. 选择一个系统公告点击删除并确认删除

系统公告删除成功,前端不在展示该系统公告

结果输出符合预期

通过

6.4测试结果

在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都是能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。

结论

经过了几个月的努力,课堂测试小程序终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此开发课堂测试小程序对我意义重大。

在开发系统最初,首先对各个课堂测试小程序方面的需求进行调研,了解对于用户来说,开发的平台需要实现哪些功能才能满足各方需求,对需求进行分析;其次选择自己比较熟悉的Nodejs语言,MYSQL数据库来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。

在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对Nodejs的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!

参考文献

  1. 凌杰.Node.js后端全程实战[M].人民邮电出版社:202305.371.
  2. 唐小燕,刘洪武.Node.js应用开发[M].人民邮电出版社:202111.308.
  3. 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
  4. 董宁,袁晓曦.JavaScript程序设计[M].人民邮电出版社:202308.265.
  5. 何勇,王瑶.HTML5+CSS3+JavaScript 网页设计基础与实战[M].人民邮电出版社:202211.262.
  6. 孙文江,陈义辉.JavaScript交互式网页设计[M].人民邮电出版社:202309.419.
  7. 刘江涛,王亮亮,吴庆茹,等.基于B/S模式的铁路勘测设计案例信息化管理系统设计与实现[J].铁路计算机应用,2021,30(03):32-35.
  8. 张丹丹,李弘.基于B/S架构的办公管理系统设计与开发[J].铁路通信信号工程技术,2024,21(09):44-48+106.
  9. 周晓玉,崔文超.基于Web技术的数据库应用系统设计[J].信息与电脑(理论版),2023,35(09):189-191.
  10. 马艳艳,吴晓光.计算机软件与数据库的设计策略分析[J].电子技术,2024,53(05):104-105.
  11. 李俊萌.计算机软件测试技术与开发应用策略分析[J].信息记录材料,2023,24(03):50-52.
  12. 杨龙飞,郭梦利.高校在线学习平台系统的设计与实现[J].福建电脑,2025,41(03):93-96.DOI:10.16707/j.cnki.fjpc.2025.03.019.
  13. 张丹丹.基于云计算的信息技术课程在线教学与考试平台设计与实现[J].造纸装备及材料,2025,54(02):214-216.
  14. 杨硕,史亚平.基于Python+Flask的在线考试系统设计与实现[J].电脑知识与技术,2025,21(02):47-49+56.DOI:10.14004/j.cnki.ckt.2025.0046.
  15. 聂小雪.CIPP模式下的在线英语考试系统研究[J].通讯世界,2024,31(12):64-66.
  16. 兰琳琳.基于MySQL-Django-Vue的在线考试系统[J].电脑知识与技术,2024,20(33):51-54.DOI:10.14004/j.cnki.ckt.2024.1702.
  17. Peng Z ,Yuhan G .Detecting prototype pollution for node.js: Vulnerability review and new fuzzing inputs[J].Computers & Security,2024,137103625-.
  18. 杨彩,李亚.基于TPACK和翻转课堂的软件测试教学模式改革[J].教书育人(高教论坛),2023,(12):102-105.
  19. Reid B ,D'Amorim M ,Wagner M , et al.NCQ: Code Reuse Support for Node.js Developers[J].IEEE Transactions on Software Engineering,2023,49(5):3205-3225.
  20. 夏渝彧,姜来为,邹嘉旭,等.基于移动平台的课堂管理系统设计与实现[J].科技创新与应用,2022,12(30):81-84.DOI:10.19981/j.CN23-1581/G3.2022.30.021.
  21. 李胜男.基于微信的课堂测试小程序设计[D].西安电子科技大学,2022.DOI:10.27389/d.cnki.gxadu.2022.002367.

致谢

在此论文完成之际,感谢我的指导老师。在指导老师的网页设计课上,当时我学到了很多东西,这对于我实习过程中也打了一定的基础,而且指导老师对于我的设计也提出许多建议,并予以悉心的指导,对于一些细小的问题都耐心的指导我去完善,授予我写论文的交流消息,时常的鼓励我,另外感谢教导我完善此项目的前端同学,对于这个项目,我是边学习边实现完成的,有许多东西开始并不是很明白,但前端开发的同学非常耐心的引导我去将这个项目完成,在系统的后端开发中,所用到的后台开发技术也时常会给我讲解,助于我更好的将论文完成,在此对帮助到我的同学和一直予以教导的指导老师致以衷心的感谢,祝事业有成。

免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-

更多推荐