摘要
在数字化教育日益成为主流的今天,教务管理系统的智能化和便捷性显得尤为重要。为满足学校、教师、学生及家长对教务管理的高效需求,我们基于Spring Boot框架设计并实现了一款掌上教务系统。该系统不仅具备课程分类管理功能,使各类课程信息有序展示,便于用户浏览和选择;还提供了课程选择管理功能,学生可以根据自己的兴趣和需求,在线进行课程选择,极大地提高了选课的灵活性和自主性。同时,系统还集成了成绩信息管理功能,支持成绩的录入、查询和统计分析,让教师和家长能够实时了解学生的学习情况,为教育决策提供有力支持。这些核心功能的实现,使得掌上教务系统成为了一款功能全面、操作简便、实用性强的教务管理工具,为教育教学管理带来了革命性的变革。
本掌上教务系统采用的数据库是Mysql,使用springboot技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
关键词:掌上教务系统;springboot框架;mysql数据库
In today's increasingly mainstream digital education, the intelligence and convenience of educational management systems are particularly important. To meet the efficient needs of schools, teachers, students, and parents for academic management, we have designed and implemented a handheld academic management system based on the Spring Boot framework. This system not only has the function of course classification management, making various course information displayed in an orderly manner, making it easy for users to browse and choose; It also provides a course selection management function, allowing students to choose courses online according to their interests and needs, greatly improving the flexibility and autonomy of course selection. At the same time, the system also integrates grade information management functions, supporting the input, query, and statistical analysis of grades, allowing teachers and parents to understand students' learning situation in real time, providing strong support for educational decision-making. The implementation of these core functions has made the handheld educational management system a comprehensive, easy to operate, and highly practical educational management tool, bringing revolutionary changes to educational and teaching management.
The database used in this handheld educational system is MySQL, developed using Springboot technology. During the design process, the system code was fully ensured to have good readability, practicality, scalability, universality, ease of maintenance, ease of operation, and concise pages.
Keywords: Palm based educational administration system; Springboot framework; MySQL database
目录
第 1 章 引 言
1.1 选题背景
1.2 课题研究意义
1.3 论文结构安排
第 2 章 掌上教务系统的需求分析
2.1 系统可行性分析
2.2 系统需求分析
2.3 系统操作流程
2.4 系统用例分析
第 3 章 掌上教务系统总体设计
3.1 系统功能模块设计
3.2 数据库设计
第 4 章 关键模块的设计与实现
4.1 登录模块
4.2 注册模块
4.3 用户管理模块
4.4 课程资讯模块
4.5 课程信息模块
4.6 课程选择模块
4.7 成绩信息管理模块
4.8 通知公告管理模块
第 5 章 系统实验与结果分析
5.1 测试的目的
5.2 系统部分测试
5.3 系统测试结果
第 6 章 结论
参考文献
致谢
随着信息技术的迅猛发展,教育信息化已成为现代教育改革的重要方向之一。在这一背景下,掌上教务系统的设计与实现显得尤为重要。传统的教务管理方式往往依赖于纸质文档和繁琐的线下流程,不仅效率低下,而且难以满足学生和教师日益增长的个性化需求。因此,我们选题研究基于Spring Boot的掌上教务系统,旨在利用先进的互联网技术和移动应用技术,构建一个便捷、高效、智能的教务管理平台。该系统将实现课程分类管理、课程选择管理、成绩信息管理等功能,为用户提供更加灵活、个性化的服务,提高教务管理的效率和准确性。通过这一研究,我们期望能够为教育信息化的推进提供有力的技术支撑和实践经验。
-
- 课题研究意义
在当今教育信息化的浪潮中,Spring Boot掌上教务系统的设计与实现具有重要的研究意义。该系统不仅是对传统教务管理方式的革新,更是对提升教育教学质量、优化学生学习体验的一次有益尝试。通过Spring Boot框架的应用,该系统能够提供一个高效、稳定、可扩展的教务管理平台,实现课程分类管理、课程选择管理、成绩信息管理等功能,极大地提高了教务管理的效率和便捷性。
研究Spring Boot掌上教务系统的设计与实现,首先有助于推动教育信息化的发展,使教育资源得到更加合理有效的利用。其次,该系统能够为学生提供更加个性化、便捷的学习服务,帮助学生更好地规划学习路径,提高学习效率。同时,对于教师而言,该系统也提供了更加便捷的教学管理工具,有助于教师更好地管理课程和学生,提升教学质量。
此外,Spring Boot掌上教务系统的设计与实现还具有一定的技术探索意义。通过该系统的开发,我们可以深入研究Spring Boot框架的应用,探索其在构建企业级应用中的优势和局限性,为相关技术的推广和应用提供实践经验和理论支持。
本系统不仅有助于推动教育信息化的发展,优化学生的学习体验,提升教学质量,还具有技术探索的价值,为相关技术的推广和应用提供有力支持。
论文将分层次经行编排,除去论文摘要、目录、致谢、文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第1章 交代了项目的背景以及开发的实际意义。
第2章 对本系统的可行性、功能需求展开分析。
第3章 阐述了项目的总体设计。
第4章 阐明了掌上教务系统详细功能的实现,主要根据技术性的功能模块功能实现。
第5章 罗列了部分系统调试与测试的记录。
掌上教务系统存储所使用的是mysql数据库以及开发中所使用的是IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用springboot框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。
在开发掌上教务系统中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、mysql5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
掌上教务系统的设计与实现是为了让学校的使用者更加方便的进行管理学生相关联的一些信息,使用者查找管理的时候能够节省大量的时间和精力,有效减少不必要的查找时间。系统在功能上划分为学生端、教师端和管理员端三大部分。
学用户端:
(1)注册登录:当学生想要对系统中所实现的功能进行查询管理的时候,就必须进行登录到系统当中,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,学生的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录;
(3)课程资讯:当用户点击“课程资讯”这一菜单按钮,会显示管理员在后台发布的所有的课程资讯信息,可以查看详情;进行点赞、收藏、评论等操作;
(4)课程信息:当用户点击“课程信息”这一菜单按钮,会显示管理员在后台发布的所有的课程信息,可以查看详情,进行选课、点赞、评论、收藏等;
(5)通知公告:当用户点击“通知公告”这一菜单按钮,会显示管理员在后台发布的所有的通知公告,可以查看详情,进行点赞、收藏、评论等操作;
(6)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改+自己收藏的信息进行管控。
(7)个人中心:在前台点击“我的”下面的“个人中心”可以对个人首页、课程选择、成绩信息、论坛列表、收藏等信息进行管控。
管理员端:
(1)系统用户管理:管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生以这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。
(2)系统管理:进入后台首页工具栏点击“系统管理”这个按钮可以查看所有轮播图信息,可以进行详情查看、删除、查看评论等操作。
(3)资源管理:进入后台首页工具栏点击“资源管理”这个按钮可以查看所有资讯列表、资讯分类等信息,可以进行详情查看、删除、查看评论等操作。
(4)通知公告管理:进入后台首页工具栏点击“通知公告管理”这个按钮可以查看所有通知公告等信息,可以进行详情查看、删除、查看评论等操作。
(5)交流管理:进入后台首页工具栏点击“交流管理”这个按钮可以查看所有论坛列表等信息,可以进行详情查看、删除、查看评论等操作。
(6)课程选择管理:进入后台首页工具栏点击“课程选择管理”这个按钮可以查看所有课程选择信息,可以进行详情增删改查等操作。
(7)成绩信息管理:进入后台首页工具栏点击“成绩信息管理”这个按钮可以查看所有成绩信息,可以进行详情增删改查等操作。
(8)个人信息:管理员点击“个人信息”按钮,可以对个人的头像、昵称、手机号码等信息进行更新。
(9)修改密码:管理员点击“修改密码”按钮,可以对登录密码进行更改,首先输入原密码,然后再输入新密码和确认密码,当原密码正确,输入两次新密码一致,则修改成功,否则给出错误提示信息。
教师端:
(1)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改+自己收藏的信息进行管控。
(2)个人中心:在前台点击“我的”下面的“个人中心”可以对个人首页、学生用户、课程信息、课程选择、成绩信息、论坛列表、收藏等信息进行管控。
-
-
- 非功能性需求分析
-
掌上教务系统的非功能性需求比如自助掌上教务系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
安全性 | 主要指掌上教务系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指掌上教务系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响掌上教务系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着掌上教务系统的页面展示内容进行操作,就可以了。 |
可维护性 | 掌上教务系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
掌上教务系统可以实现快速、准确地收集和处理各种信息,而且在使用过程中,只有在按照指定的界面和指定的参考文献,才能够正确地获取和处理信息,而若信息未能满足预期,就会被退出第一步,并且在第二步中,还会继续检查信息的准确性,以确保最终的结果能够满足预期的目标。
图2.2 信息添加流程图
无论是何种用户角色,只要进入了不正常的系统操作界面,就可以使用不同的信息内容来进行操作。当用户尝试删除系统中的数据时,必须先ACK这些数据是否已经被删除,如果没有,就应该按照图2.3的指示进行操作,以免影响系统的正常运行。
图2.3 信息删除流程图
掌上教务系统中学生、教师角色用例图如图2.4所示:
图2.4 学生/教师角色用例图
掌上教务系统中管理员角色用例图如图2.5所示:
图2.5 管理员角色用例图
- 3 章 掌上教务系统总体设计
在分析了项目开发的背景、意义以及其开发的可行性后,接下来就是探讨项目的功能划分,以及具体实现的时候对项目数据库各种表的设计,在本章会做一个系统的介绍。
系功能模块的设计就是把系统具体要实现哪些功能,功能如何划分做一个系统的架构,以模块图的方式展示出来,方便我们进行功能得罗列以及涉及。在系统的功能方面,项目分成了管理员+学生+教师三个模块,每个模块登录进去对应相应的功能,具体的功能模块图如图3.1所示。
图3.1 掌上教务系统功能模块图
数据库的设计承载者系统的各种数据,在一个系统中各种数据都需要一个专门的容器,数据库就是这个容器,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。
下面是整个掌上教务系统中主要的数据库表总E-R实体关系图。
图3.2 掌上教务系统总E-R关系图
通过前面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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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_classification_id | int | 10 | 0 | N | Y | 课程分类ID | |
2 | course_classification | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_information_id | int | 10 | 0 | N | Y | 课程信息ID | |
2 | teacher_account | int | 10 | 0 | Y | N | 0 | 教师账号 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
5 | course_classification | varchar | 64 | 0 | Y | N | 课程分类 | |
6 | course_images | varchar | 255 | 0 | Y | N | 课程图片 | |
7 | release_time | datetime | 19 | 0 | Y | N | 发布时间 | |
8 | course_content | varchar | 64 | 0 | Y | N | 课程内容 | |
9 | course_video | varchar | 255 | 0 | Y | N | 课程视频 | |
10 | course_introduction | text | 65535 | 0 | Y | N | 课程简介 | |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_selection_id | int | 10 | 0 | N | Y | 课程选择ID | |
2 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
5 | student_id | varchar | 64 | 0 | Y | N | 学生学号 | |
6 | teacher_account | int | 10 | 0 | Y | N | 0 | 教师账号 |
7 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
8 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
9 | course_classification | varchar | 64 | 0 | Y | N | 课程分类 | |
10 | course_selection_time | datetime | 19 | 0 | Y | N | 选课时间 | |
11 | course_selection_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 | 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 | grade_information_id | int | 10 | 0 | N | Y | 成绩信息ID | |
2 | teacher_account | int | 10 | 0 | Y | N | 0 | 教师账号 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
5 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
6 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
7 | student_id | varchar | 64 | 0 | Y | N | 学生学号 | |
8 | class_name | varchar | 64 | 0 | Y | N | 班级名称 | |
9 | release_time | date | 10 | 0 | Y | N | 发布时间 | |
10 | subject_name | varchar | 64 | 0 | Y | N | 科目名称 | |
11 | subject_grades | int | 10 | 0 | Y | N | 0 | 科目成绩 |
12 | grade_details | text | 65535 | 0 | Y | N | 成绩详情 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | 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 | 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 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
3 | student_phone_number | varchar | 16 | 0 | Y | N | 学生电话 | |
4 | student_id | varchar | 64 | 0 | N | N | 学生学号 | |
5 | class_name | varchar | 64 | 0 | Y | N | 班级名称 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_users_id | int | 10 | 0 | N | Y | 教师用户ID | |
2 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
3 | teacher_id | varchar | 64 | 0 | N | N | 教师编号 | |
4 | teachers_phone_number | varchar | 16 | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 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 | 更新时间: |
- 4 章 关键模块的设计与实现
管理员和学生在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员、教师和学生的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。
图4.1 登录界面图
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
注册模块满足学生进行学生相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其主界面展示如下图4.1所示。
图4.2 注册界面图
注册关键代码如下:
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生、教师这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户,这里以教师用户为例。界面如下图4.3所示。
图4.3 系统用户界面图
当用户点击“课程资讯”这一菜单按钮,会显示管理员在后台发布的所有的课程资讯信息,可以查看详情;进行点赞、收藏、评论等操作;界面如下图4.4所示
图4.4 课程资讯界面图
当用户点击“课程信息”这一菜单按钮,会显示管理员在后台发布的所有的课程信息,可以查看详情,进行选课、点赞、评论、收藏等;界面如下图4.5所示。
图4.5 课程信息界面图
点击“课程选择”按钮会显示出所有的课程选择信息,支持对课程选择的增删改查操作界面如下图4.6所示。
图4.6 课程选择界面图
进入后台首页工具栏点击“成绩信息管理”这个按钮可以查看所有成绩信息,可以进行详情增删改查等操作。界面如下图4.7所示。
图4.7 成绩信息管理界面图
成绩信息管理关键代码:
@RequestMapping(value = {"/count_group", "/count"})
public Map<String, Object> count(HttpServletRequest request) {
Query count = service.count(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
点击“通知公告管理”这个菜单,可以查看到系统中所有添加的通知公告信息,支持通过标题对通知公告信息进行查询,只有管理员用户可以添加新的通知公告,点击“添加”按钮,根据提示输入通知公告信息,点击“提交”按钮,新的通知公告信息就在系统中显示出来了,也可以对添加的通知公告信息进行删除。界面如下图4.8所示。
图4.8 通知公告界面图
通过前面章节的介绍,我们可以看到本掌上教务系统已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。
用户登录功能测试:
表5.1 用户登录功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 用户登录成功的情况 | 点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。 | 登录成功并调整到用户界面 | 正确 |
课程信息添加功能测试:
表5.2 课程信息添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
课程信息添加模块测试 | 课程信息添加成功的情况 | 在课程信息的页面中将点击添加,输入课程信息关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
课程信息添加模块测试 | 课程信息添加失败的情况 | 在课程信息页面中不填写的名称、类型信息,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
密码修改功能测试:
表5-3 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
通过编写掌上教务系统的测试用例,已经检测完毕用户的登录模块、课程信息添加模块、修改密码模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。
- 6 章 结论
在构建基于Spring Boot的掌上教务系统项目的过程中,我们深刻体验到了Spring Boot框架带来的便捷与高效。Spring Boot以其自动配置、轻量级和微服务的理念,极大地简化了开发流程,使得我们能够快速搭建起一个功能齐全、性能稳定的教务管理系统。
该系统不仅为学生提供了直观、易用的界面来查询课程信息、管理个人资料和查看成绩,还通过移动端应用的方式,使得学生能够随时随地访问系统,享受个性化的教务服务。同时,系统也为教务管理人员提供了强大的后台管理功能,包括课程管理、学生信息管理、成绩录入等,大大提高了教务管理的效率和准确性。
在项目实施过程中,我们充分发挥了Spring Boot框架的优势,利用其提供的各种工具和组件,快速解决了开发过程中遇到的各种问题。同时,我们也注重代码的可读性和可维护性,通过合理的模块划分和清晰的代码结构,保证了系统的稳定性和可扩展性。
通过此次项目的实践,我们不仅对Spring Boot框架有了更深入的了解,也积累了丰富的项目开发经验。我们相信,随着技术的不断发展和应用的不断扩展,基于Spring Boot的掌上教务系统将在教育行业中发挥越来越重要的作用,为推进教育数字化、智能化贡献更多的力量。未来,我们将继续优化和完善系统,不断满足用户的新需求,推动教育事业向更高层次发展。
[1]罗光武,陈典灿,吴荷,等. 应用Springboot+Vue框架的时间管理软件的设计与实现 [J]. 工业控制计算机, 2024, 37 (04): 64-66.
[2]Górski T . SmarTS: A Java package for smart contract test suite generation and execution [J]. SoftwareX, 2024, 26 101698-.
[3]Anjaningrum D W ,Azizah N ,Suryadi N . Spurring SMEs’ performance through business intelligence, organizational and network learning, customer value anticipation, and innovation - Empirical evidence of the creative economy sector in East Java, Indonesia [J]. Heliyon, 2024, 10 (7): e27998-.
[4]Setiawan R A A ,Munawar S S ,Ishizaki R , et al. Optimizing biomass supply for cofiring at power plants to minimize environmental impact: A case of oil palm empty fruit bunches in West Java [J]. Fuel, 2024, 367 131359-.
[5]赵慧,温艳冬. 基于对分课堂的Java语言程序设计课程合作学习模式 [J]. 计算机教育, 2024, (04): 204-208. DOI:10.16512/j.cnki.jsjjy.2024.04.039.
[6]刘慧玲,谭定英,陈平平. 基于SpringBoot和Vue.js的大学生团队管理系统的设计 [J]. 电脑编程技巧与维护, 2024, (03): 120-122. DOI:10.16184/j.cnki.comprg.2024.03.039.
[7]许婷,佘昉. 高职院校教务管理工作优化实践研究 [J]. 山西青年, 2024, (05): 160-162.
[8]张建兵,方紫玉. 混合式教学模式下Java语言程序设计过程性考核实践探索 [J]. 电脑知识与技术, 2024, 20 (07): 168-170. DOI:10.14004/j.cnki.ckt.2024.0431.
[9]徐少军,李宗哲,梅杰,等. 基于Springboot+Vue框架的质量检验监督管理系统研发 [J]. 纺织标准与质量, 2024, (01): 11-14+21.
[10]吴伶琳. 基于SpringBoot的客户关系管理系统设计与实现 [J]. 无线互联科技, 2023, 20 (24): 60-62.
[11]陈蒙. 基于计算机技术的智能教务管理系统的设计与应用 [J]. 软件, 2023, 44 (12): 157-159.
[12]王春黎. 大数据时代高校教务管理数字化发展研究 [J]. 黑龙江教育(高教研究与评估), 2023, (12): 39-41.
[13]杜江舟. 高校教务管理系统信息化建设研究 [J]. 科教文汇, 2023, (21): 13-15. DOI:10.16871/j.cnki.kjwh.2023.21.004.
[14]沈镱武,徐弼昉,仇琦. 高校教务管理系统信息化研究 [J]. 科技风, 2023, (25): 90-92. DOI:10.19392/j.cnki.1671-7341.202325030.
[15]缪娟,杨琴. Oracle闪回技术在高校教务系统中的应用实践探析 [J]. 电脑知识与技术, 2023, 19 (25): 55-60. DOI:10.14004/j.cnki.ckt.2023.1391.
[16]任杰,陈兴劼,段晓英,等. 浅析高校教务系统建设过程及管理建议——以重庆公共运输职业学院为例 [J]. 现代职业教育, 2023, (17): 73-76.
[17]俞强. 教务管理系统在教学管理工作中的应用 [J]. 佳木斯职业学院学报, 2023, 39 (04): 97-99.
[18]唐瑞明,谭倩芳. 高校教务管理系统设计 [J]. 电子技术与软件工程, 2023, (03): 49-53.
[19]Yang Y . Design and Implementation of Student Information Management System Based on Springboot [J]. Advances in Computer, Signals and Systems, 2022, 6 (6):
[20]Hejing W . Commerce Middle Office Management System Based on Springboot [J]. International Journal of Advanced Network, Monitoring and Controls, 2022, 7 (2): 32-45.
致谢
在顺利完成基于Spring Boot的掌上教务系统项目之际,我衷心地向所有支持和帮助过我的人表达最诚挚的感谢。
首先,我要感谢我的导师/指导者,是您的悉心指导和无私帮助,让我能够深入理解Spring Boot框架的精髓,掌握系统的开发技巧。您的严谨治学态度和丰富的项目经验,不仅让我在技术上取得了显著的进步,更让我在思维方式和工作方法上得到了极大的提升。
其次,我要感谢我的团队成员们。在这个项目中,我们共同面对挑战,互相学习,共同进步。正是你们的支持和配合,使得我们能够顺利解决各种难题,按时完成任务。每一个小小的进步,都离不开你们的付出和努力。
此外,我还要感谢我的家人和朋友。是你们的支持和鼓励,让我能够在遇到困难和挫折时,保持积极的心态,勇往直前。你们的爱和关心,是我不断前进的动力源泉。
最后,我要感谢所有为这个项目付出过努力的人。正是因为有了你们的支持和帮助,我们才能够成功地完成这个掌上教务系统项目,为教育行业的数字化转型贡献了一份力量。在未来的日子里,我们将继续努力,不断优化和完善系统,为更多的用户提供更好的服务。再次感谢大家!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~