当前位置: 首页 > 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.拼…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

未授权访问事件频发,我们应当如何应对?

在当下&#xff0c;数据已成为企业和组织的核心资产&#xff0c;是推动业务发展、决策制定以及创新的关键驱动力。然而&#xff0c;未授权访问这一隐匿的安全威胁&#xff0c;正如同高悬的达摩克利斯之剑&#xff0c;时刻威胁着数据的安全&#xff0c;一旦触发&#xff0c;便可…...

Linux入门(十五)安装java安装tomcat安装dotnet安装mysql

安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了&#xff0c;系统很多命…...