Skip to content

iLCever/iot-device-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智慧物联设备管理系统

智慧物联设备管理系统采用前后端分离架构,当前已具备登录认证、设备分组、设备管理、设备状态上报、状态历史、离线检测和操作日志等基础能力。

项目结构

.
├── backend/   Spring Boot 后端
├── frontend/  Vue 3 前端
├── sql/       数据库脚本
├── docs/      项目文档
└── README.md

环境要求

  • JDK 21,项目编译目标为 Java 21
  • Node.js 20.19+ 或 22.12+
  • npm 10+
  • MySQL 8.4

后端包含 Maven Wrapper,不需要全局安装 Maven。

后端启动

后端已集成 Flyway。默认连接地址包含 createDatabaseIfNotExist=true,本地 MySQL 账号有建库权限时,不需要手动导入 SQL,启动后端会自动创建数据库表和基础数据。 为兼容你之前已经手动建过表的本地数据库,默认开启 FLYWAY_BASELINE_ON_MIGRATE=true

如果你的 MySQL 账号没有建库权限,先在 MySQL 中创建空数据库:

mysql -u root -p

进入 mysql> 后执行:

CREATE DATABASE iot_device_management
    DEFAULT CHARACTER SET utf8mb4
    DEFAULT COLLATE utf8mb4_0900_ai_ci;

启动后端前设置本地环境变量。不要把数据库密码、JWT 密钥写进代码。

cd C:\Users\www\Desktop\iot-device-management\backend
$env:DB_USERNAME="root"
$env:DB_PASSWORD="你的本地数据库密码"
$env:JWT_SECRET="至少32位的本地开发JWT密钥"
.\mvnw.cmd spring-boot:run

后端测试:

cd C:\Users\www\Desktop\iot-device-management\backend
.\mvnw.cmd "-Dmaven.repo.local=C:\Users\www\.m2\repository" test

前端启动

cd C:\Users\www\Desktop\iot-device-management\frontend
npm install
npm run dev

访问地址:

http://localhost:5173

一键启动开发环境

Windows 下可以双击根目录的 start-dev.bat

首次运行会要求输入本地 MySQL 密码,并生成 local-dev.cmd。该文件已加入 .gitignore,用于保存本机开发环境变量,不要提交。

脚本会自动:

  • 启动后端 http://localhost:8080
  • 启动前端 http://localhost:5173
  • 等后端健康检查和前端页面都可访问后打开浏览器,避免前端先请求后端时报 ECONNREFUSED

如果需要手动修改本地配置,可以复制 local-dev.example.cmdlocal-dev.cmd 后编辑。

生产构建:

cd C:\Users\www\Desktop\iot-device-management\frontend
npm run build

默认开发账号

开发环境配置了两个本地账号:

  • admin / admin-password
  • operator / operator-password

密码已使用 BCrypt 哈希保存。后续接入数据库用户表后,应迁移为数据库账号管理。

当前功能

  • 统一返回结构和全局异常处理
  • 参数校验和分页结构
  • 数据库用户登录、BCrypt、JWT 认证和角色权限
  • 用户管理:新增、编辑、启用/禁用、重置密码、角色分配和当前用户修改密码
  • 设备分组新增、修改、删除、详情和分页查询
  • 设备注册、修改、删除、详情和多条件分页查询
  • 设备状态上报、状态历史和离线检测任务
  • 自定义注解和 Spring AOP 操作日志
  • Flyway 数据库迁移
  • 前端菜单级和按钮级权限控制,操作日志和用户管理仅管理员可见
  • Vue 登录页、首页、设备管理、设备分组、状态历史、操作日志和用户管理页面

常用接口

  • GET /api/health
  • POST /api/auth/login
  • GET /api/users/me
  • PUT /api/users/me/password
  • GET /api/device-groups
  • POST /api/device-groups
  • GET /api/devices
  • POST /api/devices
  • POST /api/devices/{id}/status
  • GET /api/devices/{id}/status-history
  • GET /api/operation-logs
  • GET /api/users

完整接口说明见 docs/API.md

部署说明

部署步骤见 docs/DEPLOYMENT.md

下一阶段建议

  1. 将开发配置中的本地用户迁移到数据库用户表,补充用户管理页面。
  2. 增加按钮级权限控制,例如新增、编辑、删除按钮按角色显示。
  3. 增加设备属性、遥测数据和命令下发业务。
  4. 增加生产环境日志、监控、备份和数据库迁移流程。
  5. 增加前端自动化测试,覆盖登录、设备状态上报、状态历史和操作日志流程。

About

A full-stack IoT device management system built with Spring Boot and Vue 3.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors