学生宿舍管理系统

🔥 热门
VueMySQLElementPlusExpressJWTEChartsNode

面向高校、高职及寄宿制学校的一站式宿舍信息化管理平台。系统采用前后端分离架构,围绕"宿舍楼 → 房间 → 入住 → 报修"全业务链路,为宿管部门提供学生信息、宿舍资源、入住退宿、故障报修等日常事务的数字化管理能力,帮助管理者从繁琐的纸质台账中解放出来,实现宿舍管理标准化、流程化、可视化。

学生宿舍管理系统 —— 项目介绍文档

项目信息概览

属性 说明
项目名称 学生宿舍管理系统(Student Dormitory Management System)
架构模式 B/S 前后端分离
后端技术 Node.js + Express 5 / MySQL2 / JWT / MySQL 8.0
前端技术 Vue 3 / Element Plus / Pinia / Vue Router / Axios / ECharts / Vite
开发语言 JavaScript(ES6+)
适用场景 计算机毕设、课程设计、源码学习与二次开发

一、项目简介

学生宿舍管理系统 是一套面向高校、高职及寄宿制学校的一站式宿舍信息化管理平台。系统采用前后端分离架构,围绕"宿舍楼 → 房间 → 入住 → 报修"全业务链路,为宿管部门提供学生信息、宿舍资源、入住退宿、故障报修等日常事务的数字化管理能力,帮助管理者从繁琐的纸质台账中解放出来,实现宿舍管理标准化、流程化、可视化。

系统内置系统管理员、宿管员、学生三类角色,各角色拥有独立的操作界面与数据权限,权限控制覆盖前后端双重校验,开箱即用。项目附带完整的数据库初始化脚本与演示数据,部署后即可体验全部功能。

核心价值

维度 价值说明
效率提升 入住 / 退宿 / 报修等流程线上化,替代手工台账,数据实时可查
规范管理 床位容量、楼栋性别、楼层等约束由系统强校验,杜绝超员、错配
数据可视化 入住率、入住趋势等指标以图表形式直观呈现,辅助管理决策
安全可控 三角色权限隔离 + 宿管管理范围隔离,数据操作全程留痕可追溯
成本低廉 轻量级技术栈,单机即可部署运行,无需昂贵授权费用

二、技术架构

系统采用主流的前后端分离技术方案,所有组件均为开源免费技术,生态成熟、易于维护与二次开发。

2.1 后端技术栈

类别 技术选型 版本 说明
核心框架 Express 5.2.1 轻量高性能 Web 服务框架
数据访问 MySQL2 3.23.3 连接池 + 预编译语句 + 事务支持
数据库 MySQL 8.0+ 关系型数据库,utf8mb4 全字符集支持
安全认证 jsonwebtoken(JWT) 9.0.3 无状态 Token 认证,天然支持多端
密码加密 bcryptjs 3.0.3 密码加盐哈希存储,不可逆
跨域处理 cors 2.8.6 跨域资源共享配置
环境配置 dotenv 17.4.2 环境变量加载与管理
开发热重载 nodemon 3.1.14 开发模式代码改动自动重启

2.2 前端技术栈

类别 技术选型 版本 说明
核心框架 Vue 3(Composition API) 3.5.41 渐进式前端框架
UI 组件库 Element Plus 2.14.4 企业级桌面端组件库
路由 Vue Router 5.2.0 单页应用路由与权限守卫
状态管理 Pinia 4.0.2 Vue 官方推荐的状态管理方案
HTTP 客户端 Axios 1.19.0 统一封装请求拦截、错误处理与登录态管理
图表 ECharts 6.1.0 入住率饼图、入住趋势柱状图等可视化
构建工具 Vite 8.2.1 下一代前端构建工具
图标库 @element-plus/icons-vue 2.3.2 Element Plus 配套图标库

2.3 架构图

