以下是基于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模型)。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