当前位置: 首页 > news >正文

课程项目设计--项目设计--宿舍管理系统--vue+springboot完成项目--项目从零开始

写在前面:
本文是从项目设计到完成开始写的,本来这个项目基础功能是做完了的,但是之前时间紧张想从头做起了。之前一周写前端+后端累死了.
设计是关键,这一篇主讲设计。可能后面会有修改,本人实力有限,学习的也是别人的项目,如有来开源、vue-element-admin等,在他们的基础上进行的个性化的构建,如有更好的方案和技术欢迎交流。

文章目录

  • 目的与背景
  • 功能介绍
  • 技术选择
  • 数据库设计
    • 学生表
    • 系统用户表
    • 人员表
    • 用户角色关联表
    • 宿舍详情表
    • 宿舍楼表
    • 字典数据库
    • 字典类型数据库
    • 维修记录表
    • 路由菜单管理
    • 系统角色管理
    • 角色路由关联表
    • 电费日志
    • 进出表
    • 通知发送表
    • 通知接收表
    • 建议对话链接表
    • 建议内容表
    • 学生管理日志
    • 违规类型表
    • 动态定时任务表
    • 聊天数据库表
    • 分享表
  • 功能拆分
    • 用户管理
      • 用户注册
      • 用户登录
      • 密码重置
    • 学生管理
      • 添加学生
      • 删除学生
      • 修改学生信息
      • 申请退宿
    • 宿舍管理
      • 宿舍人员管理
      • 宿舍分配
      • 宿舍地图
      • 宿舍电量管理
        • 电量查询
        • 送电
        • 电量充值
        • 停电
        • 水电缺通知
    • 维修管理模块
      • 报修
      • 维修查询
      • 派遣维修人员
      • 维修状态修改
      • 维修缴费
      • 维修日志
    • 通知系统
      • 发送通知
    • 聊天系统
      • 群聊
      • 分享
    • 建议系统
      • 发出建议
      • 建议状态修改
      • 展示接收待办建议
    • 门禁系统
      • 进出记录
      • 进出管控
    • 违规管理
      • 违规记录
      • 违规申诉
      • 违规查询
    • 任务系统
      • 任务分配
  • 下文

目的与背景

本宿舍管理系统旨在提供一个高效、便捷、安全的宿舍管理平台,帮助学校或宿舍管理部门更好地管理学生宿舍,提升宿舍管理的质量和效率。该系统将涵盖学生管理、宿管管理、维修管理、门禁管理、消息管理、建议箱、宿舍地图等功能模块,以满足宿舍管理的各项需求,便捷高效的进行学生宿舍的管理和使用。通过本系统的建立与运行,可以实现对学生宿舍的全面管理和监控,提高宿舍管理的效率和质量,为学生提供一个更加安全、便捷和舒适的居住环境。

背景: 在大学或其他教育机构中,宿舍是学生们的重要居住场所,宿舍管理的好坏直接关系到学生的生活质量和学习环境。传统的宿舍管理方式往往面临诸多问题,如信息不畅通、维修难以及宿舍安全等方面存在隐患。因此,开发一套宿舍管理系统,将有助于提高宿舍管理的效率和质量,为学生提供更好的居住环境。

