一、项目简介
本系统是一套面向高校闲置教室资源管理的前后端分离平台。后端采用 Spring Boot、MyBatis 和 MySQL,前端为 classroom-web Vue 项目;系统将教学楼、教室、预约、用户和推荐服务整合在一起,解决传统教室查询效率低、预约冲突和选择缺乏依据的问题。
后端实际包含认证、公共数据、用户教室查询、用户预约、用户推荐,以及管理员楼栋、教室、预约、用户和数据看板控制器。推荐服务基于容量适配、设备匹配、距离偏好和历史拥挤度等因素计算教室综合得分。
二、系统功能
1.1 用户端功能
注册登录与角色身份
系统提供认证接口,支持用户登录和身份校验。学生、教师和管理员按不同角色进入相应功能页面,受保护的预约和管理接口通过登录状态控制访问。
教室条件查询
用户可按教学楼、最小容量、设备需求、日期和时间段等条件查询可用教室。系统在返回结果前校验教室是否与已有预约发生时间冲突,减少重复预约。
多因素智能推荐
用户提交人数、设备、楼栋偏好和时间等需求后,推荐服务对可用教室进行综合评分。容量与人数匹配程度、设备满足情况、距离偏好和使用拥挤度共同影响排序,系统返回得分更高的推荐教室供用户选择。
预约申请与个人记录
用户选择教室后填写预约日期、时段、人数和用途并提交申请。个人预约模块用于查看自己的预约记录、审批状态和驳回原因,使用户能及时调整使用安排。
1.2 管理员端功能
教学楼与教室资源管理
管理员可维护教学楼信息,并对教室的归属楼栋、容量、设备和可用状态进行新增、编辑、查询和删除。资源数据是查询、冲突校验和智能推荐的基础。
预约审批管理
管理员可查看预约申请,按时间、教室和状态筛选记录,执行通过或驳回操作;驳回时可填写原因,结果会反馈给用户端的个人预约记录。
用户管理与数据看板
管理员可维护用户资料和账号状态。数据看板模块汇总教室、预约和用户等数据,帮助管理人员了解教室资源使用和预约审批情况。
三、技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端 | Java、Spring Boot、MyBatis | 业务接口与数据访问 |
| 数据库 | MySQL | 楼栋、教室、用户、预约和推荐基础数据存储 |
| 前端 | Vue | 用户端与管理员端页面 |
| 核心服务 | RecommendService | 教室多因素评分与推荐排序 |
| 身份认证 | 登录认证与角色控制 | 用户和管理员接口访问控制 |
四、项目结构
c72(毕设)/
├── classroom-booking/ # Spring Boot 后端
│ └── src/main/
│ ├── java/com/campus/classroom/
│ │ ├── controller/
│ │ │ ├── AuthController.java
│ │ │ ├── UserRoomController.java
│ │ │ ├── UserReservationController.java
│ │ │ ├── UserRecommendController.java
│ │ │ └── admin/ # 楼栋、教室、预约、用户和看板接口
│ │ └── service/
│ │ ├── RoomService.java
│ │ ├── ReservationService.java
│ │ └── RecommendService.java
│ └── resources/db/
│ ├── schema.sql # 数据库结构脚本
│ └── data.sql # 初始化数据
├── classroom-web/ # Vue 前端项目
└── README.md
五、环境要求
- JDK 8+
- Maven 3.6+
- MySQL 5.7+
- Node.js 12+
- npm
六、数据库初始化
按顺序导入后端资源目录中的数据库结构和初始数据脚本,再根据本机环境修改数据源配置。中文数据建议使用 utf8mb4。
mysql -u root -p --default-character-set=utf8mb4 < src/main/resources/db/schema.sql
mysql -u root -p --default-character-set=utf8mb4 < src/main/resources/db/data.sql
七、后端启动
cd classroom-booking
mvn spring-boot:run
八、前端启动
cd classroom-web
npm install
npm run serve
九、默认账号
项目未提供可确认的默认账号,请以 data.sql 中的初始化数据为准。
十、业务流程说明
9.1 教室查询与智能推荐流程
用户输入日期、时间、人数、设备和楼栋偏好等条件后,系统先从教室资源中筛选满足基础条件且未发生预约冲突的教室。随后 RecommendService 对候选教室计算容量、设备、距离和拥挤度得分,并按综合得分排序返回推荐结果。
用户可在推荐结果中选择教室,或从普通查询列表中选择合适资源后发起预约。
9.2 预约提交与审批流程
用户填写预约用途和人数提交申请后,系统保存预约记录并标记为待处理。管理员在预约管理中查看申请,根据教室安排和使用规则执行通过或驳回;驳回原因与审批结果会同步展示在用户端个人预约记录中。
十一、交付内容
- 项目完整源码,包含 Spring Boot 后端与 Vue 前端代码。
- 数据库脚本文件
schema.sql与data.sql。 - 项目说明文档,包含功能说明、环境、初始化和启动步骤。
本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和个人学习使用。如需购买项目成品或定制化需求可以联系作者。