面向学生与教务管理场景的在线选课系统,解决传统线下选课效率低、课程信息不透明、人工排课易出错的问题。核心功能包括:课程浏览与检索、在线选退课、选课规则校验、个人课表可视化、课程推荐。业务流程为:学生在选课开放周期内查看课程余量,提交选课申请,系统自动校验学分上限、先修课程与时间冲突,通过后写入个人课表并实时扣减课程容量;退课后容量自动回补,支持多轮补选
采用前后端分离架构,后端基于 Spring Boot + MyBatis 分层设计(Controller/Service/Mapper),MySQL 存储课程、学生、选课记录等核心数据。整体架构分三部分:选课核心服务负责容量扣减与规则校验,课表服务负责时间冲突检测与课表渲染,推荐模块基于已修学分与培养方案计算可推荐课程。实现中遇到的难点与解决方案:① 时间冲突检测需比对多节课时间段,抽象出“节次区间重叠”算法统一判断;② 选退课并发下容量扣减不准,通过数据库乐观锁 + 事务保证一致性;③ 规则校验逻辑分散难维护,重构为责任链模式的规则引擎,新增规则零侵入。最终完成三轮完整选退课流程测试,规则校验准确率达 100%,课表冲突误判率为 0。