SpringBoot在线选课系统设计研究

时间:2022-06-07 11:53:18

SpringBoot在线选课系统设计研究

摘要:针对高校学生纷繁不一的选课要求,设计了一款基于SpringBoot的在线选课系统,以解决传统选课过程烦琐,排课工作量大的问题。系统基于SpringBoot技术进行开发,设计了课程信息管理、用户信息管理、教室信息管理、班级信息管理、排课管理、选课管理等功能。学生可以使用系统在线进行选课,教师可以使用系统在线选择任教课程,高校管理员可以方便快捷使用系统进行课程编码,并通过系统算法避免课程编排时间和地点冲突。能够有效提高工作效率,节约人力成本。同时,通过SpringSecurity进行安全访问控制,防止越权操作,确保系统的安全性。

关键词:SpringBoot;SpringSecurity;在线选课系统

1引言

公共选修课是高校日常教育体系中的重要一环,其内容丰富,覆盖范围广,有助于学生在学习专业基础知识之外根据自己的兴趣需要扩展人文、科技、艺术等相关知识,能够优化学生的知识机构和见识的广度[1]。公共选修课在提高学生知识的同时,还能提高学生的综合素质,促进学生的个性全面发展[2]。学生选课在高校教学管理中是一项纷繁复杂的工作,而各大高校办学规模的不断加大也让选课管理难度日益增加[3-4],因此设计出一款方便高效的在线选课系统便越来越受到高校教育体系的重视[5-7]。本文设计了一个基于SpringBoot的在线选课系统,学生可以使用系统在线进行选课,教师可以使用系统在线选择任教课程,高校管理员可以方便快捷使用系统进行课程编码,并通过系统算法避免课程编排时间和地点冲突。以此来提高工作效率,节约人力成本。

2需求分析

2.1功能需求分析

在高校教学过程中,让学生根据自己的兴趣爱好选择相关选修课程,可以提高学生的综合素质,增广学生的见闻,并激发学生学习的主观能动性,因此在线选课系统应运而生。在线选课系统除了能让学生方便快捷的选择自己喜爱的选修课程外,也能大大提升选课和排课效率,节约选课排课过程中的人力成本。如上图1所示,系统总体功能有课程信息管理、用户信息管理、教室信息管理、班级信息管理、排课管理和选课管理六个部分。管理员具有课程信息管理、用户信息管理、教室信息管理、班级信息管理等功能。教师和学生都具有选课管理的功能。

2.2安全需求

不同角色的用户登录系统后,会进入到不同的页面,执行不同的操作。为了保证系统运行的安全性,防止越权访问和恶意操作,需要建立基于角色的访问控制(RBAC)策略。根据上文1.1所示的功能需求为管理员、教师和学生三个不同的角色赋予不同的权限。当用户登录系统后,针对其每一个操作,系统判断当前用户所对应角色是否具有指定的操作权限,若具有该权限,则允许当前操作执行;否则禁止当前操作,并强制当前用户退出系统。

3系统功能设计与实现

3.1系统功能设计

(1)课程信息管理模块设计管理员登录系统后,可以对课程信息进行维护:包括添加课程信息、修改课程信息、查询课程信息、删除课程信息等操作。此外,课程信息中还需要指明课总课时数量。(2)用户信息管理模块设计用户包含三种,分别是管理员、教师和学生,通过给不同用户设置不同的角色编码来进行区分。管理员账户由系统拥有者在数据库中直接创建,并赋予其角色编码ADMIN,使其具有管理员角色,管理员可以有多个。然后由管理员负责收集学校所有教师和学生的基本信息,登录到系统中进行教师和学生信息的维护。教师信息维护包括添加教师信息、修改教师信息、查询教师信息和删除教师信息。学生信息维护则包括添加学生信息、修改学生信息、查询学生信息、删除学生信息。(3)教室信息管理模块设计管理员登录系统后,可以对教室信息进行维护:包括添加教室信息、修改教室信息、查询教室信息、删除教室信息等操作。(4)班级信息管理模块设计管理员登录系统后,可以对班级信息进行维护:包括添加班级信息、修改班级信息、查询班级信息、删除班级信息等操作。所有班级都属于选修课下的临时班级,伴随着选修课而存在,因此需要指明班级所关联的课程。每个选课周期开始时,新的班级开始创建,一个选课周期结束时,该班级的生命周期也随即结束。在本选课系统中,一门课程下可以包含多个班级,但一个班级只对应一门课程。此外还需要指定班级人数上限,以控制每个班级的人数。(5)选课管理模块设计教师和学生登录系统后,都可以进行选课。学生可以选择多门课程学习,但每门课程下只能选择一个班级,也就是说一个学生不能出现在同一门选修课下的两个不同的班级中;另外,一个班级中选课的学生人数如果已经到达上限,则该门课程将不允许学生再选课;学生也可以取消选择,取消成功后,该课程即空出一个名额可给其他学生选择。教师可以选择多门课程任教,并且可以选择同一门课程下的多个班级;此外,如果课程下的某个班级已经被教师选择,则该班级将不允许其他老师再选;教师也可以取消选课,即取消对某课程下所有已选班级的选择,取消成功后,原先被该教师所选的班级即可被其他教师选择。(6)排课管理模块设计为了合理安排所有课程的场次信息,保证所有教师所上课程时间及地点不相互冲突,管理员需要对课程实行排课。排课时首先指定所排课程、班级及任课教师;其次选择排课周次,包括起始周次和结束周次。然后是查看当前教师已排课程所占用的时间,并避开这些时间;再次是选择相应的教室,查看对应的教室在指定时间是否空闲。最后选择空闲时间及空闲教室,并重复以上步骤直到课程中的全部课时都已经安排妥当为止。选课及排课流程如下图2所示。