┌─────────────────────────────────────────────────────────┐
│                      浏览器(Browser)                    │
├───────────────────────┬─────────────────────────────────┤
│    管理端(Admin)      │     学生端(Student)             │
│    localhost:5173      │     localhost:5173              │
│   · 数据看板/数据统计    │     · 我的信息(住宿/床位)         │
│   · 学生管理            │     · 我的报修(提交/跟踪)         │
│   · 宿舍楼/房间管理      │                                 │
│   · 入住/退宿管理        │                                 │
│   · 报修管理            │                                 │
│   · 系统用户管理         │                                 │
└───────────────────────┴─────────────────────────────────┘
                          │  HTTP /api/*
                          ▼
┌─────────────────────────────────────────────────────────┐
│             Express 后端服务(localhost:3000)            │
├─────────────┬──────────────┬──────────────┬──────────────┤
│  Middleware │  Controller  │    Model     │    Route     │
│  JWT 认证    │  业务控制器   │  数据访问层   │  路由定义     │
│  角色鉴权     │  参数校验     │  MySQL2 查询  │  模块化分发    │
│  异常处理     │  事务管理     │  预编译 SQL   │              │
└─────────────┴──────────────┴──────────────┴──────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│             MySQL 8.0(dormitory_management)            │
└─────────────────────────────────────────────────────────┘

三、项目目录结构

student-dormitory-management
├── db/
│   └── init.sql              # 数据库初始化脚本(建库、建表、演示数据)
├── server/                   # 后端服务(Express)
│   ├── src/
│   │   ├── app.js            # 应用入口
│   │   ├── config/           # 配置(端口、数据库、JWT)
│   │   ├── controllers/      # 业务控制器
│   │   ├── middlewares/      # 认证 / 角色校验 / 异常处理
│   │   ├── models/           # 数据访问层
│   │   ├── routes/           # 路由定义
│   │   └── utils/            # 工具(JWT、响应封装、参数校验)
│   ├── test/
│   │   └── api.test.js       # API 集成测试脚本
│   ├── .env.example          # 环境变量模板
│   └── package.json
└── web/                      # 前端应用(Vue 3 + Vite)
    ├── src/
    │   ├── api/              # 接口请求封装
    │   ├── router/           # 前端路由与权限守卫
    │   ├── stores/           # Pinia 状态管理
    │   ├── utils/            # 请求封装、格式化工具
    │   └── views/            # 页面组件
    ├── index.html
    └── package.json

四、系统功能

1. 数据看板(仪表盘)

面向管理员与宿管员,一屏掌握宿舍管理全局数据:

  • 核心统计指标:学生总数、在住人数、宿舍楼数量、房间总数、入住率等
  • 宿舍楼入住率饼图:各楼栋已入住 / 空余床位占比一目了然
  • 近 30 天入住趋势柱状图:直观反映入住办理量的时间分布

2. 学生管理

  • 学生信息增删改查,支持学号、姓名、学院、专业、班级等字段
  • 关键字模糊搜索,快速定位目标学生
  • 学生账号与学号联动,登录即绑定本人数据
  • 住宿状态(未入住 / 在住 / 已退宿)自动维护

3. 宿舍楼管理

  • 宿舍楼信息维护(楼栋名称、楼层数、楼栋类型、备注)
  • 楼栋类型(男 / 女)约束入住分配,避免性别混住
  • 楼栋与宿管员绑定,实现"一栋一管"的责任制管理
  • 删除保护:含房间的楼栋禁止删除,防止数据错乱

4. 房间管理

  • 房间增删改查,支持按楼栋筛选与房间号检索
  • 床位容量 / 已入住人数实时同步,入住自动累加、退宿自动扣减
  • 楼层合法性校验:楼层不得超出楼栋总层数
  • 容量保护:容量不得小于已入住人数,有在住学生的房间禁止删除

5. 入住管理

  • 入住登记:选择未入住学生、可入住房间与空余床号,一键办理
  • 退宿办理:登记退宿日期,自动释放床位与房间容量
  • 多种业务校验:重复入住拦截、床号占用拦截、满员房间拦截
  • 入住记录按状态(在住 / 已退宿)与关键字筛选,全程可追溯

6. 报修管理

  • 学生自主提交报修(强制绑定本人),无需线下跑腿
  • 报修状态流转:待处理 → 处理中 → 已完成,全程留痕
  • 处理人登记与完成时间记录,责任清晰
  • 报修内容长度、状态值合法性等严格校验

7. 系统用户管理(仅管理员)

  • 管理员 / 宿管员账号的创建、修改、禁用与删除
  • 禁止创建学生账号(学生账号随学号联动),从源头保证数据一致性
  • 自我保护:禁止修改、禁用或删除当前登录账号
  • 所有用户支持自助修改密码,原密码验证后才可更换

8. 学生端

  • 我的信息:查看本人学籍、住宿房间、床位与入住信息
  • 我的报修:提交报修、实时跟踪本人报修处理进度

角色权限一览

功能模块 系统管理员 宿管员 学生
数据看板 ✅ ✅ ——
学生管理 ✅ ✅ ——
宿舍楼管理 ✅ ✅(仅本人负责楼栋) ——
房间管理 ✅ ✅(仅本人负责楼栋) ——
入住管理 ✅ ✅(仅本人负责楼栋) ——
报修管理 ✅ ✅ ✅(本人)
系统用户管理 ✅ —— ——
我的信息 / 我的报修 —— —— ✅

五、项目亮点 / 特色

1. 三角色权限体系,前后端双重鉴权

系统内置 admin(系统管理员)、manager(宿管员)、student(学生) 三种角色。前端通过路由守卫控制菜单与页面可见性,后端通过 JWT + 角色中间件对每个接口二次校验,即便绕过前端直接调用接口也会被拒绝,权限安全不留死角。

2. 宿管员管理范围隔离

宿管员只能看到并操作自己负责的宿舍楼及其下属房间、入住记录,对非本人管理的楼栋执行修改、删除等操作一律返回 403。实现"谁负责、谁管理"的精细化授权,多栋宿舍楼并行管理互不干扰。

3. 业务层数据关联保护,杜绝脏数据

系统不依赖数据库外键,而是由业务层统一校验表间关联关系:在住学生禁止删除、有在住学生的房间禁止删除、含房间的楼栋禁止删除,配合满员拦截、床位占用拦截、重复入住拦截,从入口处保证数据完整性与业务合法性。

4. 核心流程事务化,数据原子一致

入住登记、退宿办理等涉及学生状态、房间容量、入住记录多表联动的操作,全部包裹在数据库事务中执行,任一步骤失败即整体回滚,杜绝"房间住满了但学生没登记上"之类的数据不一致问题。

5. 数据可视化辅助决策

内置 ECharts 数据看板,宿舍楼入住率饼图、近 30 天入住趋势柱状图等图表实时联动数据库,让管理者对宿舍资源使用情况"看得见、算得清"。

6. 全方位安全防护

  • 密码安全:bcrypt 加盐哈希存储,数据库泄露也无法还原明文
  • 防 SQL 注入:全部 SQL 采用预编译参数占位
  • JWT 无状态认证:Token 自动续期机制(7 天有效期),请求拦截器统一携带
  • 统一异常处理:404、参数校验、业务异常、系统异常分级响应,接口行为规范一致

7. 完整 API 集成测试,交付质量有保障

项目附带覆盖 90 项断言的后端集成测试脚本,涵盖健康检查、认证鉴权、三角色权限隔离、各模块 CRUD、入住退宿流程、报修流程、统计接口、业务校验与异常处理,一条命令即可回归验证全部接口。

8. 开箱即用,立即可体验

内置完整初始化脚本与演示数据(2 栋宿舍楼、48 间房间、20 名学生、入住与报修记录),三套角色账号全部就绪,数据库初始化后 5 分钟内即可完整体验系统全流程。


文档整理人:MakeXu
文档修订人:MakeXu

客服
反馈