基于 SpringBoot 的培训机构排课与考勤系统设计与实现

作品简介

面向单校区培训机构的排课与考勤系统:把「教师、教室、班级时段互斥 + 教室容量」四条约束写成可解释的冲突清单,排不了时直接说清被谁占了;配套课次点名、出勤报表与课时统计(6 周 72 课次 1596 条考勤)。Java 17 + SpringBoot 3.2.5 + JPA,H2 免安装、jar 双击即启动,第 23 套「教务排班风」界面。

技术栈

Java、SpringBoot、Spring Data JPA、H2、MySQL、ECharts

功能模块

  • 可解释的冲突检测:四条规则分别实现,命中时生成带名称的描述(如「教师冲突:王丽 在周1第1节 已在「初二数学A班」上课」),一次返回全部原因而不是一句「操作失败」
  • 两级校验:/api/schedule/check 只校验不落库(表单改动即预检),POST /api/schedule 写入前复检,防止绕过界面直接调接口写冲突数据
  • 周课表网格:7 天 × 6 节用 CSS Grid 绘制,点空白格带入星期与节次发起排课,悬停色块可删除,选班级自动带出该班教师
  • 点名幂等:对「课次 + 日期 + 学员」覆盖写,重复提交不产生脏数据;未登记状态不默认成「正常」,避免漏点被算成到课
  • 引用检查式删除:删被班级引用的教师、删还有学员或排课的班级、删已有考勤记录的学员,都会被拒绝并说明还被谁引用
  • 出勤数据分析:6 周 1596 条记录,总体出勤率 91.4%(迟到 3.51% / 请假 2.76% / 缺勤 2.38%);迟到多于缺勤,说明管理重心在到课时间
  • 资源利用率:A301 与 B202 周使用 24 次满负荷、A302 与 B201 仅 12 次,暴露「一个班固定一间教室」策略下的容量错配
  • 10 个页面:总览 / 排课表 / 考勤点名 / 出勤报表 / 课时统计 / 教师 / 班级 / 教室 / 学员 / 系统说明,ECharts 本地内置离线可用

运行环境

  • 编程语言:Java 17
  • 后端框架:SpringBoot 3.2.5、Spring Data JPA、Bean Validation
  • 数据库:MySQL 8.0(交付默认 H2 文件库,免安装、可切换)
  • 前端:原生 HTML + CSS + JavaScript(随 jar 发布,无构建步骤)
  • 可视化:ECharts 5(已内置本地文件,离线可用)
  • 数据规模:7 张表 / 12 个接口 / 10 个页面;演示数据 6 班 133 名学员 1596 条考勤
  • 操作系统:Windows / macOS / Linux
  • 启动方式:双击一键脚本,或 java -jar edu-schedule.jar --server.port=8089

界面截图

文档预览

交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览:

交付内容

  • 完整源码(7 张实体表 + 3 个控制器 + 冲突检测服务 + 演示数据生成器)
  • 已灌好演示数据的 H2 库与可执行 jar(免安装、免联网构建)
  • 毕业设计任务书(Word)
  • 毕业设计开题报告(Word)
  • 毕业论文(Word,七章制,含冲突检测设计、出勤数据分析与系统边界说明)
  • 系统使用与二次开发说明(Word + md)
  • 系统运行截图 10 张 + 功能演示视频
创作时间: