[Open-source] IoT platform developed based on a general back-end management system, with 100% open-source front-end and back-end code
![[Open-source] IoT platform developed based on a general back-end management system, with 100% open-source front-end and back-end code](https://yy123.ink/api/img/1782579764008-s21408.jpg)
1. Project Overview
enjoy-iot
Based on the potato foundation framework, the Internet of Things platform includes products, device models, message conversion, components (MQTT components, EMQX components, HTTP components, TCP components, Modbus components, etc.), device management, device grouping, rule engines, third-party platform access, data flow (HTTP/MQTT/Kafka), alarm centers, etc. modules, supporting multiple time-series databases such as ES/td.
2. Open Source License
Licensed under AGPL-3.0
Commercial & Authorization
Open-source version: The code is completely open-source. It can be used for personal learning and research purposes. For commercial use, please contact the author to apply for authorization and it can be used for free, but the open-source signature and other information still need to be retained.
Commercial version: Under testing
3. Screenshots





4. Feature Overview
Platform universal basic function
-
Based on the Ruoyi universal backend management system, developed -
Using Spring Boot multi-module architecture, MySQL + MyBatis Plus, Redis + Redisson -
The default database used is MySQL, and other databases will be adapted in the later stage -
Message queues can be used Event, Redis, RabbitMQ, Kafka, RocketMQ, etc. -
Authorization using Spring Security & Token & Redis, supports multi-terminal, multi-user authentication system, supports SSO single sign-on -
Supports loading dynamic permission menus, button-level permission control, Redis caching improves performance -
High-efficiency development, using code generators can generate Java, Vue front-end and back-end code, SQL scripts, interface documents, support single table, tree table, master and sub-table, etc. -
Integration with Aliyun, Tencent cloud, etc. SMS channels, integration with MinIO, Aliyun, Tencent cloud, Qiniu cloud, etc. cloud storage services
Platform IoT functions
-
Category management - tree-type category management, built-in common IoT device categories -
Product management - provides product basic information settings, model definition, product release management, data analysis, etc. -
Device management - basic management functions (registration, grouping, labeling, etc.), running monitoring, remote control, security management, data management, etc. -
Device access - provides mqtt/http/modbus, etc. common protocol access, device authentication, access configuration, connection management, OTA, etc. -
Component center - based on Spring Boot device protocol access module, can implement dynamic configuration, multi-instance independent deployment -
Rule engine - data processing rules, trigger conditions, execution actions, rule configurations, running management, scenario applications, etc. -
Alarm center - alarm rule configurations, alarm notifications, alarm handling, alarm monitoring, alarm linkage, etc. -
Data management - provides real-time data storage, historical data time-series database storage, data query analysis, data push, etc. -
In addition, provides visual big screen, third-party platform docking, video access, drone access, AI algorithm integration, etc. functions
5. Tech Stack
1. Platform architecture diagram

2. Development environment
2.1. Backend environment
-
JDK >=1.8
-
Maven >= 3.6
2.2. Infrastructure
-
Database (must) (database scripts currently only have mysql8):
PostgreSQL, Oracle, SQL Server, DM, Big Gold, etc. other databases are also available, currently database scripts are pending supplementation
-
Redis >= 5 (must) -
Time-series database (must):
Time-series database can be chosen according to your familiarity, and the corresponding interface can be implemented
TDengine = 3.3.2.0 (Implemented)
Elasticsearch (Implemented)
Timescale (To Be Ported)
IotDB (To Be Contributed)
-
MQ (Optional)
Kafka
and
-
EMQX (Optional)
2.3, Front-end Environment
Please use the following browsers, the browser major version needs to be above 100.
-
Chrome >= 100 -
Firefox >= 100 -
Edge >= 100
Front-end Environment
-
nodeJs v18+ -
pnpm
3, Compilation and Installation
Development Tools: Recommended to use IDEA
3.1, IDE Project Configuration
The project uses the default JDK 1.8 version (11, 17 are also available)
For detailed content, please refer to the official documentation of enjoy-iot