# 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 新增
AI 修改
AI 修改
学生班级管理
学生班级管理
## 许可证 - 本项目为教学/演示用途,未附带开源许可证。根据实际需要自行添加许可证声明。 #### 说明 本文档已按“功能概览 → 技术栈 → 环境要求 → 快速开始 → 目录/数据库 → 课程表策略 → AI 助手 → 页面入口 → 项目截图 → 许可证”重新排版与精简,相关截图均来源于 `src/main/resources/image/`。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)