基于Vue的宿舍管理系统

基于Vue的宿舍管理系统资源-CSDN文库


基于 Koa 以及 VueJS 的宿舍管理系统。

 

 

 

新增功能:

  • 【楼层管理】添加『入住人员信息』模块,显示入住学生、性别、院系、专业的人数,可用饼图表示
  • 【用户信息】学生用户添加性别、院系、专业字段
  • 【楼层管理】每层楼显示空余床位和已入住人数
  • 【宿舍信息】宿舍信息显示空余床位,新增修改床位数的功能
  • 【学生信息】如果是超级管理员,会有『更换寝室』按钮,可以修改学生宿舍
  • 【管理员系统】新增『来访人员登记』模块,可以添加来访人员记录,仅提供新增功能,记录信息包含姓名、电话号、身份证、性别等,登记日期自动生成

代码:

  • 支持使用环境变量修改服务端配置,将 server/.env.template 重命名为 .env 文件即可应用配置
  • 升级 Vue 版本为 2.7
  • 升级 echarts,移除 v-charts,使用 vue-echarts 作为 Vue 图表组件
  • 新增 npm run db:init 指令,快捷初始化数据库

1. 需求分析

主要需求:

  • 学生信息录入、修改、删除、查询
  • 宿舍管理评分
  • 学生早起率、懒床率
  • 学生宿舍打扫频率
  • 学生晚归情况
  • 楼层管理

考虑到实用性,该系统需要拆分为两大子系统,一个是学生端系统,一个是后台管理端系统。学生端系统主要提供给学生使用,负责一些宿舍记录及个人信息记录的基本操作;后台管理模块则是主要负责对所有学生信息的整理,提供宿舍管理、楼层管理、数据查看等权限,提供给宿舍管理员使用的。

1.1 学生系统

学生系统拥有以下功能:

  • 创建账户
  • 分配宿舍
  • 填写个人信息
  • 修改个人信息
  • 起床打卡(用于统计懒床率)
  • 归宿登记(用于统计晚归情况)
  • 打扫记录(用于统计宿舍打扫频率)
  • 查看宿日常数据

1.2 管理系统

管理系统拥有以下功能:

  • 楼层管理
  • 宿舍评价
  • 宿舍信息管理
  • 学生信息查看
  • 保洁人员管理
  • 统计学生早起率
  • 统计学生宿舍打扫频率
  • 统计学生晚归

超级管理员在享有上述管理员同等权限的同时额外拥有如下功能:

  • 创建管理员
  • 创建宿舍楼
  • 为宿舍楼分配管理员
  • 为宿舍楼分配保洁人员

3. 技术分析

前端:

  • Vue 作为基础框架
  • vue-router 控制路由(hash 模式)
  • vuex 状态管理
  • axios 接入数据
  • Vue-element-admin 作为基础框架

后台(Nodejs):

  • Koa 作为基础框架
  • koa-router —— 服务端路由控制
  • koa-static —— 读取静态文件
  • koa-jwt —— JWT 登录校验
  • koa-body —— http body 数据处理
  • koa-compress —— Gzip 压缩
  • koa-cors —— CORS 解决跨域问题
  • sequelize —— ORM

数据库:

  • MySQL

数据库设计一览:

4. 目录介绍

clinet 目录下为前端的项目文件, server 为后台目录下的文件

4.1 Clinet 目录

4.1.1 根目录

public :

HTML 模板和静态资源,参考 vue-cli 官方文档

src :

源码目录

.eslint* :

Eslint 代码规范规则相关

.prettierrc.js :

Prettier 代码格式化相关

vue.config.js :

webpack 规则,无需修改

4.1.2 src 源码目录(重点)

api:

抽离出的单独的请求文件,请求后台的 url

assets:

前端的静态文件资源

components:

前端的页面的组件,重点组件有:

  • GroupSelector:级联选择器组件
  • RecordTable:记录表格组件
  • RoomSelector:房间级联选择器组件

filter:

Vue 过滤器,详见 Vue 官方文档

icons:

icon 图标文件

layout:

最外层的整体布局组件

router:

前端路由系统,详见 Vue-Router 文档

store:

前端状态管理系统,详见 Vuex 文档

