一、项目简介
本系统是一套基于 Spring Boot 3 + Vue 3 + MySQL 开发的校车座位预约管理平台,采用前后端分离架构。系统支持普通用户在线预约校车座位、查看行程、管理个人信息,管理员可对线路、车辆、班次、订单、公告及系统配置进行统一管理,同时内置司机角色辅助运营。系统内置三种角色:普通用户、管理员、司机。
二、技术栈
| 技术 | 说明 |
|---|---|
| 后端框架 | Spring Boot 3.x |
| ORM | MyBatis-Plus 3.x(含分页插件、逻辑删除) |
| 权限认证 | JWT(jjwt)+ 自定义拦截器 AuthInterceptor |
| 前端框架 | Vue 3(Composition API + script setup) |
| 前端路由 | Vue Router 4(createWebHistory) |
| 状态管理 | Pinia(用户状态 store) |
| UI 组件库 | Element Plus(含图标) |
| 构建工具 | Vite |
| 数据库 | MySQL 8.x(含自动建库配置) |
| 文件存储 | 本地文件系统(按日期分目录) |
三、功能模块
普通用户端
- 用户注册:填写用户名、密码、真实姓名、手机号、学号/工号、身份(学生/教师)、院系完成注册,注册后自动登录并返回 Token。
- 用户登录:输入用户名和密码,系统验证账号状态与密码 MD5,成功后返回 JWT Token 及用户基本信息。
- 首页浏览线路:查看所有启用的校车线路列表,包括线路名称、起点站、终点站、距离、预计时长等信息。
- 查询班次:按线路 ID、运行日期(默认当天)分页查询可预约的班次,显示发车/到达时间、总座位数、已预约数、状态。
- 查看班次详情:点击班次查看详细信息,包括关联的线路名称、车牌号、司机姓名、座位布局图(行数/列数)。
- 选择座位并预约:在座位选择页查看该班次已被预约的座位号及优先级标记,选择一个空闲座位提交预约,系统自动生成订单号并扣减可用座位数。
- 我的行程:分页查看本人的预约记录列表,支持按状态(已预约/已核销/已取消等)筛选,显示订单号、线路、座位号、日期、发车时间。
- 取消预约:对状态为“已预约”的订单发起取消,填写取消原因,系统释放对应座位并更新已预约数。
- 个人信息管理:查看和修改本人的真实姓名、手机号、头像、院系等信息,不支持修改角色和密码。
- 修改密码:输入原密码和新密码,系统校验原密码 MD5 后更新为新密码。
- 查看公告:浏览已启用的公告列表,按发布时间倒序排列,支持查看公告标题、内容、类型(通知/推荐/重要)。
- 查看轮播图:获取标记为轮播且启用的公告列表,按排序字段升序展示。
- 文件上传:上传图片等文件,系统按日期分目录存储并返回可访问的 URL。
管理员端
- 登录与路由守卫:管理员使用账号登录后,前端根据角色自动跳转至管理后台,未登录或非管理员访问后台路由时自动拦截跳转。
- 仪表盘概览:查看注册用户总数、运营线路总数、今日班次数、今日预约数,以及今日各线路满载率柱状图和预约趋势折线图。
- 用户管理:分页查询用户列表,支持按用户名/真实姓名/学号关键字搜索,按角色(USER/ADMIN/DRIVER)筛选,编辑用户基本信息,切换用户启用/禁用状态。
- 线路管理:查看、新增、编辑、删除校车线路,字段包括线路名称、起点站、终点站、途经站点(JSON 格式)、距离、时长、图片、描述、启用状态。
- 车辆管理:查看、新增、编辑、删除车辆信息,字段包括车牌号、车型、总座位数、座位布局(如 2+2)、行数、图片、启用状态。
- 班次管理:分页查询班次列表,支持按线路 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