yangyi il y a 4 mois
Parent
commit
7c5c367805
1 fichiers modifiés avec 191 ajouts et 0 suppressions
  1. 191 0
      README.md

+ 191 - 0
README.md

@@ -0,0 +1,191 @@
+# 宿舍管理系统 (Dormitory Management System)
+
+基于 **SSM(Spring + Spring MVC + MyBatis)** 框架的高校宿舍管理系统,提供线上化的宿舍资源管理和学生自助服务。
+
+## 项目背景
+
+传统高校宿舍管理多依赖纸质表格或 Excel 记录,存在信息分散、更新滞后、学生体验差、管理效率低等问题。本系统旨在通过信息化手段解决上述痛点,实现宿舍管理的数字化和自动化。
+
+## 技术栈
+
+| 层级 | 技术 | 版本 |
+|------|------|------|
+| 语言 | Java | JDK 8 |
+| 核心框架 | Spring (IoC, AOP, TX) | 5.3.31 |
+| Web MVC | Spring MVC | 5.3.31 |
+| ORM | MyBatis | 3.5.6 |
+| 数据库 | MySQL | 8.0.25 |
+| 连接池 | Druid | 1.2.8 |
+| 分页 | PageHelper | 5.3.2 |
+| 视图 | JSP + JSTL + EL | Servlet 4.0 |
+| 前端 | Bootstrap 4.3.1 + jQuery 3.3.1 | CDN |
+| 构建工具 | Maven | 3.x |
+| 服务器 | Apache Tomcat | 9.x |
+
+## 系统架构
+
+采用 **SSM 三层架构 + MVC 设计模式**:
+
+```
+表示层 (JSP + Bootstrap + jQuery)
+      ↓ HTTP 请求 / 响应
+控制层 (Spring MVC @Controller)
+      ↓
+服务层 (Service Interface + Impl + @Transactional)
+      ↓
+持久层 (MyBatis Mapper Interface + XML SQL)
+      ↓
+数据库 (MySQL)
+```
+
+请求经过 `DispatcherServlet` → 拦截器链(`LoginInterceptor` → `AuthInterceptor`)→ `@Controller` → `Service` → `Mapper` → 数据库。
+
+## 功能模块
+
+### 1. 认证与授权
+- 用户名/密码登录,MD5 密码加密
+- Session 会话管理
+- 双角色:管理员(role=0)和学生(role=1)
+- 未登录拦截 + 管理员权限拦截
+
+### 2. 宿舍楼管理(管理员)
+- 宿舍楼的增删改查
+- 分页查询与条件过滤(名称、编号、性别类型)
+- 删除时校验是否存在关联房间
+
+### 3. 房间管理(管理员)
+- 按楼栋管理房间,增删改查
+- 分页查询,按楼栋和楼层过滤
+- 删除时校验是否存在关联床位
+
+### 4. 床位管理(管理员)
+- 按房间管理床位,增删改查
+- 分页查询,按楼栋和房间号过滤
+- 床位状态:空闲 / 已入住 / 维修
+- 删除时校验是否为占用状态
+
+### 5. 用户管理(管理员)
+- 学生账户的增删改查
+- 分页查询,按姓名、性别、学号过滤
+- 头像上传功能
+- 删除时校验是否当前有住宿记录
+
+### 6. 分配管理(管理员)
+- 查看所有住宿分配记录(关联用户、楼栋、房间、床位)
+- 手动分配学生到指定床位
+- 退宿操作(结宿日期 + 床位释放)
+
+### 7. 学生自助服务(学生端)
+- 查看个人信息和当前住宿情况
+- 头像上传(验证图片类型,最大 2MB)
+- 三步选宿向导:选择楼栋 → 选择房间 → 选择床位
+- 按性别过滤可选床位
+- 事务保障:防止重复分配
+
+## 数据库设计
+
+| 表名 | 说明 |
+|------|------|
+| `user` | 用户表(管理员 + 学生) |
+| `dormitory_building` | 宿舍楼表 |
+| `room` | 房间表 |
+| `bed` | 床位表 |
+| `assignment` | 分配记录表 |
+
+**预置数据:**
+
+| 用户名 | 密码 | 角色 |
+|--------|------|------|
+| admin | admin123 | 管理员 |
+| zhangsan | 123456 | 学生 |
+| lisi | 123456 | 学生 |
+| wangwu | 123456 | 学生 |
+
+## 快速开始
+
+### 环境要求
+
+- JDK 8+
+- Maven 3.x
+- MySQL 8.0
+- Apache Tomcat 9.x(或使用 `tomcat7-maven-plugin`)
+
+### 安装步骤
+
+1. **克隆项目**
+   ```bash
+   git clone <repository-url>
+   cd dormitory_manage
+   ```
+
+2. **初始化数据库**
+   ```bash
+   mysql -u root -p < sql/init.sql
+   ```
+
+3. **配置数据库连接**
+   
+   编辑 `src/main/resources/jdbc.properties`,修改数据库用户名和密码:
+   ```properties
+   jdbc.driver=com.mysql.cj.jdbc.Driver
+   jdbc.url=jdbc:mysql://localhost:3306/dormitory_manage?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+   jdbc.username=root
+   jdbc.password=root
+   ```
+
+4. **启动项目**
+
+   方式一:使用 Maven 插件
+   ```bash
+   mvn tomcat7:run
+   ```
+
+   方式二:部署 WAR 包到 Tomcat
+   ```bash
+   mvn package
+   # 将 target/dormitory_manage.war 部署到 Tomcat 的 webapps 目录
+   ```
+
+5. **访问系统**
+
+   打开浏览器访问 `http://localhost:8080/`
+
+### 默认账号
+
+- **管理员**:`admin` / `admin123`
+- **学生**:`zhangsan` / `123456`
+
+## 项目结构
+
+```
+dormitory_manage/
+├── doc/                          # 项目文档
+│   └── work.md                   # 详细项目报告
+├── sql/
+│   └── init.sql                  # 数据库初始化脚本
+├── src/
+│   └── main/
+│       ├── java/space/anyi/
+│       │   ├── common/           # 公共工具类(Result, PageResult)
+│       │   ├── controller/       # Controller 层
+│       │   ├── entity/           # 实体类
+│       │   ├── interceptor/      # 拦截器(登录 + 权限)
+│       │   ├── mapper/           # MyBatis Mapper 接口
+│       │   └── service/          # Service 层(接口 + 实现)
+│       ├── resources/
+│       │   ├── mapper/           # MyBatis XML 映射文件
+│       │   ├── jdbc.properties   # 数据库配置
+│       │   ├── logback.xml       # 日志配置
+│       │   ├── mybatis-config.xml
+│       │   ├── spring-context.xml
+│       │   └── spring-mvc.xml
+│       └── webapp/
+│           ├── WEB-INF/
+│           │   ├── web.xml
+│           │   └── views/        # JSP 视图文件
+│           │       ├── admin/    # 管理员页面
+│           │       └── student/  # 学生页面
+│           └── static/
+│               └── uploads/      # 头像上传目录
+└── pom.xml                       # Maven 构建配置
+```