基于SpringBoot的高校宿舍管理系统

dormitory_management_system [高校宿舍管理系统] 实现功能 管理员(拥有系统最高的权限) 用户管理

本文包含相关资料包-----> 点击直达获取<-------

dormitory_management_system

[高校宿舍管理系统]

实现功能

  • 管理员(拥有系统最高的权限)
  • 用户管理、年级管理、组织管理、学生管理、权限管理
  • 楼宇管理、宿舍管理、预选管理
  • 缺勤管理
  • 宿管员
  • 楼宇管理、宿舍管理、预选管理
  • 缺勤管理
  • 学生
  • 个人详情、在线预选、缺勤查看

功能具体说明

- 用户管理 - 根据用户名和用户类型模糊查询 - 添加用户 保证用户名的唯一性 - 下载上传模板(对`.xls`文件中的用户类型做了下拉框处理) - Excel导入用户(使用EasyExcel读数据) - 修改用户 保证用户名的唯一性 密码加密了就无法显示,不做修改 - 删除用户 如果是学生提示到[学生页面]删除 - 年级管理 - 为了方便起见,id和name相同 - 根据名称模糊查询 - 添加年级 输入正整数 - 批量删除 - 单条数据删除 - 组织管理 - 结构的展示==(难点)==学院—系—专业—班级 学院—专业—班级 - 新增组织 需要选择上级栏目 - 修改组织 先选择一个数据 - 删除组织 需要选择叶子节点进行删除 - 学生管理 - 数据展示 optable - 根据学号/姓名/年级/班级搜索查询,主要是在mapper.xml中运行 - 删除学生和批量删除学生 - Excel导出全部学生信息 - 添加和修改学生信息 对学生表和用户都进行数据的添加 - 权限管理 - 选择用户类型后再进行编辑 - 后端处理(删除数据再新增数据) - 楼宇管理 - 添加楼宇的时候,做了添加楼层,宿舍,床位 - 删除楼宇的时候,需要将对应的楼层、宿舍和床位删除 - 编辑楼宇 修改一些简单的字段 - 宿舍管理 - 数据的展示(js+css难点) - 预选设置 - 数据展示(年级、班级,时间范围) - 添加和修改预选 时间范围的设置 选择班级叶子节点处理 - 根据名字模糊查询 - 分配宿舍 - 注意点:每个班级和年级这两个和起来也算一个主键 - 缺勤管理 - 测试前先保证有学生入住 - CRUD - 修改密码 - 输入新两次密码 - 基本资料 - 修改个人信息 - 个人详情 - 主要是针对学生 展示学生的一些基本信息 - 在线预选宿舍 - 数据展示(难点) 未选择 已经选择 你的选择 - 每个学生只能选择一次,而且选择时间是有范围的 - 展示每个宿舍的剩余容量和总是 - 缺勤记录 - 只是进行自己的缺勤显示 - 管理员和宿管员首页可视化 - 使用表格和echart的可视化条形图

开发环境

  • jdk 1.8.0_181
  • mysql8.0.22
  • maven3.5.4

开发工具

  • 数据库软件: Navicat 15
  • 开发IDE: IDEA2019.2 WebStorm2020.1
  • 因为我对 vscode 不熟悉,所以使用 WebStorm
  • 接口测试工具: ApiPost

技术路线

前端: layui2.5.7 axios0.21.0 jwt(json web token) ztree optable echarts

  • layuimini v2 单页版

后端: springboot2.4.2 mybatis-plus3.4.0 EasyExcel

  • easyexcel

线上运行

==~~注意点:放线上了,方便大家查看,所以数据库不要随便删除qaq!!!==~~

服务器到期了,我在部署文档中详细的写了一下步骤,可以参考一下自己部署。

项目本地运行

为了能让大家有一个完美的用户体验,提供了源码的同时,也提供了数据库的sql文件,并且sql文件中的属性也做了一个具体的说明。

  • git clone https://gitee.com/dz138598/dormitory_management_system.git

  • 本地新建一个数据库 dormitory ,字符集 utf-8 ,运行SQL文件 dormitory.sql

  • 用idea打开项目,并且配置maven下载依赖
  • 修改配置文件 application.yml 中的数据库密码

  • 运行后端项目 DormitoryApplication 启动类

  • 使用webstorm或者vscode运行login.html页面,然后就成功啦

image-20210302100521451

项目的部分截图

image-20210302101057671

image-20210302100630910

image-20210302101131880

image-20210302101158968

项目线上部署

放在两个tomcat上,后端一个tomcat,前端一个tomcat

参考文档:线上部署教学.md

项目难点

  • 菜单权限管理的设置
  • 不同的角色有不同的菜单
    • 涉及两个表
    • 菜单表(主要是id和pid)
      • 使用jdk的stream流进行递归处理,封装成树
    • 菜单和角色表
  • 组织的表设计
  • 没有设置成四个表 学院、专业、系、班级
  • 设计成一个有id和pid的表

  • 在线预选同一个床位并发

  • 使用乐观锁,锁当行
    • 如果使用Mybatis,进行两次的查询version,第二次直接从缓存中直接读取结果,就没有去查数据库,设置version不起作用。
    • 尝试过删除一级缓存方法或在该事务中写一个getVersion方法不行。
    • 最后成功的方法:单独再写一个方法用来查询版本version方法, 方法放在事务外
  • 出现异常的时候设置回滚

    • @Transactional(rollbackFor=Exception.class)

    • 参看:https://blog.csdn.net/weixin_41945228/article/details/89920739

  • 密码加密处理

  • 如果md5加密,彩虹表暴力破解
  • 两次md5加密,还是存在规律
  • md5盐值加密
    • Md5Crypt.md5Crypy("123456".getBytes())
    • 加了随机值,所以每次加密的时候都是不一样的,需要将数据也保存下这个随机盐或者存一个固定值
    • Spring security BCryptPasswordEncoder
    • 加密在数据库生成60位字符串
    • 主要用到encode和matches
  • 自己在设计项目和实现的时候,明白==冗余字段==的好处,不然要连接好多个表
  • 数据库设计和业务流程真的非常重要
  • 跨域问题

参考文献

  • 基于Spring框架的职业院校管理系统构建(复旦大学·王开明)
  • 临沂大学学生公寓管理系统的设计与实现(山东大学·袁伟)
  • 大学生宿舍管理系统的设计与实现(湖北工业大学·刘善广)
  • 基于移动应用的宿舍管理系统的设计与实现(山东大学·刘慧情)
  • 基于Spring的高校教学管理信息系统的设计与实现(西安电子科技大学·刘爱玉)
  • 留学生宿舍管理信息系统的设计与实现(东北大学·Osvaldo Silva)
  • 基于B/S架构的高校教学住宿一体化系统设计(大连交通大学·张颖)
  • 留学生宿舍管理信息系统的设计与实现(东北大学·Osvaldo Silva)
  • 基于移动应用的宿舍管理系统的设计与实现(山东大学·刘慧情)
  • 基于智慧校园中高校学生宿舍管理系统设计与开发(湖北工业大学·严利)
  • 高校业务数据管理系统的研究与实现(西安科技大学·高小茜)
  • 基于Spring的高校教学管理信息系统的设计与实现(西安电子科技大学·刘爱玉)
  • 基于Spring的高校教学管理信息系统的设计与实现(西安电子科技大学·刘爱玉)
  • 学生综合信息管理平台的设计与实现(吉林大学·刘铁刚)
  • 大学宿舍管理系统的开发与实现(电子科技大学·许盛诚)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码货栈 ,原文地址:https://bishedaima.com/yuanma/35653.html

相关推荐

发表回复

登录后才能评论