Spring Boot 3 + Vue 3 校车座位预约系统源码 前后端分离实战 一、项目简介本系统是一套基于 Spring Boot 3 Vue 3 MySQL 开发的校车座位预约管理平台采用前后端分离架构。系统支持普通用户在线预约校车座位、查看行程、管理个人信息管理员可对线路、车辆、班次、订单、公告及系统配置进行统一管理同时内置司机角色辅助运营。系统内置三种角色普通用户、管理员、司机。二、技术栈技术说明后端框架Spring Boot 3.xORMMyBatis-Plus 3.x含分页插件、逻辑删除权限认证JWTjjwt 自定义拦截器 AuthInterceptor前端框架Vue 3Composition API script setup前端路由Vue Router 4createWebHistory状态管理Pinia用户状态 storeUI 组件库Element Plus含图标构建工具Vite数据库MySQL 8.x含自动建库配置文件存储本地文件系统按日期分目录三、功能模块普通用户端用户注册填写用户名、密码、真实姓名、手机号、学号/工号、身份学生/教师、院系完成注册注册后自动登录并返回 Token。用户登录输入用户名和密码系统验证账号状态与密码 MD5成功后返回 JWT Token 及用户基本信息。首页浏览线路查看所有启用的校车线路列表包括线路名称、起点站、终点站、距离、预计时长等信息。查询班次按线路 ID、运行日期默认当天分页查询可预约的班次显示发车/到达时间、总座位数、已预约数、状态。查看班次详情点击班次查看详细信息包括关联的线路名称、车牌号、司机姓名、座位布局图行数/列数。选择座位并预约在座位选择页查看该班次已被预约的座位号及优先级标记选择一个空闲座位提交预约系统自动生成订单号并扣减可用座位数。我的行程分页查看本人的预约记录列表支持按状态已预约/已核销/已取消等筛选显示订单号、线路、座位号、日期、发车时间。取消预约对状态为“已预约”的订单发起取消填写取消原因系统释放对应座位并更新已预约数。个人信息管理查看和修改本人的真实姓名、手机号、头像、院系等信息不支持修改角色和密码。修改密码输入原密码和新密码系统校验原密码 MD5 后更新为新密码。查看公告浏览已启用的公告列表按发布时间倒序排列支持查看公告标题、内容、类型通知/推荐/重要。查看轮播图获取标记为轮播且启用的公告列表按排序字段升序展示。文件上传上传图片等文件系统按日期分目录存储并返回可访问的 URL。管理员端登录与路由守卫管理员使用账号登录后前端根据角色自动跳转至管理后台未登录或非管理员访问后台路由时自动拦截跳转。仪表盘概览查看注册用户总数、运营线路总数、今日班次数、今日预约数以及今日各线路满载率柱状图和预约趋势折线图。用户管理分页查询用户列表支持按用户名/真实姓名/学号关键字搜索按角色USER/ADMIN/DRIVER筛选编辑用户基本信息切换用户启用/禁用状态。线路管理查看、新增、编辑、删除校车线路字段包括线路名称、起点站、终点站、途经站点JSON 格式、距离、时长、图片、描述、启用状态。车辆管理查看、新增、编辑、删除车辆信息字段包括车牌号、车型、总座位数、座位布局如 22、行数、图片、启用状态。班次管理分页查询班次列表支持按线路 ID、运行日期、状态SCHEDULED/CANCELLED/COMPLETED筛选新增/编辑/删除班次关联线路、车辆、司机。订单管理分页查询所有预约订单支持按订单号模糊搜索、按状态筛选对“已预约”订单执行核销标记 CHECKED_IN对“已核销”订单标记中途下车释放座位强制取消订单填写取消原因。公告管理查看、新增、编辑、删除公告设置公告标题、内容、类型、是否轮播、排序号、启用状态支持上传公告图片。系统配置管理查看和修改系统配置项键值对如预约每日上限、优先预约规则等。四、项目总结本项目的技术亮点在于采用最新的 Spring Boot 3 Vue 3 组合前后端分离架构清晰JWT 鉴权与拦截器实现简洁高效。MyBatis-Plus 的分页和逻辑删除大幅减少重复代码。前端使用 Pinia 管理用户状态Element Plus 提供成熟的 UI 组件。系统覆盖了校车座位预约的完整业务流程包含座位选择、订单核销、数据可视化等核心功能适合作为 Java 全栈开发、课程设计或毕设项目的学习与二次开发参考。界面展示交付内容本项目为完整交付包含完整后端源码完整前端源码数据库初始化脚本SQL万字项目文档设计文档 / 论文可作课程设计、毕业设计参考获取完整源码完整前后端源码 数据库脚本 万字项目文档见 Gitee 仓库https://gitee.com/kangxihuang/src-K121