# classmanager **Repository Path**: guzer/classmanager ## Basic Information - **Project Name**: classmanager - **Description**: 用于个人作业的课程管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-29 - **Last Updated**: 2025-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能教务助手(JavaWeb_23) 一个基于 Spring Boot 3 + MyBatis 的教务管理与课程表系统,支持管理员/教师/学生角色,提供课程管理、班级管理、周课程表展示与 AI 助手联动等功能。 ## 功能概览 - 用户与角色:管理员、教师、学生 - 课程管理:新增/编辑/删除、按教师/班级/时间过滤 - 班级管理:创建班级、班级成员(学生)维护 - 课程表:按周展示教师/学生/班级的排课;支持冲突检测与顺延显示 - AI 助手:自然语言触发课程/用户/班级操作,操作完成后自动跳转刷新页面 - 导入/导出:管理员用户覆盖式导入、规范化导出 - 分页:用户管理每页最多 10 条 ## 技术栈 - 后端:Spring Boot 3、Spring MVC、MyBatis、PageHelper、Spring AI(SSE) - 前端:Thymeleaf 模板、jQuery - 数据库:MySQL 8(utf8mb4) ## 环境要求 - `JDK 17` - `Maven 3.9+` - `MySQL 8` ## 快速开始 1. 初始化数据库 - 在 MySQL 中执行 `db/full_schema.sql`(包含完整结构与示例数据) 2. 构建与运行 - 构建:`mvn -DskipTests package` - 运行:`java -jar target/*.jar` 3. 默认账号(示例数据) - 管理员:`admin / admin` - 教师:`2 / 2`、`王伟 / 123456`、`李强 / 123456`、`武安 / 123456`、`赵敏 / 123456` - 学生:`1 / 1` 及多组示例学生 ## 目录结构 - `src/main/java/com/hxci/eduassistant/controller/`:REST 与页面控制器 - `src/main/java/com/hxci/eduassistant/servcie/`:业务服务与课程表逻辑 - `src/main/resources/templates/eduassistant/`:Thymeleaf 页面模板 - `src/main/resources/mapper/`:MyBatis 映射 XML - `db/full_schema.sql`:统一 SQL 文件(结构+数据) - `src/main/resources/static/js/chat.js`:AI 助手前端逻辑(SSE) ## 数据库设计(关键表) - `t_user`:用户表(唯一 `name`,索引 `role`) - `clazz`:班级(唯一 `share_code`) - `clazz_student`:班级-学生关系(唯一 `clazz_id+student`) - `course`:课程(与班级关联 `clazz_id`,索引 `tea`、`clazz_id`、`day+start_time`) - `course_schedule`:周排课(索引 `(username,role)`、`clazz_id`、`(clazz_id,day,slot)`、`course_id`) ## 课程表与冲突策略 - 排课插入:新增/更新课程成功后按 `start_time` 计算课位并写入 `course_schedule` - 冲突顺延:同日同槽若已存在课程,后添加课程移至该日下一空档;满档则原位标记“(冲突)” ## AI 助手 - SSE 接口:`GET /ai/generateStreamAsString?message=...` - 工具调用需严格 `JSON` 参数(字符串双引号,缺失字段可省略或为 `null`) - 操作完成后将自动发送跳转令牌,前端收到后跳转并刷新 ## 常见问题 - 构建报错“错误: 不支持发行版本 17”:请使用 JDK 17 或调整 `pom.xml` 的编译目标 - 删除后课表仍显示:后端 `DELETE /api/courses/{id}` 同步清理 `course_schedule`(已修复) ## 页面入口(示例) - 课程管理:`/course/view` - 管理员用户管理:`/admin/users/view` - 管理员课表:`/admin/timetable/view` ## 项目截图 > 关键页面与功能一览
![]() 登录 |
![]() 用户管理(管理员) |
![]() 各班级学生 |
![]() 课程管理(管理员) |
![]() 管理员课程表 |
![]() 学生课程表 |
![]() 班级管理(教师) |
![]() 课程管理(教师) |
![]() 教师课程表 |
![]() AI 新增 |
![]() AI 修改 |
![]() 学生班级管理 |