目录
摘要
随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。
本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用的数据库是Mysql,使用node.js的koa技术构建的一个管理系统,实现了本系统的全部功能。整个开发过程首先对教学管理与评估管理系统进行需求分析,得出教学管理与评估管理系统主要功能。接着对教学管理与评估管理系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括教学管理与评估管理系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对教学管理与评估管理系统进行了功能测试,并对测试结果进行了分析总结,得出教学管理与评估管理系统存在的不足及需要改进的地方,为以后的教学管理与评估管理系统维护提供了方便,同时也为今后开发类似教学管理与评估管理系统提供了借鉴和帮助。
教学管理与评估管理系统开发使系统能够更加方便快捷,同时也促使教学管理与评估管理系统变的更加系统化、有序化。系统界面较友好,易于操作。
关键词:教学管理与评估管理系统;Mysql数据库,node.js的koa技术
Abstract
With the development of the society, all aspects of the society are making use of the advantages of the information age. The advantages and popularization of the Internet make the development of various systems necessary.
This paper takes the practical application as the development background, using software engineering principles and development methods, it is mainly using Mysql database, using node.js koa technology to build a management system, to realize all the functions of the system. The whole development process first analyzes the needs of the teaching management and evaluation management system, and obtains the main functions of the teaching management and evaluation management system. Then the teaching management and evaluation management system overall design and detailed design. Overall design mainly includes system function design, overall system structure design, system data structure design and system security design, etc. The detailed design mainly includes the realization of database access of teaching management and evaluation management system, the specific implementation of main functional modules, and key code. Finally to the teaching management and evaluation management system and the function test, and analyzed the test results, it is concluded that the teaching management and evaluation management system deficiencies and need to improve, for the later teaching management and evaluation management system maintenance provides a convenient, but also for the future development of similar teaching management and evaluation management system provides reference and help.
The development of teaching management and evaluation management system makes the system more convenient and fast, but also promotes the teaching management and evaluation management system to become more systematic and orderly. The system interface is relatively friendly and easy to operate.
Keywords:Teaching management and evaluation management system; Mysql database, node.js of kova technology
1 绪论
1.1 研究背景
教育是一个国家国民素质和社会发展的重要基石,而教学管理与评估管理是教育工作中不可或缺的重要环节。随着信息技术的不断发展,利用现代科技手段来改进教学管理与评估管理已成为一个迫切的需求。
在这个背景下,基于NODE.JS的教学管理与评估管理系统的设计与实现显得尤为重要。NODE.JS是一个基于JavaScript的开放源代码、跨平台的运行时环境,能够让开发者利用JavaScript语言来编写服务器端的应用程序,具有高效的I/O处理能力和良好的可扩展性,非常适合于开发Web应用程序。
教学管理与评估管理系统的设计旨在提供一个集中、高效、便捷的平台,用于教师、学生和管理员之间的信息交流和管理。通过该系统,教师可以轻松地制定教学计划、发布教学资源、布置作业、进行考试评估等操作;学生可以方便地获取教学资源、提交作业、参与在线讨论和查看成绩等;管理员可以实时监控教学进度、统计数据、生成报表等,从而提高教学管理效率和教学质量。
本课题将以NODE.JS作为开发平台,结合前端技术(如HTML、CSS、JavaScript)、数据库技术(如MongoDB)以及其他相关技术,设计并实现一个完善的教学管理与评估管理系统。通过该系统的建设,旨在提升教学管理的智能化、数字化水平,推动教育信息化建设,为教育改革与发展提供强有力的技术支持。
1.2国内外研究现状
教学管理与评估管理系统在国内外一直备受关注,许多研究和实践都在不断拓展和完善相关领域。以下是关于基于NODE.JS的教学管理与评估管理系统设计与实现的国内外研究现状:
国外现状:
系统设计与实现: 许多国外学者致力于基于先进的技术如NODE.JS来设计和实现教学管理系统。他们关注系统的可靠性、扩展性和用户友好性,通过研究实际案例和用户需求,不断改进系统功能并优化用户体验。
大数据与智能化应用: 一些国外研究团队借助大数据和人工智能技术,将教学管理系统与数据分析、智能推荐等功能相结合,实现个性化的教学管理与评估服务,为教师和学生提供更精准的教学支持。
安全与隐私保护: 在国外的研究中,对于数据安全和隐私保护问题备受关注。他们致力于设计安全可靠的系统架构,加强数据加密、访问权限管理等措施,保障教育信息的机密性和完整性。
国内现状:
教育信息化发展: 随着教育信息化的不断深入,国内许多高校和机构开始关注教学管理系统的建设。他们探讨如何利用NODE.JS等先进技术,提高教学效率、管理水平,推动教育现代化进程。
在线教育平台建设: 国内一些在线教育平台也在不断升级与完善,采用NODE.JS等技术构建教学管理系统,实现课程管理、学生成绩评估、资源共享等功能,满足不同用户的需求。
个性化教学与评估: 一些国内研究关注个性化教学和评估管理,通过系统数据分析和智能推荐,为教师提供更精准的教学建议和学生评估,促进教学质量的提升。
总体而言,基于NODE.JS的教学管理与评估管理系统设计与实现已成为国内外教育领域的研究热点,相关研究在系统功能、技术应用、安全性等方面不断取得新进展,为教育信息化提供了有力的支持。
1.3论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对平台需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景,系统开发的现状和本文的研究内容与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
2 平台分析
通过对系统功能模块分析可以得知,主要是对项目元素组合、分解和更换做出相应的单元,再通过系统模块来规划出一个原则,系统的设计首先是围绕管理员需求进行开发设计的,主要是为了能够更好的管理信息和服务于用户,其次就是围绕教学信息管理进行设计,最终的设计必须要满足管理员和用户的需求,这样才能够实现系统的最大意义和价值,并且在设计的时候一定要避免代码相互重复的情况发生。
2.1 系统可行性分析
系统的开发环境和配置都是可以自行安装的,系统使用node.js的koa开发工具,使用比较成熟的Mysql数据库进行对系统用户和管理员之间相关的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。
2.1.1硬件可行性分析
教学管理与评估管理系统的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开系统必须顺畅,不能停顿太长时间;性价比高;安全性高。
2.1.2软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障系统的安全及数据信息的及时备份。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
2.1.3经济可行性
通过经济效益和社会价值来决定一个系统的存活问题,是否通过开发教学管理与评估管理系统来帮助管理员减少工作,是否能够方便用户的使用,假如开发的软件不能够实现成本节约和资源节约,并且还要投入大量的时间、经济和精力,那么这个系统的开发设计是没有意义和价值的,就不具备开发设计的条件。
2.1.4 操作可行性
此次开发的教学管理与评估管理系统登录界面是我们最常见的一种登录窗口进行造成的,只需通过电脑就可以登录访问,没有那些复杂的登录过程。该教学管理与评估管理系统主要是采用B/S结构、node.js的koa技术以及mysql数据库进行开发设计的,使得系统的开发更高效和稳定,也体现出来该系统的的现代化和规范化。用户可以轻松的进行学习,其系统主要特点就是易操作和易管理。
2.2系统功能分析
2.2.1 功能性分析
按照教学管理与评估管理系统的角色,我划分为了学生用户模块和管理员管理模块及教师模块这三大部分。
学生用户端:
(1)注册登录:当用户想要对系统中所实现的功能进行查询管理的时候,就必须进行登录到系统当中,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,用户的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录;
(2)课程讨论:点击“课程讨论”这个菜单,可以查看到系统中所有发布的课程讨论,如果想要了解某一讨论信息的详细信息,点击后面的“详情”会进入详情查看界面,可以对课程讨论信息进行详情查看、点赞、收藏、评论等操作也可以发布讨论信息;
(3)在线考试:点击“在线考试”这个菜单,可以查看到系统中所有发布的试题,如果想要对某一试题进行考试,点击后面的“答题”会进入详情查看界面,可以对试卷进行作答,提交后可查看分数等操作;
(4)通知公告:点击“通知公告”这个菜单,可以查看到系统中所有发布的通知公告,如果想要了解某一公告的详细信息,点击后面的“详情”会进入详情查看界面,可以对公告信息进行详情查看、点赞、收藏、评论等操作;
(5)校园资讯:点击“校园资讯”这个菜单,可以查看到系统中所有添加的校园资讯,如果想要了解某一资讯信息的详细信息,点击后面的“详情”会进入详情查看界面,可以对校园资讯信息进行详情查看、点赞、收藏、评论等操作;
(6)课程信息:点击“课程信息”这个菜单,可以查看到系统中所有添加的课程信息,如果想要了解某一课程信息的详细信息,点击后面的“详情”会进入详情查看界面,可以对课程信息进行详情查看、点赞、收藏、评论等操作;
(7)教学资源:点击“教学资源”这个菜单,可以查看到系统中所有添加的教学资源如果想要了解某一资源信息的详细信息,点击后面的“详情”会进入详情查看界面,可以对资源信息进行详情查看、点赞、收藏、评论和下载文件等操作;
(8)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改信息进行管控。
(9)个人中心:在前台点击“我的”下面的“个人中心”可以查看到个人首页、错题记录和收藏信息进行管控。
教师用户用户端:
(1)注册登录:当用户想要对系统中所实现的功能进行查询管理的时候,就必须进行登录到系统当中,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,用户的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录;
(2)后台首页:登录后进入的是后台首页,在此页面可以查看、修改个人信息或修改密码和跳转网站前台首页,也可直观的看到试卷平均分统计图表;
(3)课程信息管理:点击“课程信息管理”这个按钮可以查看到所有课程信息,支持通过课程名称、课程类型、发布时间等进行查询课程信息,如果想要了解某一课程的详细信息,点击后面的“详情”会进入详情界面,也可查看评论。
(4)教学资源管理:点击“教学资源管理”这个按钮可以查看到所有教学资源,支持通过资源名称、发布时间等进行查询资源信息,如果想要了解某一资源的详细信息,点击后面的“详情”会进入详情界面,进入可对教学视频和PPT文件进行下载。
(5)考试管理:点击“考试管理”这个按钮可以查看到科目列表、试题库、错题记录、试卷列表四个子菜单,在线考试要先创建科目,接着创建试题、在试卷列表生成试卷(学生用户答题,教师可以批卷,只能批改自己发布的试卷。其他教师用户发布的不可见,单选、多选、判断题由系统根据预设的标准答案自动判定,主观和填空题,由老师或管理员自主打分),所有错题的记录信息在错题记录界面展示。
(6)交流管理:点击“交流管理”这个菜单,可以查看到系统中所有添加的论坛话题如果想要了解某一讨论话题的详细信息,点击后面的“详情”会进入详情查看界面,可以对讨论话题进行详情查看、点赞、收藏、评论、添加等操作;
管理员管理模块:
(1)后台首页:登录进入后台可直观看到学生用户、教师用户、考试成绩、试卷平均分的统计图表。
(2)系统用户管理:管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生用户、教师用户等角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。
(3)课程信息管理:点击“课程信息管理”这个按钮可以查看到所有课程信息,支持通过课程名称、课程类型、发布时间等进行查询课程信息,如果想要了解某一课程的详细信息,点击后面的“详情”会进入详情界面,也可查看评论,也点击“添加”进行增加课程信息。。
(4)教学资源管理:点击“教学资源管理”这个按钮可以查看到所有教学资源,支持通过资源名称、发布时间等进行查询资源信息,如果想要了解某一资源的详细信息,点击后面的“详情”会进入详情界面,进入可对教学视频和PPT文件进行下载,也点击“添加”进行增加教学资源信息。
(5)系统管理:点击“系统管理”这个按钮可以查看所有轮播图信息,可以进行详情查看、删除、查看评论、添加等操作。
(6)通知公告管理:点击“通知公告管理”这个按钮可以查看所有公告信息,可以进行详情查看、删除、查看评论、添加等操作
(7)资源管理:点击“资源管理”这个按钮可以查看所有校园资讯、资讯分类等信息,可以进行详情查看、删除、查看评论、添加等操作。
(8)考试管理:点击“考试管理”这个按钮可以查看到科目列表、试题库、错题记录、试卷列表四个子菜单,在线考试要先创建科目,接着创建试题、在试卷列表生成试卷(管理员可查看所有老师发布的试卷,以及学生的答题情况;单选、多选、判断题由系统根据预设的标准答案自动判定,主观和填空题,由老师或管理员自主打分),所有错题的记录信息在错题记录界面展示。
(9)交流管理:点击“交流管理”这个菜单,可以查看到系统中所有添加的论坛话题如果想要了解某一讨论话题的详细信息,点击后面的“详情”会进入详情查看界面,可以对讨论话题进行详情查看、点赞、收藏、评论、添加、删除等操作。
2.2.2 非功能性分析
教学管理与评估管理系统的非功能性需求比如平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1教学管理与评估管理系统非功能需求表
安全性 | 主要指教学管理与评估管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指教学管理与评估管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响教学管理与评估管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着教学管理与评估管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 教学管理与评估管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
通过2.2功能的分析,得出了系统的用例图:
学生用户:注册登录、课程讨论、在线考试、通知公告、校园资讯、课程信息、教学资源、我的账户、个人中心(个人首页、错题记录、收藏)等功能,学生用户角色用例如图2-2所示。
图2-2队员用户角色用例图
教师用户:注册登录、后台首页、课程信息管理、教学资源管理、考试管理、交流管理等功能,教师用户角色用例如图2-3所示。
图2-2教师用户角色用例图
管理员模块:后台首页、系统用户管理、课程信息管理、教学资源管理、系统管理
通知公告管理、资源管理、考试管理、交流管理等功能。管理员角色用例如图2-4所示。
2.4本章小结
本章主要通过对教学管理与评估管理系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。
3 平台总体设计
3.1 系统架构设计
本系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1系统架构设计图
表现层(UI):又称UI层,主要完成本系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本系统时的舒适度。UI的界面设计也要适应不同版本的教学管理与评估管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本系统的数据存储和管理功能。
3.2 系统功能模块设计
3.2.1整体功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本系统中的用例。那么接下来就要开始对本系统的架构、主要功能和数据库开始进行设计。教学管理与评估管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2系统功能模块图
3.2.2用户模块设计
后台管理者能够实现对前台注册的用户增删改查操作,用户模块结构图如下图:
图3-3用户用户模块结构图
3.2.3评论管理模块设计
教学管理与评估管理系统最重要的一个功能就是评论管理,其模块功能结构,具体的结构图如下:
图3-5评论模块结构图
3.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个教学管理与评估管理系统中主要的数据库表总E-R实体关系图。
图3-6 教学管理与评估管理系统总E-R关系图
3.3.2 数据库逻辑结构设计
通过上一小节中教学管理与评估管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_information_id | int | 10 | 0 | N | Y | 课程信息ID | |
2 | publish_account | int | 10 | 0 | Y | N | 0 | 发布账号 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
5 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
6 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
7 | curriculum_chart | varchar | 255 | 0 | Y | N | 课程表图 | |
8 | course_resources | text | 65535 | 0 | Y | N | 课程资源 | |
9 | release_time | datetime | 19 | 0 | Y | N | 发布时间 | |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表evaluation_information (评价信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | evaluation_information_id | int | 10 | 0 | N | Y | 评价信息ID | |
2 | evaluate_account | int | 10 | 0 | Y | N | 0 | 评价账号 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | contact_information | varchar | 64 | 0 | Y | N | 联系方式 | |
5 | publish_account | int | 10 | 0 | Y | N | 0 | 发布账号 |
6 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
7 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
8 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
9 | student_rating | int | 10 | 0 | Y | N | 0 | 学生评分 |
10 | evaluation_time | datetime | 19 | 0 | Y | N | 评价时间 | |
11 | review_details | text | 65535 | 0 | Y | N | 评价详情 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_question_id | mediumint | 8 | 0 | N | Y | ||
2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
3 | type | varchar | 20 | 0 | Y | N | 类型 | |
4 | title | varchar | 255 | 0 | Y | N | 题目 | |
5 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
6 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
7 | score | double | 9 | 2 | Y | N | 总分 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
3 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
4 | contact_information | varchar | 16 | 0 | Y | N | 联系方式 | |
5 | archive_information | varchar | 255 | 0 | Y | N | 档案信息 | |
6 | student_status_information | varchar | 255 | 0 | Y | N | 学籍信息 | |
7 | schedule_information | varchar | 255 | 0 | Y | N | 课表信息 | |
8 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
9 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | subject_id | int | 10 | 0 | N | Y | ||
2 | name | varchar | 255 | 0 | Y | N | ||
3 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_id | mediumint | 8 | 0 | N | Y | 考试id | |
2 | subject_name | varchar | 255 | 0 | Y | N | ||
3 | name | varchar | 32 | 0 | N | N | 考试名称:[2,32] | |
4 | duration | int | 10 | 0 | Y | N | 答题时长 | |
5 | score | double | 9 | 2 | Y | N | 总分 | |
6 | status | varchar | 10 | 0 | Y | N | 状态:启用、禁用 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | user_id | int | 10 | 0 | Y | N | 出题人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_question_id | mediumint | 8 | 0 | N | Y | ||
2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
3 | type | varchar | 20 | 0 | Y | N | 类型 | |
4 | title | varchar | 255 | 0 | Y | N | 题目 | |
5 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
6 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
7 | score | double | 9 | 2 | Y | N | 总分 | |
8 | question_order | int | 10 | 0 | Y | N | 排序 | |
9 | exam_id | mediumint | 7 | 0 | Y | N | 所属试卷 | |
10 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_answer_id | mediumint | 8 | 0 | N | Y | ||
2 | user_id | mediumint | 7 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
3 | exam_id | mediumint | 7 | 0 | N | N | 0 | 考试id |
4 | score | double | 9 | 2 | Y | N | 0.00 | 分数 |
5 | answers | text | 65535 | 0 | Y | N | 答案 | |
6 | score_detail | text | 65535 | 0 | Y | N | 评分详情 | |
7 | objective_score | double | 9 | 2 | Y | N | 0.00 | 客观题得分 |
8 | subjective_score | double | 9 | 2 | Y | N | 0.00 | 主观题得分 |
9 | score_state | tinyint | 4 | 0 | Y | N | 0 | 评分状态 |
10 | nickname | varchar | 255 | 0 | Y | N | 提交人 | |
11 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
13 | comment_desc | varchar | 255 | 0 | Y | N | 评语 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_users_id | int | 10 | 0 | N | Y | 教师用户ID | |
2 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
3 | teacher_gender | varchar | 64 | 0 | Y | N | 教师性别 | |
4 | contact_information | varchar | 16 | 0 | Y | N | 联系方式 | |
5 | archive_information | varchar | 255 | 0 | Y | N | 档案信息 | |
6 | schedule_information | varchar | 255 | 0 | Y | N | 课表信息 | |
7 | teaching_tasks | text | 65535 | 0 | Y | N | 教学任务 | |
8 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
9 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teaching_resources_id | int | 10 | 0 | N | Y | 教学资源ID | |
2 | resource_name | varchar | 64 | 0 | Y | N | 资源名称 | |
3 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
4 | teaching_videos | varchar | 255 | 0 | Y | N | 教学视频 | |
5 | ppt_file | varchar | 255 | 0 | Y | N | PPT文件 | |
6 | resources_material | text | 65535 | 0 | Y | N | 教学资料 | |
7 | release_time | datetime | 19 | 0 | Y | N | 发布时间 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | | 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 | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_answer_id | mediumint | 8 | 0 | N | Y | ||
2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
3 | question_item | varchar | 255 | 0 | Y | N | 选项 | |
4 | title | varchar | 255 | 0 | Y | N | 题目 | |
5 | type | varchar | 255 | 0 | Y | N | 题目类型 | |
6 | exam_id | mediumint | 7 | 0 | N | N | 0 | 考试id |
7 | score | double | 9 | 2 | Y | N | 0.00 | 分数 |
8 | answers | text | 65535 | 0 | Y | N | 用户提交的答案 | |
9 | answer | text | 65535 | 0 | Y | N | 参考答案 | |
10 | score_detail | text | 65535 | 0 | Y | N | 评分详情 | |
11 | objective_score | double | 9 | 2 | Y | N | 0.00 | 客观题得分 |
12 | subjective_score | double | 9 | 2 | Y | N | 0.00 | 主观题得分 |
13 | score_state | tinyint | 4 | 0 | Y | N | 0 | 评分状态 |
14 | nickname | varchar | 255 | 0 | Y | N | 提交人 | |
15 | user_id | int | 10 | 0 | N | N | 提交人ID | |
16 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
3.4本章小结
整个教学管理与评估管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 平台详细设计与实现
教学管理与评估管理系统的详细设计与实现主要是根据前面的需求分析和总体设计来设计页面并实现业务逻辑。主要从界面实现、业务逻辑实现这两部分进行介绍。
4.1学生用户功能模块
4.1.1 首页界面
当进入教学管理与评估管理系统的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4-1所示。
图4-1 首页界面图
4.1.2 用户注册界面
普通的用户只支持对首页部分内容的浏览,想要购买或者查看搜索商品就必须登录到系统,如果你没有本教学管理与评估管理系统的账号的话,添加“注册”根据提示输入好用户信息后,点击“注册”按钮后,系统会对输入的信息进行验证,验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。
图4-2 用户注册界面图
用户注册的关键代码如下。
Register.prototype.index = async function(ctx) {
var group_list = await $.services["user_group"].get_list({}, Object.assign({}, this.config));
return await ctx.render(this.config.tpl + "index.html", {
group_list
});
};
Register.prototype.api = async function(ctx) {
var user = $.services.user;
var body = ctx.request.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 avatar = body.avatar;
var bl_reg = await user.add({
username,
password,
nickname,
user_group,
email,
email_state,
phone,
phone_state,
avatar
});
if (bl_reg) {
return {
result: "注册成功"
};
} else {
return {
error: {
code: 70000,
message: "注册失败",
},
};
}
}
};
4.1.3 用户登录界面
教学管理与评估管理系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到教学管理与评估管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
用户登录的关键代码如下。
var Controller = require("../core/controller.js");
class Login extends Controller {
constructor(config) {
super(
Object.assign({
tpl: "./login/",
service: "user",
},
config
)
);
}
}
Login.prototype.api = async function(ctx) {
var body = ctx.request.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) {
ctx.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: "账户不存在"
}
};
}
};
4.1.4课程讨论界面
点击“课程讨论”这个菜单,可以查看到系统中所有发布的课程讨论,如果想要了解某一讨论信息的详细信息,点击后面的“详情”会进入详情查看界面,可以对课程讨论信息进行详情查看、点赞、收藏、评论等操作也可以发布讨论信息,课程讨论页面如图4-4所示。
图4-4课程讨论界面图
4.1.6在线考试界面
点击“在线考试”这个菜单,可以查看到系统中所有发布的试题,如果想要对某一试题进行考试,点击后面的“答题”会进入详情查看界面,可以对试卷进行作答,提交后可查看分数等操作,界面如下图4-5所示。
图4-5在线考试界面图
4.2教师用户功能模块
4.2.1教练功能界面
教练登录教学管理与评估管理系统,功能为:注册登录、后台首页、课程信息管理、教学资源管理、考试管理、交流管理等,如下图4-6所示:
图4-6教师用户功能界面图
4.2.2课程信息管理界面
点击“课程信息管理”这个按钮可以查看到所有课程信息,支持通过课程名称、课程类型、发布时间等进行查询课程信息,如果想要了解某一课程的详细信息,点击后面的“详情”会进入详情界面,也可查看评论,界面如下图4-7所示。
图4-7课程信息管理界面图
课程信息管理关键代码如下:
module.exports = {
db: "mysql",
web: {
port: 5000,
host: "0.0.0.0"
},
mysql: {
port: 3306,
host: "127.0.0.1",
user: "root",
password: "root",
database: "project93355",
log: false,
timezone:"08:00"
}
}
4.2.3教学资源管理界面
点击“教学资源管理”这个按钮可以查看到所有教学资源,支持通过资源名称、发布时间等进行查询资源信息,如果想要了解某一资源的详细信息,点击后面的“详情”会进入详情界面,进入可对教学视频和PPT文件进行下载,界面如下图4-8所示。
图4-8教学资源管理界面图
4.3管理员功能模块
4.3.1管理员功能界面
教学管理与评估管理系统中的管理人员功能包含有后台首页、系统用户管理、课程信息管理、教学资源管理、系统管理、通知公告管理、资源管理、考试管理、交流管理等,如下图4-9所示:
图4-9管理员功能界面图
4.3.2系统用户界面
教学管理与评估管理系统中的管理人员在“系统用户”这一菜单是中可以对注册的管理员、学生用户、教师用户进行管控,界面如下图4-10所示。
图4-10系统用户界面图
系统用户关键代码如下:
Service.prototype.get_list = async function(query, config) {
var sql = $.mysql.toGetSql(query, Object.assign({}, this.config, config || {}));
return await this.run(sql);
};
Service.prototype.get_list = async function(query, config) {
var sql = $.mysql.toGetSql(query, Object.assign({}, this.config, config || {}));
return await this.run(sql);
};
4.3.3系统管理界面
管理员可以对轮播图进行提交,还可以进行查询、重置、删除、添加等操作。界面如下图4-11所示。
图4-11轮播图管理界面图
4.3.4 考试管理界面
点击“考试管理”这个按钮可以查看到科目列表、试题库、错题记录、试卷列表四个子菜单,在线考试要先创建科目,接着创建试题、在试卷列表生成试卷(管理员可查看所有老师发布的试卷,以及学生的答题情况;单选、多选、判断题由系统根据预设的标准答案自动判定,主观和填空题,由老师或管理员自主打分),所有错题的记录信息在错题记录界面展示。界面如下图4-12所示。
图4-12考试管理界面图
4.3.5资源管理界面
点击“资源管理”这个按钮可以查看所有校园资讯、资讯分类等信息,可以进行详情查看、删除、查看评论、添加等操作。界面如下图4-13所示。
图4-13资源管理界面图
5 系统测试
5.1测试定义及目的
关于系统实现的测试,英文名称是System TEST,简称ST,ST是使用完整其系统的各种功能多次、多案例、多环境测试,这是ST的简单描述。ST可以证明该功能对系统的要求是否得到满足以及是否有效。
对于系统开发的实现,不管开发过程多么努力,在系统运行的时候多少都会出现一些错误信息,所以为了系统的安全性及提高系统的使用率及给用户带来更好的体验,系统在完成之前,一定要进行一遍系统的测试,再完美的程序也会有漏洞,再细心的技术开发员也会有疏忽的时候,所以对于程序的测试是必须要做的一步。通过系统测试找到系统存在的问题,并根据问题的原因进行在线解决问题,如果找不到解决问题的办法可以进行通过咨询指导老师或者通过同学帮忙,一定将问题找出,否则将会出现更多的错误。所以程序出现错误时不可避免,系统测试虽然耗时费力,但是为了确保后期系统的长期使用,必须要进行系统测试,问题解决完成后还要再一步测试,直到没有任何问题后方可进行使用。
5.2性能测试
任何一款程序开发成功后都必须通过软件测试,它是保障软件稳定运行的前提。测试最主要的一步就是性能测试,性能测试内容如下:
(1)对于测试的速度有一定的要求,速度必须快,而且对于测试出来的错误问题一定以最快的速度进行处理解决,并且进行再次测试,保证整个系统运行的安全性。
(2)在系统测试的时候要将测试所用到的测试计划和测试报告保管好,方便后期系统的运行使用后的整体维护操作。
(3)软件测试整个过程中的聚类现象应优先考虑。
(4)对于整体系统测试,不要用自己的思想去认可整个系统,而是从公正的角度的进行对系统进行认可,是否符系统的整合应用。
5.3测试模块
测试系统是最新的Windows 10系统,通过对系统实现的功能模块进行每个功能模块的操作测试,查看每个用户的功能模块所对应的权限信息是否可以操作并且数据信息更新一致。
测试需求 | 测试重点 | 是否达成需求 | 结果 |
用户登录 | 输入账号密码 | 需求达成 | 通过 |
用户注册 | 创建新的账号密码 | 需求达成 | 通过 |
登录失败 | 输入错误账号密码 | 需求达成 | 通过 |
修改信息 | 修改成功 | 需求达成 | 通过 |
添加信息管理 | 增删查改 | 需求达成 | 通过 |
回复管理 | 增删查改 | 需求达成 | 通过 |
搜索查询管理 | 增删查改 | 需求达成 | 通过 |
系统测试方面,我们通常运用的是白盒测试以及黑盒测试这两种方法。白盒测试是指在了解系统内部工作流程的前提下,可以根据需求规范验证系统内部操作是否能够正常运行的测试;而黑盒测试指的是,倘若知道了这个系统的全部功能,可以进行测试检测系统中的每一个功能是否满足正常使用。
为了方便用户使用“教学管理与评估管理系统 ”,以及尽可能少的减少系统测试错误的发生,我们对该系统进行了相对应的测试。
对该系统的全部的功能界面进行测试,简单来说,就是我们输入一些数据并且对其进行提交,之后我们查看每个页面的反馈,检测页面的相关功能可不可以完全实现。
5.4测试结果
测试评估的结果是教学管理与评估管理系统 满足要求中的所有功能,处理大多数错误条件,修复大多数错误并通过测试。教学管理与评估管理系统 的基本功能都是可行的,不管是系统里面的功能还是界面的设计都是可值得推广宣传的。
结论
至此,教学管理与评估管理系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Mysql数据库,node.js的koa技术,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
[1]Shaokang X ,Jiayun X .Design and Implementation of Physical Education Teaching Management System Based on Multi-agent Model[J].International Journal of Computational Intelligence Systems,2023,16(1):
[2]胡娟,蒲源.基于Node.js的低代码人脸识别系统的设计与实现[J].电脑知识与技术,2023,19(28):14-17.DOI:10.14004/j.cnki.ckt.2023.1504.
[3]Arash S O ,Aziz J M B ,Tariq M I .Design and Implementation of Node-Red Based Open-Source SCADA Architecture for a Hybrid Power System[J].Energies,2023,16(5):2092-2092.
[4]布宇凡.基于Node.js的船舶信息管理系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.000688.
[5]闵亮,薛格格,张玉欣,等.基于Node.JS博客系统的设计与实现[J].电子设计工程,2022,30(07):37-41.DOI:10.14022/j.issn1674-6236.2022.07.008.
[6]李蓓,钱志远,张力元.基于浏览器与服务器架构的临床医学教学管理系统的设计与实现[J].中国医学装备,2022,19(01):124-128.
[7]周雨贝.基于Node.js框架的企业级软件包管理系统的设计与实现[D].华中科技大学,2022.DOI:10.27157/d.cnki.ghzku.2022.000069.
[8]吴晓晶.基于ASP.NET的高职院校实验教学管理系统设计和实现[D].贵州大学,2021.DOI:10.27047/d.cnki.ggudu.2021.000333.
[9]周杰.基于MVC架构的日语教学管理系统的设计与实现[J].科技创新与生产力,2021,(10):148-150+154.
[10]郝明阳,高尚兵,于坤,等.虚拟仿真实验课堂教学管理系统的设计与实现[J].淮阴工学院学报,2021,30(03):25-29+75.
[11]Yongwen L .Design and Implementation of Practical Teaching Management System Based on Web in Higher Vocational Colleges[J].Journal of Physics: Conference Series,2021,1852(2):
[12]罗全珍,李彩霞.高职扩招教学管理系统中数据库的设计与实现[J].电子技术与软件工程,2021,(07):217-218.
[13]刘凯.基于微服务的智能实验教学管理系统的设计与实现[D].西安电子科技大学,2021.DOI:10.27389/d.cnki.gxadu.2021.000751.
[14]李茜,苏寒松.高校实验室教学管理系统设计与实现[J].实验室科学,2021,24(01):49-51+56.
[15]耿悦杰.日常教学管理系统的设计与实现[J].无线互联科技,2020,17(21):22-24.
[16]李文尧.基于Sophon的实验教学管理系统的设计与实现[D].南京大学,2020.DOI:10.27235/d.cnki.gnjiu.2020.002469.
[17]薛峰.学分制教学管理制度下高等院校考试管理系统的设计与实现[J].教育教学论坛,2020,(28):18-19.
[18]刘宇晶,冯灵清,冯治旭.基于Java的院系教学管理系统的设计与实现[J].信息技术与信息化,2020,(01):140-142.
[19]徐巍.基于Java技术平台的教学管理系统设计与实现[J].卫星电视与宽带多媒体,2020,(02):67-68.
[20]Yi W ,Fang F .The design and realization of the management system of college physical education under the network environment[J].Journal of Physics: Conference Series,2019,1345(5):052034-052034.
致 谢
至此论文结束,感谢您的阅读。在此我要特别的感谢我的导师,虽然我在实习期间很忙,论文撰写的时候经常是停停改改,但是我的导师依旧十分的负责,时不时的询问我的任务进展情况,跟进我的论文进度,在指导老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识和经验,这些知识和经验令我受益匪浅。同时我也从导师身上看到了自己的不足,不论是在技术层面上还是在对待工作的态度上,导师如同明镜一般照出了我的缺点我的不足。此外,我还要感谢在我实习期间在论文和程序上帮助过我的同学和社会人士,此前我对于node.js的koa技术方面的一些知识还不了解,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测。没有他们我是不能顺利完成本次毕业设计的。至此,我的毕业设计就花上了一个圆满的句号了。
免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-