在高校宿舍管理工作中,传统人工登记、纸质记录的方式效率低下,易出现数据混乱、查询不便等问题。
为此,我们基于ASP.NET MVC 5框架,开发了一套综合性学生宿舍管理系统,覆盖用户、宿舍、费用、维修等全流程管理需求,适配管理员、宿管、学生三种角色,助力高校实现宿舍管理数字化、高效化。本文将从项目概述、技术架构、核心功能、数据库设计到部署开发,完整复盘项目开发全过程,供同类项目参考。
一、项目概述:定位与核心优势
1.1 项目简介
学生宿舍管理系统是基于ASP.NET MVC 5构建的综合性管理平台,核心目标是解决高校宿舍管理中的痛点,实现“一站式”宿舍管理解决方案。系统整合了用户管理、宿舍楼栋管理、费用管理、维修管理、卫生检查、通知公告、留言互动等核心模块,支持多角色权限管控,满足不同用户的操作需求。
1.2 核心特点
架构清晰:采用ASP.NET MVC 5分层架构,分离表现层、控制器层、模型层,代码可维护性、可扩展性强;
数据操作便捷:集成Entity Framework 5.0 ORM框架,简化数据库CRUD操作,减少重复代码;
多端适配:采用响应式设计,兼容电脑、平板等多种设备,随时随地开展管理工作;
权限完善:基于角色的权限控制(RBAC),区分管理员、宿管、学生三种角色,权限粒度精准;
可视化友好:集成ECharts、Highcharts图表库,实现数据统计可视化,直观呈现宿舍入住、费用缴纳等情况。
1.3 技术栈选型
技术选型以“稳定、高效、易用”为原则,适配高校管理系统的开发需求,具体如下:
后端框架:ASP.NET MVC 5
ORM框架:Entity Framework 5.0
数据库:SQL Server(稳定、适配.NET生态,便于数据迁移与维护)
前端框架:jQuery + H-ui(轻量、易用,快速搭建后台页面)
辅助插件:ECharts 3.4.0(图表)、Highcharts 5.0.6(图表)、My97DatePicker(日期选择)、DataTables(表格)、Layer(弹窗)、Laypage(分页)
二、系统架构:分层设计与目录结构
2.1 整体架构
系统采用经典MVC分层架构,各层职责清晰、低耦合,便于后期迭代维护,整体架构如下:
1. 表现层(Views): 负责页面展示,采用HTML/CSS/JavaScript/jQuery开发,基于H-ui框架实现统一布局,包含共享视图、各模块视图等;
2. 控制器层(Controllers): 核心业务逻辑处理层,接收前端请求,调用模型层接口,返回处理结果,所有控制器继承自BaseController,统一实现登录验证、权限控制;
3. 模型层(Models): 数据模型与数据访问层,通过Entity Framework构建实体模型,封装数据库操作,提供工具类简化JSON处理、EF操作;
4. 数据库层(SQL Server): 存储系统所有业务数据,通过EF框架实现数据持久化,确保数据安全与一致性。
2.2 核心目录结构
项目目录结构规范清晰,便于团队协作开发,核心目录如下(简化冗余,突出重点):
DormitoryManagementSystem/
├── App_Start/ # 应用启动配置(路由配置等)
├── Controllers/ # 控制器目录(各模块控制器)
│ ├── BaseController.cs # 基础控制器(统一权限、登录验证)
│ ├── LoginController.cs # 登录控制器
│ ├── UserController.cs # 用户管理控制器
│ ├── DormController.cs # 宿舍管理控制器
│ └── 其他模块控制器...
├── Models/ # 数据模型目录
│ ├── Model.edmx # EF实体模型
│ ├── 各业务实体类(UserInfo、Dorm等)
│ └── 工具类(EfTools、JsonTools)
├── Views/ # 视图目录
│ ├── Shared/ # 共享视图(布局页、错误页)
│ └── 各模块视图(与控制器一一对应)
├── Content/ # 静态资源目录
│ ├── lib/ # 第三方插件(jQuery、ECharts等)
│ └── static/ # 自定义样式与前端资源
└── Web.config # 项目配置文件(数据库连接等)
三、核心功能模块:全流程宿舍管理
系统围绕高校宿舍管理核心场景,设计8大功能模块,覆盖“用户-宿舍-费用-维修-通知”全流程,各模块功能清晰、协同工作。
3.1 用户管理模块(核心基础)
作为系统基础模块,负责用户身份认证与权限管控,支持三种角色管理:
角色区分:Type 1(系统管理员)、Type 2(宿管员)、Type 3(学生),权限分级管控;
核心功能:用户登录/退出、用户信息增删改查、密码修改、个人信息查看;
核心代码(登录功能):
// 用户登录接口
public JsonResult SignIn(string passId, string passWord, string code)
{
var user = db.GetSingleEntity<UserInfo>(a => a.UserName == passId && a.UserPwd == passWord);
if (user == null)
{
return Json(new { code = 500, msg = "账号或密码错误" });
}
SetObjectAsJson("LoginUser", user);
return Json(new { code = 200, msg = "登录成功", data = "/Home/Index" });
}
3.2 宿舍与楼栋管理模块
负责宿舍与楼栋的基础信息管理,实现宿舍入住情况的实时管控:
楼栋管理:楼栋信息增删改查、楼栋与宿舍关联管理;
宿舍管理:宿舍信息(编号、楼层、性别、容量等)增删改查、入住情况统计(空床位数、已住人数);
核心字段(宿舍表):Id(主键)、Bid(所属楼栋ID)、Num(宿舍号)、Floor(楼层)、Sex(性别)、RenShu(容纳人数)、Kong(空床位数)。
3.3 费用管理模块
覆盖住宿费、水电费两大核心费用,实现费用记录、缴纳、统计全流程管理:
住宿费管理:记录住宿费金额、年份月份、缴纳状态,支持费用统计与查询;
水电费管理:记录用水量、用电量,自动计算水费、电费及总费用,跟踪缴费状态,支持用量统计。
3.4 维修与卫生管理模块
解决宿舍维修申请、卫生检查的流程化管理痛点:
维修管理:学生提交维修申请,宿管/管理员处理申请、跟踪维修状态(待处理/处理中/已完成),查询维修记录;
卫生检查:记录宿舍卫生检查分数、检查内容、检查人及时间,支持卫生评分统计与记录查询。
3.5 通知公告与留言模块
通知公告:管理员发布通知,支持富文本编辑,所有用户可查看、管理员可编辑/删除通知;
留言管理:用户发布留言、管理员回复留言,支持留言列表查看与删除,实现师生互动。
四、数据库设计:核心表结构与连接配置
数据库基于SQL Server设计,共9张核心数据表,覆盖所有业务场景,表结构规范、关联清晰,以下为核心表结构(简化冗余字段):
4.1 核心数据表
UserInfo(用户信息表):存储用户核心信息,主键Id自增,关联宿舍表(DormId);
Dorm(宿舍表):存储宿舍基础信息,关联楼栋表(Bid);
DormBuilding(楼栋表):存储楼栋信息,关联管理员(Managerid);
Repair(维修记录表):存储维修申请与处理信息,关联宿舍表(DormId);
WaterElectricFee(水电费表):存储水电费相关数据,关联宿舍表(DormId);
其他表:Notice(通知)、Sanitation(卫生)、AccommodationFee(住宿费)、MessageTopic(留言)。
4.2 数据库连接配置
在Web.config中配置EF连接字符串,确保系统正常连接数据库,配置如下:
<connectionStrings>
<add name="DormitoryManagementSystemEntities"
connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=DormitoryManagementSystem;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
五、安装部署与开发指南
5.1 环境要求
部署前需确保环境满足以下要求,避免出现兼容性问题:
操作系统:Windows 7/8/10/Server 2008及以上;
开发/部署工具:Visual Studio 2015+、IIS 7.0+;
数据库:SQL Server 2008+;
框架:.NET Framework 4.5。
5.2 部署步骤(简化版)
数据库配置:安装SQL Server,创建数据库DormitoryManagementSystem,生成表结构(基于Model.edmx);
项目配置:用Visual Studio打开项目,还原NuGet包,修改Web.config中的数据库连接字符串;
IIS部署:添加网站,指定物理路径(项目发布目录),配置应用程序池(.NET CLR版本v4.0,集成模式);
初始化数据:系统首次运行,使用默认管理员账号登录(用户名:admin,密码:123456)。
5.3 开发规范(核心要点)
为保证代码规范、可维护,制定以下核心开发规范:
命名规范:类名PascalCase、方法名PascalCase、变量名camelCase、私有字段_camelCase;
注释规范:方法需添加XML注释,说明功能、参数、返回值;
控制器规范:所有控制器继承BaseController,统一实现登录验证与权限控制;
EF使用规范:统一使用EF提供的工具方法,简化查询、新增、更新、删除操作(示例如下)。
// EF查询单个实体
var user = db.GetSingleEntity<UserInfo>(x => x.Id == userId);
// EF新增实体
UserInfo user = new UserInfo { UserName = "test", UserPwd = "123456", UserType = 3 };
db.AddSingleEntity(user);
六、常见问题与解决方案
项目部署与运行过程中,常见问题及解决方案汇总,快速排查问题:
数据库连接失败:检查SQL Server服务是否启动、连接字符串是否正确、防火墙设置;
验证码显示异常:检查Session是否启用、GDI+组件是否安装、清除浏览器缓存;
EF操作失败:检查连接字符串、更新Entity Framework、重新生成EF模型;
页面样式错乱:检查CSS文件路径、清除浏览器缓存、确认浏览器兼容性。
七、项目总结与更新日志
7.1 项目总结
本项目基于ASP.NET MVC 5框架,实现了高校宿舍管理的全流程数字化,解决了传统管理方式的效率低下、数据混乱等痛点。系统架构清晰、功能完善、易于部署和维护,适配高校多角色管理需求,可根据实际场景进行二次开发和扩展。
通过项目开发,我们积累了ASP.NET MVC分层开发、EF数据访问、前端插件集成、权限控制等实战经验,也意识到系统可优化方向:如增加移动端适配、优化数据统计效率、添加消息推送功能等,后续可逐步迭代完善。
7.2 更新日志
Version 1.0.0:初始版本发布,实现核心功能模块(用户管理、宿舍管理、费用管理、维修管理等),完成基础部署与测试,适配基本管理需求。
以上就是学生宿舍管理系统的完整开发总结,希望能为同类项目的开发提供参考,也欢迎大家交流优化建议。