【最新原创毕设】基于Express的线上教育系统+28282(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

摘 要

随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Express技术建设线上教育系统。

本设计主要实现集人性化、高效率、便捷等优点于一身的线上教育系统,实现功能:系统首页、交流论坛、系统公告、课程商城、选课中心、个人中心等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。

线上教育系统使用基于Node.js的Express框架,使用Express我们可以方便、快速的创建Web网站的服务器或API接口的服务器。数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS技术完成系统的开发。

关键词:线上教育系统,Express框架;Node.js;MySQL数据库

Abstract

With the arrival of the Internet trend, various industries are considering using the Internet to promote themselves. The best way is to establish their own Internet system and maintain and manage it. In practical applications, the working rules and development steps of application software are constructed using Express technology to build an online education system.

This design mainly implements an online education system that combines the advantages of humanization, high efficiency, and convenience. The functions include the system homepage, communication forum, system announcement, course mall, course selection center, personal center, and other functional modules. The system communicates with the server through a browser to achieve data exchange and change. You only need to use a computer and move your fingers to operate the system, achieving data communication management. The entire system design process fully considers issues such as data security, stability, and reliability, and the operation process is simple. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services.

The online education system uses the Node.js based Express framework, which allows us to easily and quickly create servers for web websites or API interfaces. In terms of data, Microsoft's MySQL relational database is mainly used as the data storage medium, and the system development is completed in conjunction with front-end HTML+CSS technology.

Keywords: Online education system, Express framework; Node.js; MySQL database

目   录

1绪论

1.1 研究背景

1.2 研究意义

1.3 研究内容

1.4 论文组成结构

2开发工具及相关技术介绍

2.1 Express框架介绍

2.2 B/S体系结构

2.3 MySQL数据库

2.4 Node.js主要功能

3系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 需求分析

3.3 非功能性分析

3.4 系统用例分析

3.5 系统数据流程分析

4系统设计

4.1 系统架构设计

4.2 系统功能结构

4.3 数据库设计

4.3.1 概念模型设计

4.3.2 逻辑结构设计

5系统实现

5.1 前台用户功能模块的实现

5.1.1 前台首页界面

5.1.2 用户注册界面

5.1.3 用户登录界面

5.1.4 交流论坛界面

5.1.5课程商城界面

5.1.6购买课程界面

5.1.7学生个人中心界面

5.1.8教师个人中心界面

5.2 后台功能模块的实现

5.2.1后台登录界面

5.2.2系统用户界面

5.2.3购买课程管理界面

5.2.4系统管理界面

5.2.5交流管理界面

6系统测试

6.1 测试目的

6.2 测试用例

6.3 测试结果

7总结与展望

参考文献

致谢

1 绪论

1.1 研究背景

随着社会的快速发展,计算机的影响是全面且深入的。互联网的发展和智能设备的普及,线上教育系统正逐渐成为人们获取知识和学习技能的主要途径。教育领域也在逐渐转向数字化和智能化。线上教育系统具有时间自由、地点灵活、资源丰富等特点,极大地方便了学习者的学习需求。

在20世纪末期,国家提出了教育要面向四个现代化,同时也提出了要大力发展教育手段和教育方式的信息化建设。在这样的背景和需求下,基于当今的互联网技术和计算机信息技术的Express线上教育系统就应运而生了。传统的教学管理方式通常是采用人工操作和纸质文档进行,工作效率低下且容易出错。为了提高教学管理的效率和准确性,许多教育机构和学校开始使用计算机软件来辅助管理教育教学。

线上教育系统主要是借助计算机,通过对线上教育系统所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。线上教育系统对用户带来了更多的便利,该平台通过和数据库管理平台软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。本线上教育系统主要牵扯到程序,数据库与计算机技术等。覆盖知识面大,可以大大的提高平台人员工作效率。

1.2 研究意义

随着互联网的普及和技术的不断发展,线上教育越来越受到关注。Express线上教育系统作为一种新兴的教学方式,具有广阔的研究意义。首先,线上教育系统可以提供个性化学习机会。通过使用智能化的学习平台和个性化的学习模式,可以为所有学生提供个性化的学习机会。这样的个性化教育可以更好地满足每个学生的学习需求,提高他们的学习效果和学习动力。

其次,使用线上教育系统可以促进多元化教育。Express线上教育系统可以为学生提供多元化的学习资源和教学方式。通过在线课程、学习视频和互动讨论等,学生可以接触到不同领域的知识和教育资源,有助于培养他们的综合素质和创新能力。

此外,本系统可以提供教学效果评估和数据分析。Express线上教育系统可以通过购买课程和评估,及时跟踪学生的学习进展和成绩。同时,通过数据分析,可以深入了解学生的学习特点和问题,为教师提供参考和改进教学策略。

最后,线上教育系统推动了教育创新和教师专业发展。Express线上教育系统为教师提供了课程商城和工具,可以促进他们的教学创新和专业发展。教师可以根据学生的学习情况进行个性化教学,同时可以与其他教师分享教学经验和资源,共同提高教学质量。

总之,Express线上教育系统作为一种新兴的教学方式,具有重要的研究意义。通过深入研究和探索,可以更好地发挥线上教育的优势,推动教育的创新发展,提高学生的学习效果和教师的教学质量,促进教育的公平和可持续发展。

1.3 研究内容

线上教育系统的开发及实现,所需要的工作内容:

(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。

(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,线上教育系统的开发使用Express框架,数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。

(3)确定好系统使用的技术,进行确认系统所划分的用户触,并且根据用户触划分确定所要设计的功能模块,对线上教育系统的设计主要划分别为管理员和用户,并且所使用的功能模块也相应不同,但系统的数据库实现的内容是交互的,用户可以随时根据自己的需求进行课程商城信息搜索,对于系统工作人员可以根据自己的分管内容进行在线信息的处理及操作,管理员获取到所有用户的详细数据信息,并根据需求进行第一时间处理解决。

(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,组通过测试来判断程序是否完善,对于系统测试,要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。

1.4 论文组成结构

本文共分为六章,章节内容安排如下:

第一章:引言。主要介绍了课题研究的背景,国内目前相关研究现状以及本文的研究内容与主要工作。

第二章:相关技术介绍。主要对本系统使用的相关技术和开发工具进行介绍。

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

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

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

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

第七章:总结与展望。

2 开发工具及相关技术介绍

2.1 Express框架介绍

Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。Express不对node.js已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单[1]。

使用 Express 可以快速地搭建一个完整功能的网站。

Express 框架核心特性:

可以设置中间件来响应 HTTP 请求。

定义了路由表用于执行不同的 HTTP 请求动作。

可以通过向模板传递参数来动态渲染 HTML 页面[2]。

2.2 B/S体系结构

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Chrome、Safari、Microsoft Edge、Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server同数据库进行数据交互[3]。

2.3 MySQL数据库

MySQL数据库已经成为网络上的一种强大的工具,它能够支持多个用户,并且能够根据客户端和服务端的需求进行调整,从而满足不同的需求。在这里,服务端和客户端只是一种软件上的概念,而我们所使用的计算机硬件则没有必要完全相互匹配[4]。

MySQL作为一个受到广泛认可的开放式DBMS,其卓越的性能和易于操作的特性,以及其在多种操作环境中的灵活性,让其成为了众多AP中的首选。此外,MySQL还具有良好的跨平台性,让软件开发人员对其有着极高的评价。与传统的关联式数据库系统形式大相径庭,MySQL拥有一套完善的数据库管理策略,以确保用户的安全、稳健、安全。MySQL具备良好的容错、安全、快速、稳健的特点,使得mysql成为一款极其实用的数据库管理工具[5]。

MySQL拥有一种独特的权限分配机制,可以根据用户的身份和业务逻辑,为用户提供更多的选择,从而大大提高了MySQL的安全性和完整性,远超过其他关系型数据库。

MySQL具有强大的功能,能够处理各种数据类型,包括动态、静态、多种语言,从而使用户能够轻松访问多种数据。

MySQL具有多种功能[6],它能够支持多种平台的开发,并且支持多种编程语言[7],使得用户能够轻松访问和使用MySQL数据库。

2.4 Node.js主要功能

V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,又节省了开发成本。对性能的苛求是Node的一个关键因素[8]。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉[9]。

虽然让Javascript运行于服务器端不是Node的独特之处,但却是其一强大功能。不得不承认,浏览器环境限制了我们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现[10]。虽然还存在其他一些支持Javascript在服务器端 运行的平台,但因为上述特性,Node发展迅猛,成为事实上的平台。

在Node启动的很短时间内,社区就已经贡献了大量的扩展库(模块)。其中很多是连接数据库或是其他软件的驱动,但还有很多是凭他们的实力制作出来的非常有用的软件。

最后,不得不提到的是Node社区。虽然Node项目还非常年轻,但很少看到对一个项目如此狂热的社区。不管是新手,还是专家,大家都围绕着项目,使用并贡献自己的能力,致力于打造一个探索、支持、分享、听取建议的乐土。

3 系统分析

3.1 可行性分析

在软件开发的过程中,可行性分析是至关重要的,它旨在评估问题的可行性,以便尽可能快地解决,同时也要考虑到不同的解决方案的优势和劣势,以及实施这些方案所带来的经济效益。通过对线上教育系统的可行性分析,我们可以从技术、操作和经济三个方面来评估其可行性,从而为其提供有效的支持和保障。

3.1.1 技术可行性

所谓技术可行性,是指能否在有限的时间内实现预期设定的功能。在开发和设计中是否有未解决的问题。完成的项目能否很好地应用,如果有任何不足之处,后期的维护是否会有较大的困难。经过对该系统的评估,确定现有的技术可以达到目标。通过使用Express技术来创建动态的页面,采取低耦合的架构,搭载灵活的数据库,以及强劲的服务器,我们能够显著地改善系统的性能。这表明,我们不仅要追求理论上的目标,还要在实践中不断探索。

3.1.2 经济可行性

线上教育系统采用Express和Node.js技术,这样可以有效地降低软硬件的开发与维护费用,同时又能够让用户更加轻松地访问资源资源,从而提高服务质量。此外,该平台的推出,可以有效地降低运营者的劳动强度,为企业带来更多的经济效益。虽然线上教育系统的构建并非特别困难,但由于它的投入相比较少,而且能够带来更高的效率,因此,我们认为这个系统的建立具有很强的可持续性,而且能够带来更高的经济效益,而且比起日常的维护与管理更具有价值。

3.1.3 操作可行性

线上教育系统的前台页面简洁易懂,无论是系统管理员还是普通用户,只要电脑连接到网络,就可以轻松访问网站,而且不需要任何操作指导,只要输入正确的URL地址,就可以轻松完成所有的操作。由于无需任何复杂的环境配置,这个系统非常简单,易于操作,因此它是一个非常实用的工具。

3.2 需求分析

为了满足用户的需求,线上教育系统将系统划分为三个部分:管理员、教师用户和普通用户,每个部分都有独特的功能,以便更加便捷地管理信息。此外,系统还具有简单易操作的特点,可以更加精确、全面地实现用户的需求。

学生用户功能模块:

(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现课程商城查询和购买课程等操作,就必须有这个系统的账号,如果没有账号的话,可以注册以后进行相关的操作,同时用户还可以通过“我的账户”这以按钮对个人信息以及操作的信息进行管控。

(2)查看线上教育系统的首页信息:线上教育系统的首页、交流论坛、系统公告、课程商城、选课中心、我的账户、个人中心等。

(3)交流论坛:在前台点击“交流论坛”按钮进入交流论坛,点击可以进入到已发布的交流讨论文章详情,并且可以进行评论、收藏、点赞操作,发布新的交流帖子。

(4)系统公告:在前台点击“系统公告”这一菜单按钮以后就会进入到系统网站的系统公告界面,可以查看网站公告信息。

(5)课程商城:在前台点击“课程商城”按钮进入课程商城列表,点击可以进入到已发布的课程商城详情,包括课程编号、课程名称、课程类型、课程教师、教师姓名、在线视频、课程单价、课程总数等信息的查看,并且可以对选中的课程进行购买课程、收藏、评论和学习资料下载操作。

(6)选课中心:用户可以查看选课中心的课程介绍信息,支持通过搜索关键词的方式对选课课程介绍进行查询,在查询到自己想要了解的选课课程介绍的时候,可以进入查看详细的介绍,学生用户也可以对课程介绍信息进行“点赞、评论”。

(7)我的账户:在前台点击“用户”下面的“我的账户”可以对个人资料+密码修改进行管控。

(8)个人中心:当学生用户点击右上角“个人中心”这个按钮,就会进入到对应的后台进行信息的管理了。用户在前台点击“个人中心”可以对个人首页、购买课程、课程文件、退款申请、选课记录、论坛列表和自己收藏的信息进行管理。

教师用户功能模块:

(1)用户注册登录:教师用户在前台申请注册后由管理员审核通过之后方可登录。

(2)查看线上教育系统的首页信息:线上教育系统的首页、交流论坛、系统公告、课程商城、选课中心、我的账户、个人中心等。

(3)我的账户:在前台点击“用户”下面的“我的账户”可以对个人资料+密码修改进行管控。

(4)个人中心:当教师用户点击右上角“个人中心”这个按钮,就会进入到对应的后台进行信息的管理了。教师用户在前台点击“个人中心”可以对个人首页、课程商城、购买课程、课程文件、退款申请、选课中心、选课记录、论坛列表和自己收藏的信息进行管理。

后台管理员功能:

(1)登录:管理员在后台可以输入用户名+密码进行登录,默认账号名admin,密码加密使用MD5,管理员的用户名和密码是在数据库中直接设定好的。

(2)系统用户:管理员点击“系统用户”菜单可以对管理员、学生用户和教师用户信息进行增删改查。

(3)课程商城管理:管理员点击“课程商城管理”菜单可以对课程商城里的课程信息进行增删改查。

(4)课程类型管理:管理员点击“课程类型管理”菜单可以对课程管理系统的课程类别进行分类设置,增删改查。

(5)购买课程管理:管理员点击“购买课程管理”菜单可以对学生用户在课程商城模块里购买的课程信息进行管控,增删改查。

(6)课程文件管理:管理员点击“课程文件管理”菜单可以对教师用户上传的课程文件信息进行管控,增删改查。

(7)退款申请管理:管理员点击“退款申请管理”菜单可以对前台用户提交的退款申请进行审核,增删改查。

(8)选课中心管理:管理员点击“选课中心管理”菜单可以对选课中心模块里的课程信息进行管控,增删改查。

(9)选课记录管理:管理员点击“选课记录管理”菜单可以对前台用户的选课记录进行增删改查。

(10)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行增删改查。

(11)系统公告管理:管理员点击“系统公告管理”菜单可以查看到系统中的所有系统公告信息,对已经存在的系统公告,管理员可以修改,也可以添加新的系统公告或者删除系统公告。

(12)交流管理:管理员可以对线上教育系统前台展示的交流论坛以及交流论坛所属的分类进行管控。

3.3 非功能性分析

线上教育系统的非功能性需求比如线上教育系统的安全性怎么样可靠性怎么样性能怎么样可拓展性怎么样等。具体可以表示在如下3-1表格中:

3-1线上教育系统非功能需求表

安全性

主要指线上教育系统数据库的安装数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指线上教育系统能够安装用户的指示进行操作经过测试可靠性90%以上。

性能

性能是影响线上教育系统占据市场的必要条件所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着线上教育系统页面展示内容进行操作就可以了。

可维护性

线上教育系统开发的可维护性是非常重要的经过测试可维护性没有问题

3.4 系统用例分析

根据上一节功能分析,可以得出系统的用例。

学生用户角色用例如图3-1所示。

图3-1 用户用例图

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

图3-2 教师用户用例图

管理员用例图如下所示。

图3-3 管理员用例图

3.5 系统数据流程分析

相比于强调控制逻辑的程序流程图,系统数据流图更加关注的是系统中数据的实际流动和处理,它能够清晰地展示出数据的规模和特征,因此,它在系统结构化分析中扮演着至关重要的角色,受到广泛的认可。

线上教育系统的顶层数据流如下图所示。

图3-4 系统顶层数据流图

在系统的顶层,用户作为外部实体,第一步就是进行登录验证。用户信息表会返回一个密码,如果它是正确的,就会登录系统;如果是错误的,就会收到反馈信息。登录完成后,根据用户的不同需求,可以进行读写数据库。

系统底层数据流如下图所示。

图3-5 系统底层数据流图

系统的基础架构由管理员和用户组成,他们之间的数据流动可以通过数据表的形式进行,这些数据表可以提供必要的信息,以便进行复杂的逻辑操作。

4 系统设计

4.1 系统架构设计

当前,B/S架构的数据访问模式已经大大改善:用户只需要打开线上教育系统,就能够获取系统的信息,而且,系统会根据用户的需要,自动响应并解决所有的问题。此外,用户还能够查阅服务器的处理结果,从而更好地了解数据的流转情况。线上教育系统采用三层结构,即视觉-模拟-决策层。其中,视觉层负责接收来自用户的信息并将其呈现给用户;而模拟层则负责完成与用户有关的任务,包括组织信息、进行流程优化、提升用户体验。决策层则负责协商决策,并确保两层结果的一致性。

系统架构图如下图所示。

图4-1 系统架构图

4.2 系统功能结构

Express线上教育系统整体上来说由前端学生用户、教师用户界面和后端管理员界面组成。

虽然三个模块看起来各自独立,但它们所使用的数据库却是一致的。这些模块的功能是经过精心设计,根据先前的需求进行分析,并结合相关资料进行编排而成的。

综上所述,系统功能结构图如下所示。

图4-2 系统功能结构图

4.3 数据库设计

一个优秀的系统必须具备完善的后台数据库,就像建筑物一样,它不是一蹴而就的,而是需要经过精心设计,以确保其稳固可靠。只有将数据库设计得完善,并且考虑到各个方面,才能保证系统的可靠性,避免出现任何问题。

4.3.1 概念模型设计

借助目前的UML建模软件,E-R图使其他用户可以快速轻松地了解系统的功能以及他们之间的关系。线上教育系统总E-R图如下所示。

图4-3 系统E-R图

下面根据线上教育系统的数据库总E-R关系图可以得出线上教育系统需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。

(1)学生用户信息实体E- R图,如图4-4所示:

图4-4 学生用户信息实体图

(2)课程商城信息实体E- R图,如图4-5所示:

图4-5课程商城信息实体图

(3)交流论坛信息实体E- R图,如图4-6所示:

图4-6交流论坛信息实体图

(4)选课中心信息实体E- R图,如图4-7所示:

图4-7选课中心实体图

(5)系统公告信息实体E- R图,如图4-8所示:

图4-8系统公告信息实体图

4.3.2 逻辑结构设计

通过前面E-R关系图可以看到项目需要创建很多个表。下面罗列一下本在线考试系统当中的几个主要的数据库表:

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表course_documents (课程文件)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_documents_id

int

10

0

N

Y

课程文件ID

2

order_number

varchar

64

0

N

N

订单编号

3

course_id

varchar

64

0

Y

N

课程编号

4

course_name

varchar

64

0

Y

N

课程名称

5

course_type

varchar

64

0

Y

N

课程类型

6

course_teacher

int

10

0

Y

N

0

课程教师

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

course_unit_price

int

10

0

Y

N

0

课程单价

9

purchasing_users

int

10

0

Y

N

0

购买用户

10

user_name

varchar

64

0

Y

N

用户姓名

11

purchase_quantity

int

10

0

Y

N

0

购买数量

12

payment_amount

varchar

64

0

Y

N

支付金额

13

course_documents

varchar

255

0

Y

N

课程文件

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_mall (课程商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_mall_id

int

10

0

N

Y

课程商城ID

2

course_id

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

cover

varchar

255

0

Y

N

封面

5

course_type

varchar

64

0

Y

N

课程类型

6

course_teacher

int

10

0

Y

N

0

课程教师

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

online_video

varchar

255

0

Y

N

在线视频

9

course_unit_price

int

10

0

Y

N

0

课程单价

10

total_number_of_courses

int

10

0

Y

N

0

课程总数

11

course_introduction

longtext

2147483647

0

Y

N

课程介绍

12

hits

int

10

0

N

N

0

点击数

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_selection_center (选课中心)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_selection_center_id

int

10

0

N

Y

选课中心ID

2

course_id

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

course_type

varchar

64

0

Y

N

课程类型

5

cover_image

varchar

255

0

Y

N

封面图

6

class_time

varchar

64

0

Y

N

上课时间

7

class_location

varchar

64

0

Y

N

上课地点

8

lecturer

int

10

0

Y

N

0

授课老师

9

course_introduction

longtext

2147483647

0

Y

N

课程介绍

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

recommend

int

10

0

N

N

0

智能推荐

13

timer_title

varchar

64

0

Y

N

计时器标题

14

timing_start_time

datetime

19

0

Y

N

计时开始时间

15

timing_end_time

datetime

19

0

Y

N

计时结束时间

16

limit_times

int

10

0

N

N

0

限制次数

17

limit_type

tinyint

4

0

N

N

2

限制次数类型1-每天次,2-总计次

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_selection_records (选课记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_selection_records_id

int

10

0

N

Y

选课记录ID

2

course_id

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

course_type

varchar

64

0

Y

N

课程类型

5

cover_image

varchar

255

0

Y

N

封面图

6

class_time

varchar

64

0

Y

N

上课时间

7

class_location

varchar

64

0

Y

N

上课地点

8

lecturer

int

10

0

Y

N

0

授课老师

9

course_selection_users

int

10

0

Y

N

0

选课用户

10

user_name

varchar

64

0

Y

N

用户姓名

11

reason_for_course_selection

text

65535

0

Y

N

选课原因

12

examine_state

varchar

16

0

N

N

未审核

审核状态

13

examine_reply

varchar

16

0

Y

N

审核回复

14

user_id

int

10

0

N

N

0

用户ID

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_type (课程类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_type_id

int

10

0

N

Y

课程类型ID

2

course_type

varchar

64

0

Y

N

课程类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

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

表purchase_courses (购买课程)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

purchase_courses_id

int

10

0

N

Y

购买课程ID

2

order_number

varchar

64

0

Y

N

订单编号

3

course_id

varchar

64

0

Y

N

课程编号

4

course_name

varchar

64

0

Y

N

课程名称

5

course_type

varchar

64

0

Y

N

课程类型

6

course_teacher

int

10

0

Y

N

0

课程教师

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

course_unit_price

int

10

0

Y

N

0

课程单价

9

purchase_date

date

10

0

Y

N

购买日期

10

purchasing_users

int

10

0

Y

N

0

购买用户

11

user_name

varchar

64

0

Y

N

用户姓名

12

purchase_quantity

int

10

0

Y

N

0

购买数量

13

payment_amount

varchar

64

0

Y

N

支付金额

14

examine_state

varchar

16

0

N

N

未审核

审核状态

15

examine_reply

varchar

16

0

Y

N

审核回复

16

pay_state

varchar

16

0

N

N

未支付

支付状态

17

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表refund_request (退款申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

refund_request_id

int

10

0

N

Y

退款申请ID

2

order_number

varchar

64

0

N

N

订单编号

3

course_id

varchar

64

0

Y

N

课程编号

4

course_name

varchar

64

0

Y

N

课程名称

5

course_type

varchar

64

0

Y

N

课程类型

6

course_teacher

int

10

0

Y

N

0

课程教师

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

course_unit_price

int

10

0

Y

N

0

课程单价

9

purchasing_users

int

10

0

Y

N

0

购买用户

10

user_name

varchar

64

0

Y

N

用户姓名

11

purchase_quantity

int

10

0

Y

N

0

购买数量

12

payment_amount

varchar

64

0

Y

N

支付金额

13

course_documents

varchar

255

0

Y

N

课程文件

14

reason_for_refund

text

65535

0

Y

N

退款原因

15

examine_state

varchar

16

0

N

N

未审核

审核状态

16

examine_reply

varchar

16

0

Y

N

审核回复

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

gender

varchar

64

0

Y

N

性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

varchar

64

0

Y

N

敏感词汇

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表teacher_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_users_id

int

10

0

N

Y

教师用户ID

2

teacher_id

varchar

64

0

Y

N

教师工号

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

teacher_certification

varchar

255

0

Y

N

教师证明

5

examine_state

varchar

16

0

N

N

未审核

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

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

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

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

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

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

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5 系统实现

5.1 前台用户功能模块的实现

5.1.1 前台首页界面

当进入线上教育系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,其主界面展示如下图5-1所示。

图5-1 前台首页界面图

5.1.2 用户注册界面

线上教育系统的普通用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图5-2所示。

图5-2注册界面图 

注册关键代码如下所示。

 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.1.3 用户登录界面

线上教育系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当普通用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到线上教育系统的首页中;否则将会提示相应错误信息,用户登录界面如下图5-3所示。

图5-3用户登录界面图

登录的逻辑代码如下所示。

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.1.4 交流论坛界面

当用户点击线上教育系统中导航栏上的“交流论坛”后将会进入到该“交流论坛”列表的界面,然后选择想要看的讨论帖子,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。也可以发布新的讨论帖子。交流论坛列表界面如下图5-4所示。

图5-4交流论坛列表界面图

5.1.5课程商城界面

当用户点击“课程商城”以后就会给我们展示所有的课程商城信息,支持通过课程名称或课程类型对课程商城进行搜索。选择想要学习的课程商城进入到详细界面中,可以查看到课程编号、课程名称、课程类型、课程教师、教师姓名、在线视频、课程单价、课程总数等信息。用户可以点击学习资料进行下载,也可以点击购买课程按钮进行购买。课程商城详情界面如下图5-5所示。

图5-5课程商城详情界面图

5.1.6购买课程界面

当用户点击课程商城课程详情里的“购买课程”后将会进入到“购买课程”填写的界面,填写完对应的购买信息点击提交。购买课程界面如下图5-6所示。

图5-6购买课程界面图

5.1.7学生个人中心界面

当学生用户点击右上角“个人中心”这个按钮,会出现子菜单,点击“个人中心”可以对个人首页、购买课程、课程文件、退款申请、选课记录、论坛列表、收藏进行设置管理。学生用户个人中心界面如下图5-7所示。

图5-7学生用户个人中心界面图

5.1.8教师个人中心界面

当教师用户点击右上角“个人中心”这个按钮,会出现子菜单,点击“个人中心”可以对个人首页、课程商城、购买课程、课程文件、退款申请、选课中心、选课记录、论坛列表和自己收藏的信息进行设置管理。教师用户个人中心界面如下图5-8所示。

图5-8教师用户个人中心界面图

5.2 后台功能模块的实现

5.2.1后台登录界面

管理员在后台可以通过账号和密码进行登录,管理员的账号和密码是在数据库中直接设定的。后台登录界面展示如下图5-9所示。

图5-9后台登录界面图

5.2.2系统用户界面

管理员在后台可以对教师、学生账号的信息进行增删改查操作。教师用户管理界面如下图5-10所示。

图5-10系统用户管理界面图

5.2.3购买课程管理界面

管理员在后台可以前台用户的购买课程信息进行管理。点击可进行详情、支付状态的查看和发送课程文件。购买课程管理界面如下图5-11所示。

图5-11购买课程管理界面图

5.2.4系统管理界面

线上教育系统中的管理人员在“系统管理”这一菜单下是可以对线上教育系统内的系统轮播图进行添加修改的,其管理界面如下图5-12所示。

图5-12系统管理界面图

5.2.5交流管理界面

管理员点击“交流管理”这一菜单可以对系统内的交流论坛列表及论坛分类列表进行管理,交流管理界面如下图5-13所示。

图5-13交流管理界面图

6 系统测试

6.1 测试目的

在这款产品正式投入使用之前,试用是至关重要的一步。即使某些部分的开发没有出现任何问题,将多个模块组合在一起仍然可能会出现矛盾。就像每个人都有自己的特点,但如果混杂在一起,就会显得凌乱不堪,因此必须确保彼此之间能够达成默契的配合。在测试中,应该仔细检查其中的每一项内容,以确保它们符合预期的标准。如果发现有一些偏离,应该及时进行调整,以确保最终的结果能够达到预期的目标。

6.2 测试用例

系统测试包括:用户登录功能测试、课程商城展示功能测试、课程商城添加、购买课程、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

课程商城查看功能测试:

表5-2 课程商城查看功能测试表

用例名称

课程商城查看

目的

测试课程商城查看功能

前提

用户登录

测试流程

点击课程商城列表

预期结果

可以查看到所有课程商城信息

实际结果

实际结果与预期结果一致

管理员添加课程商城界面测试:

表5-3 管理员添加课程商城界面测试表

用例名称

课程商城发布测试用例

目的

测试课程商城发布功能

前提

学生用户正常登录情况下

测试流程

1)学生点击课程商城信息管理就,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的课程商城信息 

实际结果

实际结果与预期结果一致

购买课程功能测试:

表5-4购买课程功能测试表

用例名称

购买课程测试

目的

测试购买课程功能

前提

测试流程

1)在课程商城模块点击购买课程。

2)填写购买信息点击提交。

预期结果

成功提交购买信息

实际结果

实际结果与预期结果一致

密码修改功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

6.3 测试结果

通过编写教学管理系统的测试用例,已经检测完毕用户登录模块、课程商城查看模块、课程商城添加模块、购买课程模块、密码修改功能测试,通过这5大模块为教学管理系统的后期推广运营提供了强力的技术支撑。

7 总结与展望

在本次系统设计的过程中,我们将深入探讨线上教育系统,从研究背景、目标到实施方案,并详细阐述每一章的内容,以及该系统的硬件和软件环境。其中包含了:需求分析+功能需求+用例图,以此表示系统的功能的流程、模块的处理过程。绘制总体各个结构+流程图,并根据功能细致设计的需要,再来设计数据库的表结构,并绘制E-R图,实现程序接口,然后完成调试。最后,本文进行了总结,并提出了下一步的发展方向。

这个系统使用MySQL数据库,采用Express框架和Node.js技术。系统基本实现:首页、交流论坛、系统公告、课程商城、选课中心、我的账户、个人中心等功能模块。系统功能流畅、模块清晰,易于更改后期版本的程序细节,实现了效率高与界面友好还有操作方便。

在这次设计中,我通过不断地探索和学习,掌握了Node.js技术和Express框架,并创建了一个线上教育系统,这让我对编写系统的必要性和运行环境有了更深入的了解。为了更好地完成这个项目,我花费了大量的时间,不仅丰富了自己的知识面,并且学习并积累了许多宝贵经验。系统刚开始时,我对Express框架这个技术只是稍微有些了解,但是通过这次基于Express框架的线上教育系统设计,让我更加深入地去探讨了,Express框架运转的原理,从中学到了如何去配置服务器环境和连接数据库。

系统的这一次发展提升了我自己的能力,也学到了框架如何实现基本功能。同时在编程代码各方面也做了的很多尝试,从关注代码错误到做一些小的修改,都有了很大的提高。同时,在撰写论文时,还查阅了大量的参考资料,对论文的结构和文献资料进行了总结和分析。已作出努力,尽量减少错误和走弯路,从一开始的系统功能概念化到逐一实施,并进行了广泛的研究报告。也许后续操作过程中还有很多实现不完美的功能,但我依然会继续学习,努力在以后的软件开发、编号代码中吸取教训,总结不完美之处,努力的在软件开发越来越强。以上是我在本次设计中的总结,希望在未来取得更好的成绩。

参考文献

[1]吴吉权.利用软件工程思想优化教育资源管理与利用[C]//百色学院马克思主义学院.2023年高等教育科研论坛桂林分论坛论文集.武汉东湖学院;,2023:2.DOI:10.26914/c.cnkihy.2023.060840

[2]Arjon T ,Rida F P ,Tualar S , et al.Design of smart farming communication and web interface using MQTT and Node.js[J].Open Agriculture,2023,8(1):

[3]李淑玲,朱彤.基于Node.js技术的在线测试系统设计方案[J].科技资讯,2023,21(19):35-38.DOI:10.16661/j.cnki.1672-3791.2303-5042-5997

[4]Krill P .Node.js upgrade adds environment variable config[J].InfoWorld.com,2023,

[5]杜娟.“教育+互联网”理念下的中小学线上教育教学资源建设与应用[J].新教师,2022,(05):12-14.

[6]吴华,李湉,张世贵等.STEP中EXPRESS语言到Java语言的映射方法[J].机械工程师,2022,(02):117-120.

[7]HsuehFu W ,ChiaWei H ,R K D , et al.Human pluripotent stem cell-derived functional sympathetic neurons express ACE2 and RAAS components: a framework for studying the effect of COVID-19 on sympathetic responsiveness.[J].Clinical autonomic research : official journal of the Clinical Autonomic Research Society,2022,32(1):1-5.

[8]彭小华,李昆仑,钟林辉等.一种多并发高速通信的线上教育平台设计[J].现代电子技术,2021,44(18):92-96.DOI:10.16652/j.issn.1004-373x.2021.18.019

[9]靳旭莹.国内线上教育平台的现状与分析[J].福建电脑,2021,37(08):71-74.DOI:10.16707/j.cnki.fjpc.2021.08.018

[10]房路升,罗海秀,马晓红等.在线教育分析及优化对策研究[J].软件导刊,2021,20(07):217-221.

[11]王迪.“互联网+”环境下计算机在线教育模式创新实践研究[J].软件,2021,42(06):183-186.

[12]张笃振.面向智慧教育的线上教育实践与思考[J].江苏师范大学学报(自然科学版),2021,39(02):63-65.

[13]赵晓峰.教育信息化建设与中国各层次教育难题破解[J].中国经贸导刊(中),2021,(02):138-141.

[14]赵星然,张美娜,陈远超等.基于互联网的线上教育平台[J].电脑知识与技术,2021,17(04):53-55.DOI:10.14004/j.cnki.ckt.2021.0319

[15]沈颖.停课不停学之线上教育模式探索[J].考试周刊,2020,(76):15-16.

[16]Express Scripts Strategic Development Inc.; Patent Application Titled Interconnected Framework For Distributed Data Realization Published Online (USPTO 20200257578)[J].Information Technology Newsweekly,2020,2570-.

[17]Federal Express Corporation; Researchers Submit Patent Application, Risk Assessment Framework, for Approval (USPTO 20200231299)[J].Computers Networks  Communications,2020,6965-.

[18]张钊源,刘晓瑜,鞠玉霞.Node.js后端技术初探[J].中小企业管理与科技(上旬刊),2020,(08):193-194.

[19]吴彦.基于Node.js的在线教育平台的研究与实现[D].广东工业大学,2020.DOI:10.27029/d.cnki.ggdgu.2020.000875

[20]王仡捷.基于Node.JS技术的高并发网络应用架构的设计与实现[J].通化师范学院学报,2020,41(04):64-67.DOI:10.13877/j.cnki.cn22-1284.2020.04.014

致谢

“致谢”意味着论文的结束,也意味着自己的毕业设计顺利完成,同时也代表了自己的大学生涯即将结束,我即将要离开自己敬爱的老师和亲爱的同学们,在这里我首先要感谢的就是所有的老师,“春满江山绿满园,桃李争春露笑颜,东西南北春常在,唯有师恩留心间”,他们无论在我的学业还是在我的生活上付出了所有,对我谆谆教诲;其次我要感谢我的指导老师,他在我的整个毕业设计当中起着引导作用,每当我有困难的时候,他总会第一时间帮助我,引导我进行解决问题,而不是直接告诉我答案,“授人以鱼不如授人以渔”,指导老师的这种做法让我受益终生,同时我也从指导老师身上学习到了许多的开发技巧以及检验,这对我今后的开发起着十分重要的作用;再次,我需要感谢我的同学、室友,他们不仅仅在毕业设计上给我许多帮助意见,在大学同窗四年,他们给过我的帮助太多了,我对他们有太多的不舍,无法用言语表示,我相信在以后的人生道路上只要想到他们,我心里就会很温暖,这种友情是任何感情替代不了的;最后我还要感谢家人,感谢自己,感谢家人对我的支持,感谢自己在学业上的坚持,我相信我以后的道路会越来越好。

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值