项目简介
学生宿舍管理系统是一个基于Spring Boot开发的Web应用,用于管理学生宿舍相关信息,包括宿舍管理、学生管理、报修管理、反馈管理等功能。
技术栈
- 后端框架: Spring Boot 2.7.18
- 持久层: MyBatis 2.3.1
- 数据库: MySQL 8.0+
- 视图层: Thymeleaf 3.x
- 验证码: Kaptcha 0.0.9
- 密码加密: BCrypt (Spring Security)
- 前端框架: Bootstrap 5
项目结构
studorm/
├── pom.xml # Maven配置文件
├── src/
│ ├── main/
│ │ ├── java/com/studorm/
│ │ │ ├── StudormApplication.java # 启动类
│ │ │ ├── config/ # 配置类
│ │ │ ├── controller/ # 控制器层
│ │ │ ├── service/ # 服务层
│ │ │ ├── mapper/ # Mapper接口
│ │ │ ├── entity/ # 实体类
│ │ │ ├── dto/ # 数据传输对象
│ │ │ ├── common/ # 通用类
│ │ │ ├── util/ # 工具类
│ │ │ └── interceptor/ # 拦截器
│ │ └── resources/
│ │ ├── application.yml # 应用配置
│ │ ├── mapper/ # MyBatis XML映射文件
│ │ ├── static/ # 静态资源
│ │ └── templates/ # Thymeleaf模板
│ └── test/ # 测试代码
└── doc/ # 文档目录
环境要求
- JDK 8+
- Maven 3.6+
- MySQL 8.0+
- IDE (IntelliJ IDEA / Eclipse)
快速开始
1. 数据库准备
执行 doc/studorm_db.sql 脚本创建数据库和表结构:
mysql -u root -p < doc/studorm_db.sql
或者使用MySQL客户端工具执行SQL脚本。
2. 配置文件
修改 src/main/resources/application.yml 中的数据库连接信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/studorm_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: root # 修改为你的数据库密码
3. 运行项目
方式一:使用Maven命令
mvn spring-boot:run
方式二:使用IDE
直接运行 StudormApplication.java 的main方法。
4. 访问系统
- 管理员登录: http://localhost:8080/admin/login
- 默认账号: admin
- 默认密码: admin123 (需要执行SQL脚本初始化)
注意:如果登录时提示"用户名或密码错误",请参考 doc/密码问题修复说明.md 进行修复。
系统已集成自动修复功能,重启应用后会自动检测并修复密码。
功能模块
已完成
- ✅ 项目基础框架搭建
- ✅ 用户认证模块(管理员登录、学生登录/注册)
- ✅ 验证码功能
- ✅ 密码加密(BCrypt)
- ✅ 登录拦截器
- ✅ 基础实体类(9个核心实体)
- ✅ 所有Mapper接口和XML映射文件
- ✅ 所有Service接口和实现类
- ✅ 所有Controller控制器
- ✅ 宿舍管理模块(CRUD操作)
- ✅ 学生管理模块(登录、注册、分页查询)
- ✅ 报修管理模块(学生提交、管理员处理)
- ✅ 反馈管理模块(学生提交、管理员回复)
- ✅ 换宿舍申请模块(学生申请、管理员审批)
- ✅ 订水管理模块(学生订水、管理员处理,数量限制1-5桶)
- ✅ 电费充值模块(学生/管理员充值,余额管理)
- ✅ 操作日志模块(记录管理员操作)
待开发
- ⏳ 前端页面(各模块的列表、新增、编辑页面)
- ⏳ 文件上传模块(头像上传功能)
- ⏳ 数据统计模块(报修统计、充值统计等)
开发说明
添加新模块步骤
- 创建实体类 (
entity/) - 创建Mapper接口 (
mapper/) - 创建Mapper XML (
resources/mapper/) - 创建Service接口 (
service/) - 创建Service实现 (
service/impl/) - 创建Controller (
controller/) - 创建前端页面 (
resources/templates/)
代码规范
- 类名使用大驼峰命名(PascalCase)
- 方法名和变量名使用小驼峰命名(camelCase)
- 数据库表名和字段名使用下划线命名(snake_case)
- 统一使用Result类作为API响应格式
- 统一使用PageResult类作为分页响应格式
注意事项
-
验证码: 验证码有效期为5分钟,验证后自动清除
-
密码加密: 所有密码使用BCrypt加密存储
-
文件上传: 头像上传限制为2MB,仅支持图片格式
-
订水限制: 单次订水数量限制为1-5桶
-
换宿舍申请: 必须填写目标宿舍号