在传统的班级管理模式中,老师和学生主要依靠微信群、QQ群等即时通讯工具进行沟通和管理。这种方式存在诸多问题:信息分散、通知不及时、任务跟踪困难、积分记录混乱等。随着数字化教育的发展,学校和班级迫切需要一个专门的班级管理系统来提高管理效率,实现班级事务的规范化、智能化管理。
班级管理系统作为教育信息化的重要组成部分,具有广阔的应用前景。随着国家对教育数字化的重视和投入,越来越多的学校开始采用信息化手段管理班级事务。本系统不仅可以帮助老师减轻工作负担,提高管理效率,还能增强学生的参与感和责任感,促进班级凝聚力的提升。未来,系统还可以进一步扩展功能,如家校互动、成绩管理、在线学习等,打造一个全方位的班级管理平台。
本项目旨在开发一个功能全面、易用性强的班级管理系统,主要目标包括:
提高管理效率:通过信息化手段替代传统的手工管理方式,减少重复工作,提高班级管理效率。
规范班级事务:建立标准化的班级管理流程,确保活动、任务、值班等事务的规范化管理。
增强师生互动:提供便捷的沟通和反馈机制,促进老师和学生之间的有效互动。
激发学生积极性:通过积分激励机制,激发学生参与班级活动和完成任务的积极性。
数据化决策支持:提供丰富的统计数据和分析功能,帮助老师做出更科学的管理决策。
体验提示: 本说明书后面提供了测试账号,你可以直接使用这些账号登录体验系统的各项功能。
| 技术名字 | 版本号 | 用来做什么 |
|---|---|---|
| Spring Boot | 2.7.17 | 整个应用的基础框架 |
| MyBatis-Plus | 3.5.3.2 | 用来操作数据库 |
| MySQL | 8.0.33 | 存数据的数据库 |
| Spring Security | - | 管登录和权限的 |
| JWT | 0.11.5 | 用来做登录令牌 |
| Thymeleaf | - | 用来显示网页的 |
| Lombok | - | 让代码写起来更简单 |
系统分成三层来设计:
控制器层:就是接收网页发来的请求,然后告诉后面两层该干什么,最后把结果返回给网页
服务层:真正干活的,处理各种业务逻辑
数据访问层:专门跟数据库打交道,负责存取数据
1src/2├── main/3│ ├── java/com/bysj/4│ │ ├── common/ # 通用类5│ │ ├── config/ # 配置类6│ │ ├── controller/ # 控制器7│ │ ├── entity/ # 实体类8│ │ ├── mapper/ # 数据访问层9│ │ ├── service/ # 业务逻辑层10│ │ ├── utils/ # 工具类11│ │ └── Application.java # 应用入口12│ └── resources/13│ ├── db/ # 数据库脚本14│ ├── static/ # 静态资源15│ ├── templates/ # 模板文件16│ └── application.yml # 应用配置17└── test/ # 测试代码
用户登录、注册
获取当前用户信息
密码加密存储
JWT 令牌管理
用 Spring Security 来管登录和权限
密码用 BCrypt 加密,存到数据库里不是明文
用户登录后拿到一个令牌,后面每次操作都要带上这个令牌
不同角色有不同的权限
创建班级(只有老师能创建)
生成班级邀请码
加入班级(学生)
班级申请审批
老师创建班级时自动成为班主任
学生通过邀请码申请加入班级
班主任审批学生入班申请
学生只能加入一个班级
创建活动
活动报名
取消报名
活动状态管理
活动参与统计
活动可以设置时间、地点、积分和人数限制
活动到期后状态会自动变成已结束
学生报名活动后,系统会自动生成一条积分记录
活动可以被删除,也能恢复
创建待办任务
任务状态更新
任务完成情况跟踪
任务完成率统计
任务完成排名
任务可以设置优先级和截止日期
系统会自动检查任务有没有过期
每个用户的任务完成状态都会被记录
可以看到任务完成率统计和排名
手动安排值班
自动批量安排值班
清空值班记录
查看当日值班
可以指定日期范围和排序方式来安排值班
可以选择跳过周末
系统会自动检查有没有重复安排
可以按班级查询值班情况
积分记录管理
积分审批
积分排名
个人积分详情
学生参加活动后,系统会自动生成积分记录
老师可以审批积分申请
老师可以批准、驳回或撤销积分
可以按班级和个人查询积分情况
可以看到积分排名
| 实体 | 描述 | 关联关系 |
|---|---|---|
| 用户表 | 存储用户信息 | 一个用户可以加入多个班级,可以创建多个活动,可以发布多个任务,可以有多条积分记录 |
| 班级表 | 存储班级信息 | 一个班级可以有多个用户加入,可以有多个活动,可以有多个任务,可以有多个值班记录 |
| 用户班级关系表 | 记录用户在哪个班级、是什么角色 | 多条记录对应一个用户,多条记录对应一个班级 |
| 活动表 | 存储活动信息 | 多个活动对应一个创建者(用户),多个活动对应一个班级,一个活动可以有多条报名记录,一个活动可以对应多条积分记录 |
| 活动报名表 | 记录谁报名了哪个活动 | 多条报名记录对应一个活动,多条报名记录对应一个用户 |
| 任务表 | 存储待办任务信息 | 多个任务对应一个创建者(用户),多个任务对应一个班级,一个任务可以有多条完成记录 |
| 任务完成表 | 记录每个用户完成任务的情况 | 多条完成记录对应一个任务,多条完成记录对应一个用户 |
| 值班表 | 存储值班安排 | 多条值班记录对应一个用户,多条值班记录对应一个班级 |
| 积分记录表 | 存储用户的积分 | 多条积分记录对应一个用户,多条积分记录对应一个活动 |
| 班级申请表 | 记录学生申请加入班级 | 多条申请记录对应一个用户,多条申请记录对应一个班级 |
sys_user:用户表,存储用户基本信息和权限
sys_class:班级表,存储班级信息和邀请码
sys_user_class:用户班级关系表,记录用户在班级中的角色
sys_activity:活动表,存储活动详细信息
sys_activity_signup:活动报名表,记录用户活动报名情况
sys_class_application:班级申请表,记录学生入班申请
sys_duty:值班表,记录值班安排
sys_score_record:积分记录表,记录用户积分情况
sys_todo:待办事项表,存储任务信息
sys_todo_completion:待办事项完成表,记录用户任务完成情况
登录注册和班级管理:用户必须先登录,然后才能创建或者加入班级
班级管理和其他功能:所有的功能都是按班级来分的,用户只能看到和操作自己班级的东西
活动和积分:学生报名参加活动后,系统会自动生成一条积分记录,等老师审批
任务和班级:任务是按班级布置的,只有老师和班委才能创建任务
值班和班级:值班也是按班级安排的,只有老师和班委才能安排值班
用户注册或登录 → 创建或加入班级 → 参加班级活动、完成任务、值班 → 获得积分
老师或班委 → 创建活动或任务 → 学生参加 → 老师审批积分
老师或班委 → 安排值班 → 学生执行值班
| 角色 | 能干什么 |
|---|---|
| 管理员 | 所有功能都能用 |
| 老师 | 可以管班级、管活动、管任务、管值班、审批积分 |
| 班主任 | 可以管班级、管活动、管任务、管值班 |
| 班委 | 可以管活动、管任务、管值班 |
| 学生 | 可以参加活动、完成任务、看积分 |
用 Spring Security 这个工具来控制谁能干什么
用户登录后会拿到一个令牌,每次操作都要带上这个令牌
每个用户有什么权限都存在数据库里,跟他的角色对应
多种角色:有管理员、老师、班主任、班委和学生,不同的人有不同的权限
按班级来管:所有功能都是按班级分的,每个班级都有自己的活动、任务、值班和积分
自动处理:活动到期自动变成已结束、任务过期自动检查、值班可以自动安排
积分鼓励:学生参加活动和完成任务都能得积分,提高学生积极性
能看统计:可以看到任务完成得怎么样、积分排名等统计信息
安全可靠:密码加密存储、登录后才有令牌、不同的人有不同的权限
JDK 17 或更高版本(就是运行 Java 程序的环境)
MySQL 8.0 或更高版本(数据库)
Maven 3.6 或更高版本(用来构建项目的工具)
把项目代码下载下来
改配置文件 application.yml,填好数据库的连接信息
运行数据库脚本 db/bysj_fyf.sql,把表建好
在项目根目录运行命令:mvn clean package,把项目打包
运行命令:java -jar target/BYSJ-FYF-1.0-SNAPSHOT.jar,启动项目
系统已经准备好了一些测试账号,你可以直接用这些账号登录体验:
提示: 你可以本地部署访问 http://localhost:8080,也可以直接体验我们线上部署好的 http://bysj.xuedetong.icu
所有账号的密码都是:123123
班主任账号:
BZR1(密码:123123,已加入班级)
BZR2(密码:123123,已加入班级)
老师账号:
LS10(密码:123123,已加入班级)
LS11(密码:123123,未加入班级,需要创建或加入班级)
LS20(密码:123123,已加入班级)
LS21(密码:123123,未加入班级,需要创建或加入班级)
学生账号:
XS10 到 XS15(共 6 个学生账号)
XS10(密码:123123,已加入班级)
XS11(密码:123123,未加入班级,需要申请加入班级)
XS12-XS15(密码:123123,已加入班级)
XS20 到 XS25(共 6 个学生账号)
XS20 到 XS24(密码:123123,已加入班级)
XS25(密码:123123,未加入班级,需要申请加入班级)
注意: 以下账号尚未加入任何班级,登录后需要先创建班级(老师账号)或申请加入班级(学生账号):
LS11(老师)
LS21(老师)
XS11(学生)
XS25(学生)
班级管理系统是一个功能全面、架构清晰的网页应用,用来简化班级日常管理工作,提高老师和学生之间的互动效率。系统通过活动、任务、值班和积分等功能模块,构建了一个完整的班级管理生态,为老师和学生提供了方便的管理工具。
系统用的都是现在流行的 Java 技术,以后如果想加新功能或者改功能,都比较容易。