IoT Lab System Architecture (draft v1.
0)
Handle all data
Centralize mapping connection submission from client
between subscriber and publisher Data Analysis based
(identify connection via account on predefined format
and vHost)
Data Analysis
(Nodejs) Write
Hardware Database
(MongoDb)
Replicate
MQTT
Hardware Case Notification
(RabbitMQ)
Read
Database
(MongoDb)
Hardware Database
(MySql)
RabbitMQ API Web Application
Management
(Laravel)
API Client
(Nodejs)
- Users registration
- Manage User Account
- Manage Projects
- Firebase
- Integrate with rabbitmq API
Firebase
Window App Web App Mobile App (Third Party)
one user can create multiple projects
User
Required MQTT Account & vHost to
Require MQTT Account & vHost to
establish connection with MQTT Server establish connection with MQTT Server
Required API Key to access API client
Project
Devices Mobile App
Firebase MQTT Account
Database
(Require Firebase key) & vHost
Devices Window App
API Client
Devices Web App
INPUT DATA OUTPUT DATA
/devices
/devices/<imei>/search?<key>=<value>&<key>=<value>&desc=<key>&limit=10
/devices/<imei>/by-date?start-date=<######>&end-date=<######>
/devices/<imei>/last-data