3.2安全性能设计

(1)用户登录控制为了保证系统运行的安全性,避免数据被恶意获取和篡改。系统所有功能都必须在用户成功登录后才能访问,并使用SHA-256哈希算法对数据库中的用户密码进行加密,防止用户密码泄露。(2)用户操作权限控制为了控制不同用户的操作权限,防止越权访问,系统采用RBAC访问控制策略,并使用SpringSecurity进行安全访问的控制。如前3.1所述,本系统中,数据库中用户表结构中每个用户都有一个角色编码,用于标识用户的角色信息。同时数据库中还存在一个角色权限关联表,包含了角色与操作权限的对应关系,当用户登录成功后,系统将根据用户角色,从数据库的角色权限关联表中读取用户的操作权限信息。当用户执行某项的操作时,若包含对应的操作权限,则允许用户进行操作,反之则禁止当前操作,并强制用户退出系统。

3.3数据库设计

本系统采用开源的MySQL数据库系统进行数据存储。包含的数据表有课程信息表、用户信息表、教室信息表、班级信息表、排课信息表、排课详情表、角色权限关联表、班级学生关联表等。课程信息表(课程id、课程名、总课时量、课程描述、删除标志位、创建人id、创建时间、修改人id、修改时间);用户信息表(用户id、用户名、密码、昵称、性别、联系电话、电子邮箱地址、角色编码、删除标志位、创建人id、创建时间、修改人id、修改时间);教室信息表(教室id、教室名称、所在楼栋、删除标志位、创建人id、创建时间、修改人id、修改时间);班级信息表(班级id、班级名称、人数上限、已选课程人数、课程id、删除标志位、创建人id、创建时间、修改人id、修改时间);排课信息表(排课id、所属学期、课程id、教师id、班级id、已排课时量、删除标志位、创建人id、创建时间、修改人id、修改时间);排课详情表(详情id、所属学期、周次信息、所在星期、所在节数、排课id、删除标志位、创建人id、创建时间、修改人id、修改时间);权限信息表(角色编码、权限编码);班级学生关联表(班级id、学生id);系统的E-R图如图4所示:

4总结

本文设计了一款在线选课系统,能够实现学生及教师方便快捷在线选课的需要,并方便管理处理课程编排,避免排课的时间地点冲突,有效提升高校选课工作的效率。同时使用SpringSecurity进行访问权限控制,确保了系统的安全性能。

参考文献:

[1]张刚华,聂洁珠.高校公选课混合式教学创新研究[J].西部学刊,2020(11):76-78.

[2]徐曼曼.基于在线课程资源的高职公选课教学效果研究[J].科技资讯,2019,17(21):85-87.

[3]张俊,宋雪勦,曹慧敏,等.高校教务管理系统选课算法研究综述[J].攀枝花学院学报,2017(2):49-52.

[4]王倩,徐宝磊.网络在线选课模块建设研究——以四川文理学院教务管理系统为例[J].四川文理学院学报,2019,29(05):30-33.

[5]白伟丽.学生选课系统的设计与实现[J]电脑与电信,2018(10):38-40.

[6]李帅,黄克敏,杨义,等.高校学生选课系统的研究与设计[J].电脑知识与技术,2017(9):99-100.

[7]杨博森,严张凌.微服务架构下学生选课系统的设计与实现[J].信息与电脑(理论版),2020,32(20):84-86.

作者:杨晟 罗奇 单位:湖南信息职业技术学院