项目需求说明书
项目名称
基于 AI 的大学智慧排课系统
项目背景与意义
随着高等教育规模的扩展,传统手工排课方式已难以满足日益复杂的课程安排需求,导致资源利用率低、课程冲突频繁等问题。基于人工智能技术的智慧排课系统旨在通过高效的算法和智能优化,提升高校教学管理的效率与质量,为高校教学改革提供技术支持。
项目目标
- 实现自动化排课:综合多种排课因素,精准生成课表。
- 优化资源利用:提高教室与教师资源的使用效率,减少冲突。
- 支持个性化需求:满足用户的特殊课程安排要求。
- 提供数据分析功能:支持高校管理者进行多维度教学资源分析。
系统功能
核心功能模块
- 智能排课:
- 使用遗传算法等 AI 技术自动生成课表。
- 支持个性化排课策略设置,如教师时间偏好、课程优先级等。
- 手动调整课表:
- 提供图形化交互界面,支持实时课表调整。
- 实时冲突检测:
- 动态监控排课冲突,并提供解决方案。
- 多维数据分析:
- 提供教室利用率、教师工作量等统计数据的可视化展示。
- 课表管理与导出:
- 支持课表的多维度查看(如周、月、学期视图)。
- 提供 PDF 和 Excel 格式的课表导出。
- 智能调课:
- 针对节假日或突发事件进行自动调整。
基于核心模块所需依赖
- 用户管理模块:
- 支持用户角色(学校管理员、教师、学生)划分与权限管理。
- 提供用户注册、登录、身份验证(Token)功能。
- 实现教师与课程的绑定管理。
- 课程与资源管理模块:
- 课程信息管理(课程编号、名称、学分、学时等)。
- 教室资源管理(教室编号、容量、设备信息等)。
- 教师信息管理(教师编号、姓名、可用时间等)。
- 时间表与日历模块:
- 提供学期时间表基础数据(开学时间、节假日安排等)。
- 支持自定义时间段和课时规则。
- 集成日历库(如 FullCalendar.js)用于图形化展示课表。
- 排课算法模块:
- 集成遗传算法库,用于生成高效的课表。
- 支持多因素参数优化,如教室优先级、教师偏好、课程优先级等。
- 提供算法配置选项(如种群大小、迭代次数等)。
- 数据分析与可视化模块:
- 使用数据分析工具(如 Apache ECharts)进行图表展示。
- 提供教学资源统计、课程分布、教室利用率等分析功能。
- 支持导出分析报告(PDF 或 Excel 格式)。
- 通知与消息模块:
- 支持课表发布后的通知推送(如短信或邮件提醒)。
- 提供教师和学生的消息公告查看功能。
- 日志与监控模块:
- 集成日志框架记录操作与系统事件。
- 提供异常日志报警功能,便于及时修复问题。
- 文件导出与打印模块:
- 支持课表的 PDF 和 Excel 格式导出。
- 集成打印功能,支持课表的直接打印。
- 冲突检测与解决模块:
- 实现实时监控课程安排冲突(如教室重叠、时间冲突等)。
- 提供冲突解决的可选方案,并支持用户确认。
- 智能调课模块:
- 预置节假日调整、临时变更处理等功能。
- 提供调课建议,并更新相关通知。
用户需求
- 学校管理者:
- 希望优化教学资源配置,提升排课效率。
- 教师:
- 希望灵活安排时间,避免冲突,减轻工作负担。
- 学生:
- 希望获取清晰、无冲突的课表。
技术要求
- 架构:
- 前后端分离,采用单页应用(SPA)架构。
- 后端:使用 Spring Boot 框架实现主要业务逻辑,提供高性能 RESTful API。
- 前端:使用 React 框架构建用户界面,确保良好的交互体验和可扩展性。
-
数据库:
- 采用 MySQL 和 Redis 作为主数据存储,支持高并发和快速访问。
-
算法:
- 重点使用遗传算法,结合教学场景进行创新优化。
-
安全性:
-
使用身份验证机制确保系统安全性。
- 通过 AOP(面向切面编程)对权限进行动态分配与管理,实现精细化的权限控制。
-
性能指标:
- 系统响应时间小于 5 秒。
- 支持 100 并发用户。
-
日志与监控:
- 集成日志系统记录用户操作和错误信息。
- 提供实时监控和报警机制,确保系统稳定运行。
项目团队
- 开发组长:筱锋(架构设计、全栈开发、AI 算法)。
- 前端开发:GUjiYN(页面设计与交互实现)。
- 后端开发:
- FLASHLACK(AI 模块实现)。
- fanfan187(后端功能开发)。
- 柒屿(后端服务支持)。
预期成果
- 功能完整的智慧排课系统:
- 支持多种排课模式及分析功能。
- 用户友好的交互界面:
- 提供简洁直观的排课界面。
- 可靠的教学资源优化工具:
- 减少冲突,提高教学效率。
- 详细的教学数据报告:
- 支持管理者优化决策。
任务清单
- 完成需求分析与功能设计。
- 实现前后端架构与主要功能模块。
- 开发图形化课表调整界面与冲突检测功能。
- 集成数据分析模块,提供教学统计报告。
- 完成系统测试与部署文档。