智慧物联设备管理系统采用前后端分离架构,当前已具备登录认证、设备分组、设备管理、设备状态上报、状态历史、离线检测和操作日志等基础能力。
.
├── 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" testcd 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.cmd 为 local-dev.cmd 后编辑。
生产构建:
cd C:\Users\www\Desktop\iot-device-management\frontend
npm run build开发环境配置了两个本地账号:
admin / admin-passwordoperator / operator-password
密码已使用 BCrypt 哈希保存。后续接入数据库用户表后,应迁移为数据库账号管理。
- 统一返回结构和全局异常处理
- 参数校验和分页结构
- 数据库用户登录、BCrypt、JWT 认证和角色权限
- 用户管理:新增、编辑、启用/禁用、重置密码、角色分配和当前用户修改密码
- 设备分组新增、修改、删除、详情和分页查询
- 设备注册、修改、删除、详情和多条件分页查询
- 设备状态上报、状态历史和离线检测任务
- 自定义注解和 Spring AOP 操作日志
- Flyway 数据库迁移
- 前端菜单级和按钮级权限控制,操作日志和用户管理仅管理员可见
- Vue 登录页、首页、设备管理、设备分组、状态历史、操作日志和用户管理页面
GET /api/healthPOST /api/auth/loginGET /api/users/mePUT /api/users/me/passwordGET /api/device-groupsPOST /api/device-groupsGET /api/devicesPOST /api/devicesPOST /api/devices/{id}/statusGET /api/devices/{id}/status-historyGET /api/operation-logsGET /api/users
完整接口说明见 docs/API.md。
部署步骤见 docs/DEPLOYMENT.md。
- 将开发配置中的本地用户迁移到数据库用户表,补充用户管理页面。
- 增加按钮级权限控制,例如新增、编辑、删除按钮按角色显示。
- 增加设备属性、遥测数据和命令下发业务。
- 增加生产环境日志、监控、备份和数据库迁移流程。
- 增加前端自动化测试,覆盖登录、设备状态上报、状态历史和操作日志流程。