基于 Koa 以及 VueJS 的宿舍管理系统。
?
?
?
新增功能:
代码:
server/.env.template
?重命名为?.env
?文件即可应用配置npm run db:init
?指令,快捷初始化数据库主要需求:
考虑到实用性,该系统需要拆分为两大子系统,一个是学生端系统,一个是后台管理端系统。学生端系统主要提供给学生使用,负责一些宿舍记录及个人信息记录的基本操作;后台管理模块则是主要负责对所有学生信息的整理,提供宿舍管理、楼层管理、数据查看等权限,提供给宿舍管理员使用的。
学生系统拥有以下功能:
管理系统拥有以下功能:
超级管理员在享有上述管理员同等权限的同时额外拥有如下功能:
前端:
后台(Nodejs):
数据库:
数据库设计一览:
clinet 目录下为前端的项目文件, server 为后台目录下的文件
public :
HTML 模板和静态资源,参考?vue-cli 官方文档
src :
源码目录
.eslint* :
Eslint 代码规范规则相关
.prettierrc.js :
Prettier 代码格式化相关
vue.config.js :
webpack 规则,无需修改
api:
抽离出的单独的请求文件,请求后台的 url
assets:
前端的静态文件资源
components:
前端的页面的组件,重点组件有:
filter:
Vue 过滤器,详见?Vue 官方文档
icons:
icon 图标文件
layout:
最外层的整体布局组件
router:
前端路由系统,详见 Vue-Router 文档
store:
前端状态管理系统,详见 Vuex 文档
utils:
页面中的某会被复用的方法,如计算日期、格式化日期的方法,会被抽离到 utils 中,再在各个页面中被引入
views(重点):
每个页面的代码都在这里
App.vue:
最外层容器页面
main.js:
入口文件
settings.js:
配置文件(无需更改)
server 目录下的 static 文件为静态文件目录,前端 Vue 源码编译好之后会自动存放到 static 目录下。src 为源码目录,以下介绍为 src 目录下的文件:
app.js:
入口文件,所有的框架在此引入
config.js:
配置文件,除了数据库相关的文件,其余配置项不要更改
utils:
后台某些会被复用的方法,会被抽离到 utils 中,再在各个页面中被引入
struct:
全局中新建的结构体(非重要,涉及 Javascript 面向对象设计)
routes:
后台路由
model:
后台 Model 层(定义数据库表结构)
db:
数据库连接与生成的方法
controller:
后台的 Controller 层
middle:
Koa 中间件,详见 Koa 中间件机制。
预先准备 Node 环境,避免各种奇怪的问题,建议使用 16.x 版本,建议使用 volta 管理 node 版本。
数据库中创建表 "dormitory"(如下为 Navicat 数据库管理工具):
?
?
如果 mysql 低版本选择 utf8,高版本选择 utf8mb4
复制?server/.env.template
?重命名为?.env
,修改相关配置。
使用命令行工具移动至 server 目录下,运行:
## 安装依赖
$ npm install
## 初始化数据库(该指令执行后会强行覆盖数据库中已有的数据,仅运行一次即可!)
$ npm run db:init
## 运行项目
$ npm run start
看到以下输出,即为成功:
浏览器访问?http://localhost:8080
预置账号:
初始化的数据可以在?
db_generator.js
?中的?createDefaultData
?方法中修改
按照上述步骤已经可以正常运行项目,如果需要修改与调试前端页面请按照以下步骤:
首先要确保已经在?
/clinet
?目录下运行过?npm install
?安装好了前端依赖
/server
?目录下运行?npm run dev
?开启后台开发模式/client
?目录下运行?npm run dev
?开启前端开发模式/clinet
?目录下的任意文件/client
?目录下运行?npm run build:prod
构建时会出现警告,如?
$weight: Passing a number without unit % (0) is deprecated.
?无视即可,不影响功能
共计 32 个接口,接口文档:DormitoryManagement
?
该文档的源码已经放在最上面,点击链接即可