项目简介

本系统是一套面向高校的教室资源管理平台,旨在解决校园闲置教室利用率低、预约流程繁琐、教室选择缺乏依据等问题。系统通过多因素匹配算法对教室进行智能评分与推荐,帮助用户快速找到最合适的教室,同时提供完整的预约申请与审批流程,实现教室资源的合理分配与高效利用。


核心功能介绍

用户端功能

功能模块 说明
用户认证 支持注册、登录,区分学生、教师、管理员三种角色
教室查询 按楼栋、最小容量、设备需求等条件筛选可用教室
智能推荐 基于容量适配、设备匹配、距离偏好、拥挤度等多因素综合评分,推荐 Top-K 最优教室
预约申请 选择日期、时段、人数、用途等信息提交预约,系统自动校验时间冲突
我的预约 查看个人预约记录及审批状态(待审/通过/驳回)

管理端功能

功能模块 说明
楼栋管理 维护教学楼信息(名称、位置等)
教室管理 维护教室信息(所属楼栋、容量、设备等)
预约审批 审核用户预约申请,支持通过或驳回并填写驳回原因

智能推荐算法

推荐服务采用加权多因素评分模型,综合以下四个维度计算教室适配度:

  • 容量适配(30%):教室容量与需求人数的匹配程度

  • 设备匹配(25%):教室设备与用户需求设备的满足程度

  • 距离偏好(25%):用户常用楼栋与教室所在楼栋的距离

  • 拥挤度(20%):教室历史使用频率(预留扩展)

系统自动排除与课程表、已有预约冲突的教室,并按综合得分排序返回 Top-K 推荐结果。


技术栈介绍

后端

技术 版本 说明
Java 1.8 开发语言
Spring Boot 2.7.18 Web 框架
MyBatis 2.3.1 ORM 持久层
MySQL 8.x 关系型数据库
Lombok - 简化实体类编写
FastJSON2 2.0.43 JSON 序列化

前端

技术 版本 说明
Vue 3.3.4 前端框架
Vue Router 4.2.4 路由管理
Axios 1.5.0 HTTP 请求
Vite 4.4.9 构建工具

项目结构

c72(毕设)/
├── classroom-booking/          # 后端 Spring Boot 项目
│   ├── src/main/java/com/campus/classroom/
│   │   ├── config/             # 配置类(跨域等)
│   │   ├── controller/         # 控制器
│   │   │   ├── admin/          # 管理端接口
│   │   │   ├── user/           # 用户端接口
│   │   │   └── common/         # 公共接口
│   │   ├── entity/             # 实体类
│   │   ├── mapper/             # MyBatis Mapper
│   │   ├── service/            # 业务逻辑层
│   │   ├── common/             # 通用类(Result 等)
│   │   └── ClassroomApplication.java
│   ├── src/main/resources/
│   │   ├── mapper/             # MyBatis XML 映射
│   │   ├── db/schema.sql       # 数据库建表脚本
│   │   └── application.yml     # 应用配置
│   └── pom.xml
│
├── classroom-web/              # 前端 Vue 项目
│   ├── src/
│   │   ├── api/                # 请求封装
│   │   ├── router/             # 路由配置
│   │   ├── views/              # 页面组件
│   │   │   ├── admin/          # 管理端页面
│   │   │   ├── user/           # 用户端页面
│   │   │   ├── Login.vue
│   │   │   └── Register.vue
│   │   ├── App.vue
│   │   └── main.js
│   ├── index.html
│   ├── vite.config.js
│   └── package.json
│
└── README.md

数据库设计

数据库名:classroom_booking,字符集:utf8mb4

表结构说明

表名 说明
user 用户表,存储用户名、密码、角色(1学生/2教师/3管理员)、常用楼栋等
building 楼栋表,存储教学楼名称、位置
building_distance 楼栋距离表,存储楼栋间距离(米),用于推荐算法中的距离评分
room 教室表,存储所属楼栋、名称、容量、设备(JSON)
course_schedule 课程占用表,存储教室的固定课程安排(星期、时段)
reservation 预约表,存储用户预约信息及审批状态(0待审/1通过/2驳回)

建表脚本

建表脚本位于 classroom-booking/src/main/resources/db/schema.sql,首次部署时执行该脚本即可完成数据库初始化。


运行说明

环境要求

  • JDK 1.8+

  • Node.js 16+

  • MySQL 8.x

数据库初始化

  1. 创建数据库并执行 classroom-booking/src/main/resources/db/schema.sql

  2. 修改 classroom-booking/src/main/resources/application.yml 中的数据库连接信息(用户名、密码等)

启动后端

cd classroom-booking
mvn spring-boot:run

后端默认运行在 http://localhost:8080

启动前端

cd classroom-web
npm install
npm run dev

前端默认运行在 http://localhost:5173,开发模式下已配置代理,API 请求会转发至后端。

默认说明

  • 管理员角色:role = 3,登录后自动跳转至管理端

  • 学生/教师角色:role = 12,登录后进入用户端


开发作者

项目 信息
作者 Jay
定制联系 微信:Jay8059
开发日期 2026年

本系统为毕业设计项目,融合多因素匹配算法实现校园闲置教室的智能预约与推荐。

更多推荐