功能介绍

  1. 学生管理:该功能模块用于学生信息的录入、查询和管理,包括学生入住登记、退宿办理、学生信息变更等。通过该功能,可以实现对学生的个人信息进行统一管理,方便宿舍管理部门随时了解学生的宿舍情况。

  2. 宿管管理:宿管管理功能模块用于宿管人员的管理和任务分配。宿管人员可以通过系统对宿舍进行巡查、卫生检查等,并及时记录和处理违规行为。同时,宿管人员也可以通过系统与学生进行沟通和交流。

  3. 维修管理:该功能模块用于宿舍内设施的维修和报修管理。学生可以通过系统提交维修请求,宿舍管理部门可以及时处理并派遣维修人员进行维修。同时,系统还可以记录维修历史,方便后续的维修管理和维修质量的评估。

  4. 门禁管理:门禁管理功能模块用于宿舍出入口的门禁管理。通过系统可以实现学生的刷码/人脸识别进出宿舍,有效控制宿舍的出入人员,提高宿舍的安全性。

  5. 宿舍选择功能 ,该模块通过学生习惯的填写,来进行宿舍的分配。尝试由管理自主选择,宿舍分配规则,是由习惯,还是依靠传统的班级学号进行分配,就看学校的规定了。

  6. 消息管理:该功能模块用于宿舍管理部门向学生发送通知、公告等信息。学生可以通过系统及时接收到相关信息,方便宿舍管理部门与学生之间的沟通和信息传递。(本来想看看能不能接入微信公众号玩一玩的,但是需要的是服务号且必须获得企业认证)

  7. 宿舍楼聊天系统:改模块可用于同一栋师生之间进行聊天沟通,

  8. 建议箱:建议箱功能模块用于学生提出宿舍管理方面的建议和意见。学生可以通过系统将自己的建议或问题反馈给宿舍管理部门,以便宿舍管理部门及时了解学生的需求和问题,并进行相应的改进。

  9. 宿舍地图:该功能模块用于提供宿舍楼层、房间分布等信息,方便学生和宿舍管理部门查找宿舍位置和了解宿舍的布局情况。

  10. 宿舍水电费管理:该模块用于对宿舍的水电费进行管理、同步和缴纳功能。方便学生的在线缴费。

技术选择

  • JDK17
    后端采用java的jdk17进行
  • maven3.9
    采用maven3进行包管理
  • Springboot3
    后端框架使用springboot3全家桶进行操作
  • spring security
    spring的安全框架
  • spring mvc
    mvc控制
  • mybatis-plus
    持久化框架使用mp来进行数据库操作
  • Mysql数据库
    数据库选择小而免费的mysql数据库
  • xxl-job/手动实现
    定时任务管理
  • npm
    前端包管理工具
  • vue3框架
    前端框架采用vue3进行,由于vue3还未学,时间不够则会采用vue2进行。
  • Element-ui库
    前端使用element-ui进行美化组件的选择。
  • 百度开放平台api
    或采用,用于地图,定位和人脸识别,后期人脸识别会尝试手动实现
  • websocket
    用于消息聊天同步,以及通知功能的实现
  • redis
    或采用redis加速查询速度
  • 其他工具类
    包括但不限于像hutool工具类、fastjson2,JWT令牌、Quartz等

格外的编程工具选用
后端采用:idea

数据库设计

表通过idea的图工具导出

学生表

在这里插入图片描述

系统用户表

在这里插入图片描述

人员表

在这里插入图片描述

用户角色关联表

在这里插入图片描述

宿舍详情表

在这里插入图片描述

宿舍楼表

在这里插入图片描述

字典数据库

在这里插入图片描述

字典类型数据库

在这里插入图片描述

维修记录表

在这里插入图片描述

路由菜单管理

在这里插入图片描述

系统角色管理

在这里插入图片描述

角色路由关联表

在这里插入图片描述

电费日志

在这里插入图片描述

进出表

在这里插入图片描述

通知发送表

在这里插入图片描述

通知接收表

在这里插入图片描述

建议对话链接表

在这里插入图片描述

建议内容表

在这里插入图片描述

学生管理日志

违规类型表

在这里插入图片描述

动态定时任务表

字段还不明确

聊天数据库表

字段还不明确

分享表

类似朋友圈,可分享自己的记录
不明确

功能拆分

用户管理

用户注册

分为2个模块,学生用户和其他用户
学生用户通过输入学生的学号,姓名,手机号进行身份验证,然后需要进行邮箱绑定和密码的设置.
最后需要设置用户的基本信息,如用户名,用户头像等。完成注册。

其他用户需要通过管理员统一进行用户注册。
注意,密码在数据库需要加密处理。

用户登录

通过输入验证码输入验证后,输入账号密码来进行登录校验。
获取jwt令牌和用户信息

邮箱登录

格外的或实现人脸登录。

密码重置

通过邮箱验证进行重置密码

学生管理

添加学生

可单个添加选择,输入学生的名字,姓名,年龄,手机号等基本信息进行添加。

批量添加,导入excel进行学生的批量添加,可按照班级进行批量添加(需要设置班级)

