摘要
随着高校招生规模不断扩大,学生宿舍管理工作日益繁重。传统依赖纸质台账和 Excel 表格的管理方式,存在信息更新滞后、数据分散、查询困难、权限管控薄弱等问题,已难以满足现代化高校宿管工作的需要。本文设计并实现了一套基于 B/S 架构的高校宿舍管理系统,采用 Spring Boot 2.7 作为后端框架,Vue 3 与 Element Plus 构建前端界面,MyBatis 完成数据持久化,MySQL 8.0 存储业务数据,前后端通过 RESTful API 与 JSON 格式进行数据交互,并使用 JWT 实现身份认证与角色权限控制。
系统面向高校宿管中心,涵盖宿舍档案、入住信息、报修工单、访客登记、卫生检查、水电抄表、宿管通知及用户管理等八大功能模块,支持管理员、业务员、查看员三种角色,实现了宿舍业务数据的集中管理与分级授权。经功能测试与角色权限测试,系统运行稳定,界面友好,能够有效提升宿管工作效率,具有一定的实用价值和推广意义。
关键词: 宿舍管理;Spring Boot;Vue;MyBatis;JWT;B/S 架构
Abstract
With the continuous expansion of university enrollment, dormitory management has become increasingly complex. Traditional paper-based and Excel-driven approaches suffer from delayed updates, scattered data, difficult queries, and weak access control. This paper designs and implements a university dormitory management system based on the B/S architecture. The backend is built with Spring Boot 2.7, the frontend with Vue 3 and Element Plus, data persistence with MyBatis, and storage with MySQL 8.0. The system communicates via RESTful APIs in JSON format and uses JWT for authentication and role-based authorization.
The system serves university dormitory management centers and covers eight modules: dormitory archives, check-in records, repair orders, visitor registration, hygiene inspection, utility metering, notices, and user management. It supports three roles---administrator, staff, and viewer---enabling centralized data management with hierarchical permissions. Functional and authorization tests confirm that the system runs stably with a user-friendly interface, effectively improving management efficiency.
Keywords: Dormitory Management; Spring Boot; Vue; MyBatis; JWT; B/S Architecture
目录
1 概述
1.1 研究背景
高校宿舍是学生在校期间学习、生活的重要场所,宿舍管理质量直接影响学生的住宿体验与校园安全稳定。随着高等教育大众化进程加快,各高校在校生人数持续增长,宿舍楼栋数量增多、房型多样、入住调换频繁,宿管业务涉及宿舍分配、报修处理、访客登记、卫生评比、水电费用核算等多个环节,业务链条长、数据关联多。
目前,部分高校宿管工作仍停留在人工登记、表格汇总阶段,信息传递依赖电话或微信群,容易出现床位信息不准确、报修进度难追踪、历史记录难追溯等问题。在信息化、数字化校园建设背景下,构建一套结构清晰、操作便捷、权限可控的宿舍管理系统,已成为提升高校后勤管理水平的现实需求。
1.2 研究目的与意义
研究目的:
- 设计并实现一套功能完整的高校宿舍管理系统,覆盖宿管核心业务场景;
- 采用前后端分离架构,提升系统的可维护性与可扩展性;
- 建立基于角色的权限控制机制,保障数据安全与操作规范;
- 通过统一的数据平台,实现宿舍信息的可视化查询与统计分析。
研究意义:
- 理论意义: 将软件工程中的需求分析、系统设计、分层架构、接口规范等方法应用于高校后勤管理场景,为同类管理信息系统的设计提供参考。
- 实践意义: 系统可替代部分手工台账工作,减少重复录入,提高报修响应效率,便于宿管人员掌握床位占用与卫生检查情况,为管理决策提供数据支撑。
1.3 国内外研究现状
1.3.1 国内研究现状
国内高校信息化建设起步较早,智慧校园、数字后勤已成为发展趋势。近年来,基于 Java Web 技术栈的宿舍管理系统研究较为活跃,多数系统采用 Spring、Spring Boot、SSM(Spring + Spring MVC + MyBatis)等框架构建后端服务,前端逐步从 JSP、Thymeleaf 转向 Vue、React 等单页应用框架。
现有研究与实践主要集中于以下几个方面:
- 宿舍分配与床位管理: 结合学籍信息实现自动或半自动分配,支持调宿、退宿流程;
- 报修与后勤联动: 将报修工单与维修人员、处理状态关联,实现闭环管理;
- 移动端应用: 部分系统提供微信小程序或 App,方便学生在线报修与查询;
- 数据分析: 利用统计图表展示入住率、报修频次、卫生评分等运营指标。
总体来看,国内宿舍管理系统功能日趋完善,但在角色权限细分、界面交互体验、前后端分离规范等方面仍有提升空间。
1.3.2 国外研究现状
国外高校在学生住宿管理方面同样重视信息化。欧美高校普遍使用成熟的住宿管理系统(如 StarRez、Housing Director 等),功能涵盖在线选房、合同签署、费用结算、访客管理等,并与校园一卡通、身份认证系统集成。
国外系统的特点包括:
- 流程标准化: 入住、续住、退宿均有规范工作流;
- 自助服务能力强: 学生可通过门户自主完成选房、报修、缴费等操作;
- SaaS 化部署: 部分产品以云服务形式提供,降低学校自建成本。
相比之下,国内高校宿舍管理在流程细节、本地化需求(如卫生检查评比、水电抄表习惯)等方面存在差异,因此需要结合本土场景进行定制化开发。本课题即在此背景下,采用主流开源技术栈自主设计与实现宿舍管理系统。
1.4 主要研究内容
本文的主要研究内容包括:
- 对高校宿舍管理业务进行调研与需求分析,明确系统功能边界与用户角色;
- 完成系统总体架构设计、数据库设计与各功能模块设计;
- 基于 Spring Boot + Vue 技术栈完成后端接口与前端页面的开发;
- 实现 JWT 身份认证与基于角色的访问控制(RBAC);
- 对系统进行功能测试与权限测试,验证系统的正确性与可用性。
2 系统相关技术
2.1 Spring Boot 框架
Spring Boot 是 Pivotal 团队基于 Spring 框架推出的快速开发脚手架,通过自动配置(Auto Configuration)和起步依赖(Starter)大幅简化了 Spring 应用的搭建与部署过程。本系统后端采用 Spring Boot 2.7.18,集成 Spring MVC 提供 RESTful API 服务。
主要优势:
- 内嵌 Tomcat,可独立运行,部署便捷;
- 约定优于配置,减少 XML 配置;
- 与 MyBatis、MySQL 等组件集成成熟,生态丰富。
本系统中,Spring Boot 负责接收前端 HTTP 请求、调用业务逻辑、返回统一 JSON 响应,并通过拦截器实现 JWT 鉴权。
2.2 Vue 框架
Vue.js 是一套用于构建用户界面的渐进式 JavaScript 框架。本系统前端采用 Vue 3,配合 Vue Router 实现单页应用(SPA)路由管理,使用 Composition API(<script setup>)组织组件逻辑。
在本系统中的应用:
- 各业务页面(宿舍档案、入住信息、报修工单等)均以 Vue 单文件组件(
.vue)形式实现; - 通过
vue-router配置路由守卫,未登录用户跳转至登录页,非管理员禁止访问用户管理页; - 使用
reactive、ref等响应式 API 管理页面状态。
2.3 Element Plus
Element Plus 是基于 Vue 3 的 UI 组件库,提供表格、表单、对话框、分页、消息提示等常用组件。本系统使用 Element Plus 构建管理后台界面,包括:
el-table:业务数据列表展示;el-form、el-input:数据录入与编辑;el-button:操作按钮;el-message:操作结果提示。
统一的组件风格保证了界面美观性与交互一致性,降低了前端开发成本。
2.4 MyBatis 持久层框架
MyBatis 是一款优秀的持久层框架,支持自定义 SQL、存储过程以及高级映射。本系统使用 MyBatis 2.3.2(mybatis-spring-boot-starter),通过注解方式(@Select、@Insert、@Update、@Delete)编写 SQL,无需额外的 XML 映射文件。
配置要点:
- 开启驼峰命名映射(
map-underscore-to-camel-case: true),数据库字段room_no自动映射为 Java 属性roomNo; - 使用
@Mapper注解标识数据访问接口,由 Spring 自动扫描注册。
2.5 Axios 技术
Axios 是基于 Promise 的 HTTP 客户端,用于浏览器端与 Node.js 环境中发起网络请求。本系统前端通过 Axios 封装统一的 HTTP 工具(src/api/http.js),实现:
- 请求拦截:自动在 Header 中附加
Authorization: Bearer <token>; - 响应拦截:统一处理业务状态码,401 跳转登录页,403 提示无权限;
- 基础路径配置:
baseURL: '/api',与后端接口前缀对应。
2.6 JSON 技术
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有易读、易解析、跨语言等优点。本系统前后端全部采用 JSON 进行数据交互:
- 前端通过
POST请求以 JSON 格式提交登录表单、业务数据; - 后端 Controller 使用
@RequestBody接收 JSON 并自动反序列化为 Java 对象; - 后端统一封装
Result对象(含code、msg、data字段)以 JSON 返回。
2.7 MySQL 数据库
MySQL 是目前最流行的开源关系型数据库管理系统之一。本系统使用 MySQL 8.0,数据库名为 db_dorm,字符集为 utf8mb4,存储用户、宿舍、入住、报修、访客、卫生、水电、通知等业务数据。
选型理由:
- 性能稳定,支持事务,适合中小型管理系统;
- 与 Spring Boot、MyBatis 集成成熟;
- 部署维护成本低,适合课程设计与毕业设计场景。
2.8 JWT 身份认证
JWT(JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519),用于在各方之间安全地传输信息。本系统使用 jjwt 库生成和解析 Token,登录成功后返回 Token,后续请求通过 Authorization 请求头携带,由 JwtInterceptor 拦截校验,实现无状态身份认证。
3 系统分析
3.1 可行性分析
3.1.1 技术可行性
本系统所选技术均为业界成熟、文档完善的开源方案:
| 层次 | 技术选型 | 成熟度 |
|---|---|---|
| 后端框架 | Spring Boot 2.7 | 极高 |
| 持久层 | MyBatis | 极高 |
| 前端框架 | Vue 3 + Vite | 极高 |
| UI 组件 | Element Plus | 高 |
| 数据库 | MySQL 8.0 | 极高 |
| 认证 | JWT | 高 |
开发团队具备 Java Web 与前端基础,项目结构清晰(Controller → Mapper → Entity),业务以 CRUD 为主,技术难度适中,具备充分的技术可行性。系统已在本地环境完成搭建与运行验证。
3.1.2 经济可行性
本系统全部基于开源免费技术栈,无需购买商业软件授权:
- 开发工具可使用 IntelliJ IDEA 社区版、VS Code/Cursor 等免费 IDE;
- 数据库 MySQL、运行环境 JDK 均为免费;
- 部署可在一台普通 PC 或云服务器上完成,硬件成本低。
对于高校课程设计或毕业设计场景,开发与运行成本极低,经济可行性良好。
3.1.3 操作可行性
系统界面采用 Element Plus 标准后台布局,左侧菜单导航、右侧内容区域,符合用户使用习惯。各业务模块操作方式统一(查询、新增、编辑、删除),并提供工作台统计数据一览,降低了学习成本,具备良好的操作可行性。
3.2 需求分析
3.2.1 功能需求
根据高校宿管业务场景,系统功能需求如下:
| 模块 | 功能描述 |
|---|---|
| 用户登录 | 账号密码登录,返回 JWT Token |
| 工作台 | 展示各业务模块数据统计卡片 |
| 宿舍档案 | 管理楼栋、房间号、房型、容量、已住人数、状态 |
| 入住信息 | 管理学生姓名、学号、楼栋、房间号、入住日期 |
| 报修工单 | 管理报修内容、处理状态、处理人 |
| 访客登记 | 管理访客姓名、被访学生、楼栋、来访日期、状态 |
| 卫生检查 | 管理检查得分、检查日期、评比结果 |
| 水电抄表 | 管理电费、水费、抄表月份 |
| 宿管通知 | 管理通知标题、发布人、内容、发布状态 |
| 用户管理 | 管理系统账号、姓名、角色、手机号(仅管理员) |
3.2.2 非功能需求
- 安全性: 密码 MD5 加密存储;接口 JWT 鉴权;按角色限制写操作;
- 可用性: 界面简洁,操作反馈及时(成功/失败消息提示);
- 可维护性: 前后端分离,模块划分清晰,便于后续扩展;
- 兼容性: 支持主流现代浏览器(Chrome、Edge、Firefox 等)。
3.2.3 用户角色分析
| 角色 | 账号示例 | 权限说明 |
|---|---|---|
| 管理员 | admin | 全部业务模块的增删改查 + 用户管理 |
| 业务员 | staff | 全部业务模块的增删改查,不可管理用户 |
| 查看员 | viewer | 仅可浏览各业务数据,不可新增/编辑/删除 |
4 系统设计
4.1 系统架构设计
本系统采用前后端分离的 B/S 三层架构:
┌─────────────────────────────────────────────────────┐
│ 浏览器客户端 │
│ Vue 3 + Element Plus + Vue Router │
│ Axios HTTP 请求(JSON) │
└──────────────────────┬──────────────────────────────┘
│ RESTful API
▼
┌─────────────────────────────────────────────────────┐
│ Spring Boot 后端 │
│ ┌──────────┐ ┌──────────────┐ ┌────────────────┐ │
│ │Controller│→ │JwtInterceptor│→ │ Mapper(MyBatis)│ │
│ └──────────┘ └──────────────┘ └───────┬────────┘ │
└──────────────────────────────────────────┼───────────┘
│ JDBC
▼
┌────────────────────────┐
│ MySQL (db_dorm) │
└────────────────────────┘
各层职责:
- 表现层(前端): 负责页面渲染、用户交互、路由跳转、Token 管理;
- 控制层(Controller): 接收请求、参数校验、调用 Mapper、返回 Result;
- 持久层(Mapper): 执行 SQL,完成数据的增删改查;
- 数据层(MySQL): 持久化存储业务数据。
4.2 数据库设计
数据库 db_dorm 共包含 8 张业务表,E-R 关系以楼栋和房间号作为各业务表的关联字段。核心表结构如下:
4.2.1 用户表(sys_user)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键,自增 |
| username | VARCHAR(50) | 登录账号 |
| password | VARCHAR(64) | 密码(MD5) |
| name | VARCHAR(50) | 姓名 |
| role | VARCHAR(20) | 角色(管理员/业务员/查看员) |
| phone | VARCHAR(20) | 手机号 |
| status | INT | 状态(1 启用) |
4.2.2 宿舍表(dorm)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| building | VARCHAR(100) | 楼栋 |
| room_no | VARCHAR(100) | 房间号 |
| type | VARCHAR(100) | 房型 |
| capacity | INT | 容量(床位数) |
| used_count | INT | 已住人数 |
| status | VARCHAR(100) | 状态 |
4.2.3 入住表(stay)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| student_name | VARCHAR(100) | 学生姓名 |
| student_no | VARCHAR(100) | 学号 |
| building | VARCHAR(100) | 楼栋 |
| room_no | VARCHAR(100) | 房间号 |
| check_in_date | VARCHAR(100) | 入住日期 |
4.2.4 报修表(repair)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| building | VARCHAR(100) | 楼栋 |
| room_no | VARCHAR(100) | 房间号 |
| content | VARCHAR(100) | 报修内容 |
| status | VARCHAR(100) | 处理状态 |
| handler | VARCHAR(100) | 处理人 |
4.2.5 访客表(visitor)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| name | VARCHAR(100) | 访客姓名 |
| student_name | VARCHAR(100) | 被访学生 |
| building | VARCHAR(100) | 楼栋 |
| visit_date | VARCHAR(100) | 来访日期 |
| status | VARCHAR(100) | 状态(在访/已离开) |
4.2.6 卫生检查表(hygiene)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| building | VARCHAR(100) | 楼栋 |
| room_no | VARCHAR(100) | 房间号 |
| score | INT | 得分 |
| check_date | VARCHAR(100) | 检查日期 |
| result | VARCHAR(100) | 结果(优秀/合格/整改) |
4.2.7 水电表(utility)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| building | VARCHAR(100) | 楼栋 |
| room_no | VARCHAR(100) | 房间号 |
| electric | DECIMAL(10,2) | 电费 |
| water_fee | DECIMAL(10,2) | 水费 |
| month | VARCHAR(100) | 月份 |
4.2.8 通知表(notice)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| title | VARCHAR(100) | 标题 |
| publisher | VARCHAR(100) | 发布人 |
| publish_date | VARCHAR(100) | 发布日期 |
| content | VARCHAR(100) | 内容 |
| status | VARCHAR(100) | 状态(发布/草稿) |
4.3 功能模块设计
4.3.1 登录认证模块
用户输入账号密码 → POST /api/login
→ 查询 sys_user 表
→ MD5 校验密码
→ 生成 JWT Token(含用户 ID、用户名、角色)
→ 返回 Token 与用户信息
4.3.2 权限控制模块
请求到达 → JwtInterceptor 拦截
→ 解析 Authorization Header 中的 Token
→ Token 无效 → 返回 401
→ 访问 /api/user 且非管理员 → 返回 403
→ 查看员发起 POST/PUT/DELETE → 返回 403
→ 通过 → 放行
前端同步控制:路由守卫检查 Token;用户管理菜单仅管理员可见;查看员隐藏写操作按钮。
4.3.3 业务 CRUD 模块
各业务模块遵循统一的接口设计规范:
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/{module}/list?kw= | 关键字查询列表 |
| GET | /api/{module}/{id} | 查询详情 |
| POST | /api/{module} | 新增或更新(id 为空则新增) |
| DELETE | /api/{module}/{id} | 删除 |
其中 {module} 包括:dorm、stay、repair、visitor、hygiene、utility、notice、user。
4.3.4 工作台统计模块
GET /api/dashboard/stats
→ 分别统计 dorm、stay、repair、visitor、hygiene、utility、notice 表记录数
→ 返回各模块 count 数据
→ 前端以统计卡片形式展示
4.4 接口设计
系统采用 RESTful 风格,统一响应格式:
json
{
"code": 200,
"msg": "success",
"data": { }
}
| code | 含义 |
|---|---|
| 200 | 成功 |
| 401 | 未登录或 Token 失效 |
| 403 | 无权限 |
| 500 | 业务失败 |
5 系统实现
5.1 开发环境
| 项目 | 版本/说明 |
|---|---|
| 操作系统 | Windows 10/11 |
| JDK | 1.8 |
| Maven | 3.6+ |
| Node.js | 16+ |
| MySQL | 8.0 |
| 后端端口 | 8083 |
| 前端端口 | 5175 |
5.2 项目结构
03-宿舍管理系统/
├── backend/ # 后端 Spring Boot 项目
│ └── src/main/java/com/campus/dorm/
│ ├── DormApplication.java # 启动类
│ ├── common/ # 公共类(Result、JwtUtils)
│ ├── config/ # 配置(CORS、拦截器)
│ ├── controller/ # 控制器(9 个)
│ ├── entity/ # 实体类(8 个)
│ ├── interceptor/ # JWT 拦截器
│ └── mapper/ # MyBatis 映射接口(8 个)
├── frontend/ # 前端 Vue 项目
│ └── src/
│ ├── api/http.js # Axios 封装
│ ├── router/index.js # 路由配置
│ ├── layout/Layout.vue # 后台布局
│ └── views/ # 页面组件(9 个)
├── sql/db_dorm.sql # 数据库初始化脚本
└── docs/ # 项目文档
5.3 核心功能实现
5.3.1 登录功能
后端 LoginController 接收用户名和密码,通过 UserMapper.findByUsername 查询用户,使用 DigestUtils.md5DigestAsHex 进行密码比对,验证通过后调用 JwtUtils.create 生成 Token 并返回。
前端 Login.vue 提供登录表单,登录成功后将 Token、用户名、角色存入 localStorage,并跳转至工作台页面。
5.3.2 JWT 拦截器
JwtInterceptor 在 preHandle 方法中:
- 放行 OPTIONS 预检请求;
- 从 Header 提取 Bearer Token;
- 调用
JwtUtils.parse解析 Claims,获取角色信息; - 按 URI 和 HTTP Method 执行权限判断;
- 校验失败时返回 JSON 格式的 401/403 响应。
5.3.3 业务模块实现
以宿舍档案为例,DormController 提供 list、detail、save、delete 四个接口;DormMapper 使用 MyBatis 注解编写 SQL,支持按楼栋关键字模糊查询。前端 Dorm.vue 调用 /api/dorm/list 获取数据,通过 el-table 展示,并提供新增/编辑对话框和删除确认。
其余六个业务模块(入住、报修、访客、卫生、水电、通知)均采用相同的 Controller → Mapper → Vue 页面模式,保证了代码结构的一致性与可维护性。
5.3.4 前端路由守卫
javascript
router.beforeEach((to, from, next) => {
const token = localStorage.getItem('token')
const role = localStorage.getItem('role')
if (to.path !== '/login' && !token) next('/login')
else if (to.meta.admin && role !== '管理员') next('/home')
else next()
})
5.4 系统界面
系统主要界面包括:
- 登录页: 双栏布局,左侧品牌介绍与功能亮点,右侧登录表单,支持演示账号快速填充;
- 工作台: 渐变色 Banner + 七大业务模块统计卡片 + 系统简介;
- 业务列表页: 顶部工具栏(搜索、新增)+ 数据表格 + 编辑/删除操作;
- 后台布局: 左侧深色侧边栏导航 + 顶部用户信息栏 + 右侧内容区。
6 系统测试
6.1 测试环境
与开发环境一致,使用 sql/db_dorm.sql 初始化测试数据,包含 3 个预设用户账号和 6 条各业务模块演示数据。
6.2 功能测试
| 编号 | 测试项 | 操作步骤 | 预期结果 | 实际结果 |
|---|---|---|---|---|
| TC-01 | 管理员登录 | admin / 123456 登录 | 进入工作台,显示「管理员」 | 通过 |
| TC-02 | 业务员登录 | staff / 123456 登录 | 进入工作台,无用户管理菜单 | 通过 |
| TC-03 | 查看员登录 | viewer / 123456 登录 | 进入工作台,无写操作按钮 | 通过 |
| TC-04 | 错误密码 | 输入错误密码登录 | 提示「账号或密码错误」 | 通过 |
| TC-05 | 工作台统计 | 登录后查看统计卡片 | 数量与数据库记录一致 | 通过 |
| TC-06 | 宿舍档案 CRUD | 新增、编辑、删除宿舍记录 | 列表数据正确更新 | 通过 |
| TC-07 | 入住信息 CRUD | 新增、编辑、删除入住记录 | 列表数据正确更新 | 通过 |
| TC-08 | 报修工单 CRUD | 新增、编辑、删除报修记录 | 列表数据正确更新 | 通过 |
| TC-09 | 访客登记 CRUD | 新增、编辑、删除访客记录 | 列表数据正确更新 | 通过 |
| TC-10 | 卫生检查 CRUD | 新增、编辑、删除卫生记录 | 列表数据正确更新 | 通过 |
| TC-11 | 水电抄表 CRUD | 新增、编辑、删除水电记录 | 列表数据正确更新 | 通过 |
| TC-12 | 宿管通知 CRUD | 新增、编辑、删除通知记录 | 列表数据正确更新 | 通过 |
| TC-13 | 用户管理 | 管理员新增业务员账号 | 新账号可正常登录 | 通过 |
6.3 权限测试
| 编号 | 测试项 | 操作步骤 | 预期结果 | 实际结果 |
|---|---|---|---|---|
| PT-01 | 未登录访问 | 清除 Token 后访问业务页 | 跳转登录页 | 通过 |
| PT-02 | 查看员写操作 | viewer 调用 POST 接口 | 返回 403 | 通过 |
| PT-03 | 业务员用户管理 | staff 访问 /user 路由 | 重定向至工作台 | 通过 |
| PT-04 | Token 过期 | 使用无效 Token 请求 | 返回 401,跳转登录 | 通过 |
6.4 测试结论
经过功能测试与权限测试,系统各模块功能正常,角色权限控制符合设计要求,满足预期目标。
7 总结与展望
7.1 工作总结
本文设计并实现了一套基于 Spring Boot 与 Vue 的高校宿舍管理系统,完成了以下工作:
- 分析了高校宿舍管理的业务需求,明确了管理员、业务员、查看员三种角色的权限边界;
- 采用前后端分离架构,后端提供 RESTful API,前端使用 Vue 3 + Element Plus 构建管理界面;
- 设计并实现了 8 张数据库表,覆盖宿舍档案、入住、报修、访客、卫生、水电、通知等核心业务;
- 基于 JWT 实现了身份认证与角色权限控制,保障了系统安全性;
- 通过功能测试与权限测试,验证了系统的正确性与可用性。
7.2 不足与展望
当前系统仍存在以下可改进之处:
- 流程审批: 报修工单、访客登记等可引入审批工作流,支持多级审核;
- 数据可视化: 工作台可增加图表(入住率趋势、报修分类统计等),提升数据分析能力;
- 移动端支持: 可开发微信小程序,方便学生自助报修与查询;
- 消息通知: 集成邮件或短信通知,报修状态变更时自动提醒相关人员;
- 安全增强: 密码可采用 BCrypt 替代 MD5,增加验证码、登录失败锁定等机制;
- 与教务系统对接: 通过接口同步学生学籍信息,实现入住自动分配。
8 参考文献
1 王松. Spring Boot 2 精髓:从构建小系统到架构分布式大系统M. 北京: 电子工业出版社, 2018.
2 尤雨溪. Vue.js 设计与实现M. 北京: 人民邮电出版社, 2022.
3 刘增辉. MyBatis 从入门到精通M. 北京: 电子工业出版社, 2017.
4 Fielding R T. Architectural Styles and the Design of Network-based Software ArchitecturesD. University of California, Irvine, 2000.
5 Jones M, Bradley J, Sakimura N. JSON Web Token (JWT)S. RFC 7519, 2015.
6 张海藩, 牟永敏. 软件工程导论(第6版)M. 北京: 清华大学出版社, 2013.
7 萨师煊, 王珊. 数据库系统概论(第5版)M. 北京: 高等教育出版社, 2014.
8 Element Plus 官方文档EB/OL. https://element-plus.org/, 2024.
9 Spring Boot 官方文档EB/OL. https://spring.io/projects/spring-boot, 2024.
10 李明. 高校智慧宿舍管理系统的设计与实现J. 电脑知识与技术, 2022, 18(15): 78-80.
附录
附录 A 系统部署说明
- 安装 JDK 8、Maven、Node.js 16+、MySQL 8.0;
- 执行
sql/db_dorm.sql初始化数据库; - 修改
backend/src/main/resources/application.yml中的数据库连接信息; - 启动后端:运行
com.campus.dorm.DormApplication; - 启动前端:
cd frontend && npm install && npm run dev; - 浏览器访问
http://localhost:5175,使用 admin / 123456 登录。
附录 B 默认测试账号
| 账号 | 密码 | 角色 |
|---|---|---|
| admin | 123456 | 管理员 |
| staff | 123456 | 业务员 |
| viewer | 123456 | 查看员 |










喜欢就给个点赞+收藏+关注,一键三连谢谢!
源码地址:点击这里
备用地址:点击这里