Hinsliu 3180106071@zju.edu.cn
这是一个IOT物联网设备管理APP。该应用用于浙江大学2020-2021学年春夏学期B/S体系软件设计课程大作业,由我一人独立开发,版权所有。
实现的基本功能如下:
-
搭建一个mqtt服务器,能够接收指定的物联网终端模拟器发送的数据。
-
实现用户注册、登录功能,用户注册时需要填写必要的信息并验证,如用户名、密码要求在6字节以上,email的格式验证,并保证用户名和email在系统中唯一,用户登录后可以进行以下操作。
-
提供设备配置界面,可以创建或修改设备信息,包含必要信息,如设备ID、设备名称等。
-
提供设备上报数据的查询统计界面。
-
提供地图界面展示设备信息,区分正常和告警信息,并可以展示历史轨迹/
-
首页提供统计信息(设备总量、在线总量、接收的数据量等),以图表方式展示(柱状体、折线图等)。
-
样式适配手机端,能够在手机浏览器/微信等应用内置的浏览器中友好显示。
-
项目使用的数据库,建议使用mysql或mangodb,提交作业时同时附带建库建表脚本文件。
项目使用前后端分离的开发范式,均由我本人完成。
-
前端使用React + Antd组件库进行设计(拥抱Hook风格)
-
后端使用Spring + SpringMVC进行设计,用SpringBoot框架进行配置简化,JDK1.8
-
数据库使用本地的MySQL进行数据储存,使用本地的Redis进行用户Token储存服务
-
IoT服务中涉及的通信功能采用MQTT协议完成,具体使用的MQTT实现和代理为Mosquitto,基于此在本机上建立MQTT服务器
-
开发机(devbox)为MacBook Pro,使用的操作系统为macOS Catalina 10.15.7
-
本目录下存放README文件,请先阅读本文件;以及本项目的功能快速浏览(glance-over)。
-
src文件夹下存放的为本项目源码,其中:
-
frontend文件夹中存放前端工程文件,开发IDE为WebStorm
-
backend文件夹中存放后端工程文件,开发IDE为IntelliJ IDEA
-
client文件夹中存放一个SpringBoot框架下的IoT设备模拟器,用来模拟设备对数据的发布。该部分代码由bs.cs.zju.edu.cn的老师提供,我对其进行了改动和封装。
-
-
build文件夹中存放的是MySQL的建表文件,其中create用来创建数据库和表,source用来添加测试数据
-
documents文件夹下存放了本项目的设计文档,使用手册(包含功能测试)
-
在本地安装Java JDK 1.8,并完成相关配置
-
在本地安装node.js,并完成相关配置
-
在本地安装MySQL,并完成相关配置
-
在本地安装Redis,并完成相关配置
完成对MySQL服务的配置、对Redis的配置、对Mosquitto连接的配置
运行后端工程文件下的src/IoTApplicationRunner.java文件,启动后端进程
完成对Mosquitto连接的配置以及设备数量等配置
然后使用Maven运行
mvn clean package
得到JAR文件,然后用JAR的方式运行该文件
在前端工程下运行
npm install
npm run start
启动React服务。在浏览器中搜索localhost:3000,就可以使用本应用