删除学生

可对学生进行逻辑删除。

也可批量对班级/年级学生进行删除
没用年级表,班级管理是另外的价钱,班级字段采用年份4+专业字典2+班级编号的方式2

修改学生信息

学生本人通过系统账号进行申请或管理员进行修改。

申请退宿

学生可通过系统提交退宿申请,通过后将删除学生的宿舍信息。

宿舍管理

宿舍人员管理

可对宿舍的人员进行查询,修改

宿舍分配

学生通过问卷的形式,通过对习惯的分析进行宿舍的分配。
也可以按照学校要求通过班级学号的形式直接进行分配。

宿舍地图

可进行宿舍地图查看,方便新生找到宿舍。

宿舍电量管理

电量查询

可对宿舍电量进行查询

管理员可查看所有宿舍的电量

送电

可对停用但无法充值的寝室进行送电

电量充值

可进行电费的充值,由于无充值只进行模拟

停电

由于无实际常见,只进行模拟。

水电缺通知

当水电费低于5快的时候提醒学生尽快重置。

维修管理模块

报修

通过小程序/网站上进行报修

维修查询

管理员和维修人员可进行维修查询

派遣维修人员

系统派发维修任务

维修状态修改

管理员和维修人员可对维修状态进行修改。

维修缴费

部分维修需要付费。模拟进行

维修日志

每一次就进行记录方便查询。(反馈)

通知系统

发送通知

管理部门可对特定角色人员下发通知。
宿管可对改管理楼层同学进行通知。

聊天系统

群聊

可进行学生内的闲聊,和分享

分享

可进行自己的分享

建议系统

发出建议

学生可进行建议反馈。
可匿名

建议状态修改

当交流过后,可修改建议的完成度和满意度。

展示接收待办建议

可公开接收并打算实现/实现了的建议

门禁系统

进出记录

对进出宿舍的学生进行记录

进出管控

通过刷二维码/人脸识别进行进出权限管控

违规管理

违规记录

记录违规状态

违规申诉

如有特殊情况可进行申诉

违规查询

可查询自己的违规记录

管理员可查询所有。

任务系统

任务分配

可对特定角色进行任务分配/通知。

下文

项目建立

相关文章:

课程项目设计--项目设计--宿舍管理系统--vue+springboot完成项目--项目从零开始

写在前面: 本文是从项目设计到完成开始写的,本来这个项目基础功能是做完了的,但是之前时间紧张想从头做起了。之前一周写前端后端累死了. 设计是关键,这一篇主讲设计。可能后面会有修改,本人实力有限,学习的也是别人的…...

【Linux】Linux下常用搜索命令及其常用选项小结

0x00 前言 版本信息:Ubuntu 18.04.6 LTS 最后更新日期:2023.8.18 0x01 Linux下常用搜索命令及其常用选项小结 1.find (1)find path -name filename :在指定目录path查找名为filename 文件,文件名可用*匹…...

web APIs-练习五

5秒自动关闭的广告&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…...

MySQL——基础——外连接

一、外连接查询语法&#xff1a;(实际开发中,左外连接的使用频率要高于右外连接) 左外连接 SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件...; 相当于查询表1(左表)的所有数据 包含 表1和表2交集部分的数据 右外连接 SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN …...

spring boot 实现Redisson分布式锁及其读写锁

分布式锁&#xff0c;就是控制分布式系统中不同进程共同访问同一共享资源的一种锁的实现。 1、引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.15.5</versio…...

java-IONIO

一、JAVA IO 1.1. 阻塞 IO 模型 最传统的一种 IO 模型&#xff0c;即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后&#xff0c;内 核会去查看数据是否就绪&#xff0c;如果没有就绪就会等待数据就绪&#xff0c;而用户线程就会处于阻塞状态&#xff0c;用户线…...

Python学习笔记_基础篇(十一)_socket编程

python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心&#xff0c;它承担计算机的所有任务。 操作系统是运行在硬件之上的软件&#xff0c;是计算机的管理者&#xff0c;它负责资源的管理和分配、任务的调度。 程序是运行…...

C#8.0本质论第三章--更多数据类型