utils:

页面中的某会被复用的方法,如计算日期、格式化日期的方法,会被抽离到 utils 中,再在各个页面中被引入

views(重点):

每个页面的代码都在这里

App.vue:

最外层容器页面

main.js:

入口文件

settings.js:

配置文件(无需更改)

4.2 server 目录

server 目录下的 static 文件为静态文件目录,前端 Vue 源码编译好之后会自动存放到 static 目录下。src 为源码目录,以下介绍为 src 目录下的文件:

app.js:

入口文件,所有的框架在此引入

config.js:

配置文件,除了数据库相关的文件,其余配置项不要更改

utils:

后台某些会被复用的方法,会被抽离到 utils 中,再在各个页面中被引入

struct:

全局中新建的结构体(非重要,涉及 Javascript 面向对象设计)

routes:

后台路由

model:

后台 Model 层(定义数据库表结构)

db:

数据库连接与生成的方法

controller:

后台的 Controller 层

middle:

Koa 中间件,详见 Koa 中间件机制。

5. 项目启用方式

预先准备 Node 环境,避免各种奇怪的问题,建议使用 16.x 版本,建议使用 volta 管理 node 版本。

5.1 运行后台

数据库中创建表 "dormitory"(如下为 Navicat 数据库管理工具):

 

 

如果 mysql 低版本选择 utf8,高版本选择 utf8mb4

复制 server/.env.template 重命名为 .env,修改相关配置。

使用命令行工具移动至 server 目录下,运行:

## 安装依赖
$ npm install## 初始化数据库(该指令执行后会强行覆盖数据库中已有的数据,仅运行一次即可!)
$ npm run db:init## 运行项目
$ npm run start

看到以下输出,即为成功:

浏览器访问 http://localhost:8080

预置账号:

  • 管理员(admin 123456)
  • 超级管理员(superAdmin 123456)
  • 学生用户1(student1 123456)
  • 学生用户2(student2 123456)

初始化的数据可以在 db_generator.js 中的 createDefaultData 方法中修改

5.2 前端文件

按照上述步骤已经可以正常运行项目,如果需要修改与调试前端页面请按照以下步骤:

首先要确保已经在 /clinet 目录下运行过 npm install 安装好了前端依赖

  1. 在 /server 目录下运行 npm run dev 开启后台开发模式
  2. 在 /client 目录下运行 npm run dev 开启前端开发模式
  3. 修改 /clinet 目录下的任意文件
  4. 修改完成后,在 /client 目录下运行 npm run build:prod

构建时会出现警告,如 $weight: Passing a number without unit % (0) is deprecated. 无视即可,不影响功能

6. API 文档

共计 32 个接口,接口文档:DormitoryManagement

 


该文档的源码已经放在最上面,点击链接即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/230615.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Alice Bob推出16量子比特量子处理单元——“Helium 1”

