基于 Spring Boot 和 Vue 3 的宿舍管理系统,包含管理员端和学生端,支持楼栋、房间、学生、报修、请假、公告及数据看板管理。
- 后端:Java 17、Spring Boot 4.0.8、Spring Security、Spring Data JPA、MySQL 8
- 前端:Vue 3、TypeScript、Element Plus、Pinia、Vue Router、Axios、ECharts、Vite
- 认证:服务端内存 UUID Token,密码使用 BCrypt 哈希保存
Token 有效期为 2 小时,后端重启后现有 Token 会失效。该方式适合课程设计和单机部署;多实例部署时需要改用共享会话或其他统一认证方案。
SmartDormSystem/
├─ backend/
│ ├─ src/main/java/org/example/bwxw/
│ │ ├─ controller/ API 接口
│ │ ├─ service/ 业务逻辑
│ │ ├─ repository/ 数据访问
│ │ ├─ entity/ JPA 实体
│ │ ├─ dto/ 请求和响应对象
│ │ ├─ config/ 安全与 Web 配置
│ │ └─ filter/ Token 认证过滤器
│ └─ src/main/resources/
├─ frontend/
│ └─ src/
│ ├─ views/admin/ 管理员页面
│ ├─ views/student/ 学生页面
│ ├─ layouts/ 双端布局
│ ├─ api/ API 调用
│ ├─ stores/ 登录状态
│ └─ router/ 路由与权限守卫
└─ outputs/architecture/ 交互式项目架构图
需要安装 Java 17、Node.js 24 和 MySQL 8。
日常使用可直接双击根目录的 启动项目-开发模式.bat,停止服务时运行 停止项目-开发模式.bat。首次配置或需要排查问题时,也可以按下面的命令手动启动。
-
创建数据库:
CREATE DATABASE alone CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
复制
backend/config/application-local.example.properties为backend/config/application-local.properties,填写本机 MySQL 密码。该本地文件已被 Git 忽略。 -
启动后端:
cd backend .\mvnw.cmd spring-boot:run
-
启动前端:
cd frontend npm ci npm run dev
-
打开 http://localhost:5173。后端地址为 http://localhost:8080。
如果数据库中还没有管理员,请在启动前设置环境变量 SMART_DORM_BOOTSTRAP_USERNAME 和 SMART_DORM_BOOTSTRAP_PASSWORD。程序只会创建一次首个超级管理员,并要求首次登录后修改临时密码。创建成功后应清空临时密码环境变量。
项目不会自动导入测试学生;可在管理员页面使用学生批量导入功能。
cd frontend
npm ci
npm run build
cd ..\backend
.\mvnw.cmd test
.\mvnw.cmd package后端产物为 backend/target/backend-0.0.1-SNAPSHOT.jar,前端产物位于 frontend/dist/。
当前 Compose 只启动后端和前端,数据库使用宿主机上的 MySQL。完整步骤见 README-Docker.md。
- 管理员创建或重置账号时必须设置 8–128 位临时密码。
- 新管理员首次登录后必须修改临时密码。
- 新学生默认密码由导入或管理流程设置;使用默认密码登录时只能只读浏览,修改密码后才能提交数据。
- 不要在公开仓库、截图或部署文档中记录真实账号和密码。
项目提交前应通过:
cd frontend
npm run build
cd ..\backend
.\mvnw.cmd testGitHub Actions 会在推送和 Pull Request 时执行相同检查。
本项目使用 MIT License。