C#8.0本质论第三章–更多数据类型 3.1类型的划分 一个类型要么是值类型&#xff0c;要么是引用类型。区别在于拷贝方式&#xff1a;值类型数据总是拷贝值&#xff1b;引用类型的数据总是拷贝引用。 3.1.1值类型 3.1.2引用类型 引用类型的变量存储对数据存储位置的引用。 3.…...

浅拷贝与深拷贝

作者简介&#xff1a; zoro-1&#xff0c;目前大一&#xff0c;正在学习Java&#xff0c;数据结构等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 浅拷贝与深拷贝 浅拷贝浅拷贝定义浅拷贝代码演示浅…...

背包 问题

1、背包问题 1.1、01背包 题目&#xff1a; 有n件物品和一个容量为m的背包&#xff0c;第i件物品的体积是v[ i ]&#xff0c;价值是w[ i ]&#xff0c;每件物品只有一件&#xff0c;求在不超过背包容量的前提下&#xff0c;可以放的物品的最大价值是多少 基本思路&#xff…...

蓝牙资讯|安卓将加强耳机音量监控,耳机查找功能将更加普遍

为了保护用户的听力健康&#xff0c;Android 14 将增加一项新功能&#xff0c;当用户使用耳机听音乐时&#xff0c;如果音量过高或持续时间过长&#xff0c;系统会发出警告&#xff0c;并自动降低音量。这个功能叫做“耳机音量过高警告&#xff08;headphone loud sound alert&…...

vue,element。监听快捷键粘贴图片,添加到el-upload的列表。

在①中&#xff0c;粘贴图片&#xff0c;图片能够自动添加到底下el-upload组件的文件列表②。 // 对应① <el-card><el-tooltip content"粘贴图片至此" placement"top"><input readonly class"pasteImg" paste.prevent"hand…...

时序预测 | MATLAB实现基于CNN-BiLSTM卷积双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-BiLSTM卷积双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-BiLSTM卷积双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍…...

编织梦想:SpringBoot AOP 教程与自定义日志切面完整实战

什么是 AOP AOP 是指通过预编译方式和运行期动态代理的方式&#xff0c;在不修改源代码的情况下对程序进行功能增强的一种技术。AOP 不是面向对象编程&#xff08;OOP&#xff09;的替代品&#xff0c;而是 OOP 的补充和扩展。它是一个新的维度&#xff0c;用来表达横切问题&a…...

AssignableTypeFilter 和 AnnotationTypeFilter什么区别?

在 Spring 框架中&#xff0c;AssignableTypeFilter 和 AnnotationTypeFilter 都是用于在组件扫描过程中进行过滤的工具类&#xff0c;用于筛选出特定类型或特定注解的类。它们的主要区别在于筛选的侧重点和使用方式。 AssignableTypeFilter&#xff1a; AssignableTypeFilte…...

TCP-事件模型

#include "main.h"VOID Server_write_error() {}/*1.打开网络库 * 2.校验网络库版本 * 3.创建SOCKET * 4.绑定IP地址和端口 * 5.开始监听 * 6.创建客户端socket/接受链接 * 7.与客户端收发消息 * 8.(6.7)两步的函数accept&#xff0c;send,recv 有堵塞&#xff0c;可…...

typescript 声明文件

作用 1、为已存在js库提供类型信息&#xff0c;这样在ts项目中使用这些库时候&#xff0c;就像用ts一样&#xff0c;会有代码提示、类型保护等机制 2、项目内共享类型&#xff1a;如果多个.ts文件中都用到同一个类型&#xff0c;此时可以创建.d.ts文件提供该类型&#xff0c;…...

BC96 有序序列判断

描述 输入一个整数序列&#xff0c;判断是否是有序序列&#xff0c;有序&#xff0c;指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。 数据范围&#xff1a;3≤n≤50 序列中的值都满足1≤val≤100。 输入描述 第一行输入一个整数N(3≤N≤50)。 第二行…...

QT操作excel的两种方式 QT基础入门【Excel的操作】

