基于springboot宿舍管理系统设计开发实现
·
以下是基于SpringBoot的宿舍管理系统的技术栈、功能设计、数据库及测试设计的详细方案:
技术栈设计
后端框架
- SpringBoot 2.7.x(简化配置,快速开发)
- Spring Security(权限控制)
- MyBatis-Plus(数据库ORM,支持CRUD操作)
前端框架
- Thymeleaf(服务端模板引擎)或 Vue.js 3.x(前后端分离方案)
- Element UI(组件库)
- Axios(HTTP请求)
数据库
- MySQL 8.0(关系型数据库)
- Redis(缓存登录状态、高频数据)
其他工具
- Swagger/Knife4j(API文档生成)
- Lombok(简化实体类代码)
- JUnit 5 + Mockito(单元测试)
功能模块设计
1. 用户管理模块
- 角色分类:管理员、宿管员、学生
- 功能:登录/注销、密码修改、个人信息维护
2. 宿舍管理模块
- 宿舍楼栋管理:增删改查楼栋信息
- 宿舍房间管理:分配/调整房间、空床位查询
3. 学生管理模块
- 学生信息录入:学号、姓名、班级关联宿舍
- 批量导入:支持Excel文件导入学生数据
4. 报修管理模块
- 学生提交报修:填写故障类型、描述
- 维修状态跟踪:待处理/维修中/已完成
- 评价功能:学生对维修服务评分
5. 访客管理模块
- 访客登记:身份证号、访问事由、被访学生
- 离校登记:记录离开时间
6. 统计报表模块
- 宿舍入住率统计
- 报修分类统计
数据库设计(关键表)
1. 用户表(user)
CREATE TABLE `user` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`username` VARCHAR(50) UNIQUE NOT NULL,
`password` VARCHAR(100) NOT NULL,
`role` ENUM('admin','dorm_manager','student') NOT NULL,
`real_name` VARCHAR(50)
);
2. 宿舍表(dormitory)
CREATE TABLE `dormitory` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`building_no` VARCHAR(10) NOT NULL,
`room_no` VARCHAR(10) NOT NULL,
`bed_count` INT DEFAULT 4,
`occupied_count` INT DEFAULT 0
);
3. 学生住宿表(student_dorm)
CREATE TABLE `student_dorm` (
`student_id` INT,
`dormitory_id` INT,
`bed_no` INT,
`check_in_date` DATE,
FOREIGN KEY (`student_id`) REFERENCES `student`(`id`),
FOREIGN KEY (`dormitory_id`) REFERENCES `dormitory`(`id`)
);
4. 报修表(repair)
CREATE TABLE `repair` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`student_id` INT,
`dormitory_id` INT,
`description` TEXT,
`status` ENUM('pending','processing','completed') DEFAULT 'pending',
`submit_time` DATETIME DEFAULT CURRENT_TIMESTAMP
);
系统测试设计
1. 单元测试
- 使用JUnit 5测试Service层逻辑
@Test
void testRoomAllocation() {
DormitoryService service = new DormitoryService();
boolean result = service.allocateRoom(1, 101); // 分配学生到101房间
assertTrue(result);
}
2. API测试
- Postman自动化测试集合:
- 测试登录接口(/api/login)状态码200
- 测试无权限访问(/api/admin)返回403
3. 性能测试
- JMeter模拟100并发登录请求,响应时间<500ms
- 数据库查询压力测试(>1000条记录分页)
源码结构建议
src/
├── main/
│ ├── java/
│ │ └── com/dorm/
│ │ ├── config/ # 安全、Swagger配置
│ │ ├── controller/ # 各模块控制器
│ │ ├── entity/ # 数据库实体
│ │ ├── service/ # 业务逻辑
│ │ └── DormApplication.java
│ └── resources/
│ ├── static/ # CSS/JS文件
│ ├── templates/ # 前端页面(若用Thymeleaf)
│ └── application.yml # 数据库连接配置
└── test/ # 单元测试目录
以上方案可直接用于项目开发,数据库设计支持扩展字段(如添加水电费管理)。实际开发中需根据需求调整权限颗粒度(如使用RBAC模型)。



















更多推荐




所有评论(0)