​(图片来源:网络) 容错量子计算机硬件开发商Alice & Bob宣布已成功流片一款新芯片“Helium 1”,希望能借助该芯片降低随着量子比特数增加而提高的错误率,这是该公司第一个纠错逻辑量子比特(纠错量子计…

YOLOv8改进 更换轻量化模型MobileNetV3

一、MobileNetV3论文 论文地址:1905.02244.pdf (arxiv.org) 二、 MobileNetV3网络结构 MobileNetV3引入了一种新的操作单元,称为"Mobile Inverted Residual Bottleneck",它由一个1x1卷积层和一个3x3深度可分离卷积层组成。这个操…

go语言语法基础

文章目录 前言一、输入和输出常用的字符串格式化符号 二、注释三、Go常用基本语言数据类型数字类型布尔类型字符类型变量与常量数组和切片数组切片 map类型创建map增删改查特别提醒 指针 四、运算符五、条件判断语句if系列switch六、循环语句for循环标准写法死循环while循环do …

【三维分割】SAGA:Segment Any 3D Gaussians

系列文章目录 代码:https://jumpat.github.io/SAGA. 论文:https://jumpat.github.io/SAGA/SAGA_paper.pdf 来源:上海交大和华为研究院 文章目录 系列文章目录摘要一、前言二、相关工作1.基于提示的二维分割2.将2D视觉基础模型提升到3D3.辐射…

【Spark精讲】Spark on Hive性能优化

目录 第一章 1.1 集群配置概述 1.2 集群规划概述 第二章 Yarn配置 2.1 Yarn配置说明 yarn.nodemanager.resource.memory-mb yarn.nodemanager.resource.cpu-vcores yarn.scheduler.maximum-allocation-mb yarn.scheduler.minimum-allocation-mb 第三章 Spark的配置说…

力扣-42.接雨水

题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组[0,1,0,2…

20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850

20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850 2023/12/28 12:30 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBr…

【算法挨揍日记】day34——647. 回文子串、5. 最长回文子串

647. 回文子串 647. 回文子串 题目描述: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&am…

【卫星科普】什么是农业一号卫星和农业二号卫星?

农业一号卫星和农业二号卫星是中国自主研发的两颗重要卫星,主要用于农业领域的监测和研究。 农业一号卫星是中国第一颗具备红边波段传感器的卫星,也是世界上第一颗具备红边波段的宽视场多光谱中高分辨率卫星。这对农业农村遥感监测非常重要,…

认识CUDA

CUDA CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及…

基于YOLOv7算法的高精度实时抽烟行为检测识别系统(PyTorch+Pyside6+YOLOv7)

摘要:基于YOLOv7算法的高精度实时抽烟行为检测系统可用于日常生活中检测与定位抽烟行为,此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别,同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训练数…

1.1 理解大数据(2)

小肥柴的Hadoop之旅 1.1 理解大数据(2) 目录1.1 理解大数据1.1.3 大数据概述1.1.4 更多思考 参考文献和资料 目录 1.1 理解大数据 1.1.3 大数据概述 step_0 大数据定义 【《大数据算法设计分析》】: 通常来讲大数据(Big Data&am…

互联网分布式应用之RabbitMQ

RabbitMQ Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. RabbitMQ介绍安装 2. Rabbi…

【C#】知识点实践序列之Lock的输出多线程信息

大家好,我是全栈小5,欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第2篇文章,此篇文章是C#知识点实践序列之Lock知识点,博主能力有限,理解水平有限,若有不对之处望指正! 本篇在Lock锁定代码…

P1019 [NOIP2000 提高组] 单词接龙

网址如下:P1019 [NOIP2000 提高组] 单词接龙 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 很怪,不知道该说什么 我试了题目给的第一个测试点的输入,发现输出和测试点的一样,但是还是WA 不是很懂为什么 有没有大佬帮我看一下…

20231228在Firefly的AIO-3399J开发板的Android11使用Firefly的DTS配置单前后摄像头ov13850

20231228在Firefly的AIO-3399J开发板的Android11使用Firefly的DTS配置单前后摄像头ov13850 2023/12/28 19:20 缘起,突然发现只能打开前置的ov13850,或者后置的ov13850。 但是不能切换! 【SDK:rk3399-android-11-r20211216.tar.xz】…

Java-replaceAll()同时替换多个字符

今天复现了raplaceAll()的用法,但是通常都是对一种字符进行替换,我就在想有没有操作可以一次性替换多个不同的字符,百度一搜,果然有。具体情况如下 首先是替换字的 String str1 "小明,小…

Vue - 多行文本“展开、收起”功能

TextClamp 使用 js 实现文本展开、收起,并非纯 CSS 实现。 Props: fontSize:Number,默认:14lines:Number,默认:1lineHeight:Number,默认:20 F…

双碳管理系统任务需求分析(第10套)

需求规格说明书 一、引言 (一)项目背景 编写本需求规格说明书的目的是为了详细呈现碳足迹产品需求和系统的功能描述,以进一步定制应用软件系统开发的细节问题,便于与项目开发协调工作。本文档面向的读者主要是项目委托单位的管…

vivado 管理宏

管理宏 宏存储为XDC约束。根据定义,它们是Tcl命令。这允许要在XDC约束文件和Tcl脚本中使用并交互使用的宏。宏是使用write_xdc命令编写的。使用read_xdc读取宏命令-cell选项可用于将作用域限制为特定的单元格。-cell选项特别适用于将一个宏的相对放置应用到不同层次…