QT操作excel的方式有两种&#xff1a;QAxObject 和QtXlsx QAxObject是通过调用office或者wps组件来实现对excel图表的操作的。只有装office软件或者wps软件就可以实现&#xff0c;但是 如果只装了office软件&#xff0c;有时可以用有时不可以用&#xff1b;如果只装wps软件&a…...

c++ qt--QString,弹出框(第二部分)

c qt–QString&#xff0c;弹出框&#xff08;第二部分&#xff09; 一.QString 1.所用头文件 #include<QString>2.功能 1.初始化 可以用字符&#xff0c;常量字符串、字符指针、字符数组等类型给QString进行初始化 QString str2"4567";//进行初始化2.拼…...

UE4SS虚幻引擎Mod开发工具:从技术痛点到生态共建的完整指南

UE4SS虚幻引擎Mod开发工具&#xff1a;从技术痛点到生态共建的完整指南 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE…...

DeepSeek-OCR-2实战教程:OCR结果JSON Schema解析与结构化数据入库指南

DeepSeek-OCR-2实战教程&#xff1a;OCR结果JSON Schema解析与结构化数据入库指南 1. 项目简介 DeepSeek-OCR-2是基于深度学习的智能文档解析工具&#xff0c;专门针对结构化文档内容提取而设计。与传统的OCR工具只能提取纯文本不同&#xff0c;这个工具能够精准识别文档的排…...

如何高效访问优质内容?bypass-paywalls-chrome-clean工具全方位使用指南

如何高效访问优质内容&#xff1f;bypass-paywalls-chrome-clean工具全方位使用指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的数字时代&#xff0c;大量优质内容被…...

终极指南:如何快速搭建NixOS配置开发环境 [特殊字符]

终极指南&#xff1a;如何快速搭建NixOS配置开发环境 &#x1f680; 【免费下载链接】linux-nixos-hyprland-config-dotfiles Linux &#x1f427; configuration based on NixOS ❄️, Hyprland, and Catppuccin Macchiato theme &#x1f638; for a consistent, complete, a…...

算法 POJ1029

一&#xff0e;题目大意假币描述“金条”银行从可靠来源收到的信息&#xff0c;在他们最后一组的 N 枚硬币中&#xff0c;恰好有一枚硬币是假的&#xff0c;并且重量与其他硬币不同&#xff08;而所有其他硬币的重量都相同&#xff09;。经济危机之后&#xff0c;他们只有一个简…...

百度网盘提速全攻略:从限速对抗到效能优化的实战指南

百度网盘提速全攻略&#xff1a;从限速对抗到效能优化的实战指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 诊断限速瓶颈&#xff1a;从协议层破解速度封印 原理图解&am…...

OpenClaw日志分析进阶:百川2-13B-4bits量化模型自动错误诊断

OpenClaw日志分析进阶&#xff1a;百川2-13B-4bits量化模型自动错误诊断 1. 为什么需要自动化日志分析 深夜两点&#xff0c;我的手机突然震动起来——服务器又报警了。强撑着睡意打开终端&#xff0c;面对满屏的报错日志&#xff0c;那种无力感相信每个运维人都深有体会。传…...

3个核心功能:从效率瓶颈到资源整合的高效管理与智能处理指南

3个核心功能&#xff1a;从效率瓶颈到资源整合的高效管理与智能处理指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 一、核心价值解析&#xff1a;短视频下载工具的技术突破与应用价值 1.1 多平台适配能…...

接近开关和光电开关接头:A编码M12一体式防水连接器规格解析

在工业自动化现场&#xff0c;接近开关与光电开关是应用最广泛的传感器。其标准接口——A编码M12一体式防水连接器&#xff08;预铸线缆型&#xff09;&#xff0c;通过统一的机械尺寸与电气定义&#xff0c;实现了传感器的即插即用与高可靠连接。一、规格标准与接口定义A编码M…...

对抗训练新玩法:用AdverIN攻击自己反而提升医学分割模型20%泛化性

医学影像分割的对抗训练革命&#xff1a;AdverIN如何让模型在新设备上表现更优 医学影像分析领域正面临一个尴尬的现实&#xff1a;实验室里表现优异的深度学习模型&#xff0c;在真实临床环境中常常"水土不服"。不同医院使用的扫描设备、成像协议差异导致的域偏移&a…...