Thermosphere: Building Realtime iOT Dashboard
- Thermosphere is an Australia based climate control technology company which sells technologically advanced industrial air conditioning units.
- Nativebyte undertook the responsibility of building their entire technology platform working closely with the hardware team, electrical engineers and the technicians.
- We built a robust platform to manage their entire operations right from taking device orders, managing inventory and parts information, gathering telemetry data from devices, analysing that data in realtime, troubleshooting issues and resolving customer queries with a ticketing system.
The Thermosphere application is comprises of various REST and queuing services developed in an agile fashion. It has 6 major components:
- Telemetry data engine
- Data analytics engine
- User mobile app
- Support engineer mobile app
- Customer and device management system
- Ticket based query resolution system
- We built a secure cloud platform to collect telemetry data from IoT devices, an analysis engine to perform analytics on millions of data points in realtime, a custom CRM to manage users and devices and resolve user issues with ticketing system. We also built mobile apps for the users to control their device and help support engineers to tackle on-site issues.
- The stack includes communication protocols between IoT enabled hardware units which are securely connected to the cloud platform sending telemetry data in realtime. A dashboard facilitates analysing historical data from devices and fix issues in real time based on the live data.
- Issue tickets are generated automatically based on the telemetry data in case our analytics engine finds any issue in a device. These tickets can be then worked upon and resolved by the customer support team.
Telemetry data is transferred over MQTT protocol in a secure way from devices to our servers, processed there and then saved in the database.
Backend platform is a REST platform built on Node.js, MongoDB, InfluxDB, Redis and RabbitMQ. Frontend and dashboards are built with React JS with various graphing libraries and served statically through cloudfront.
User application is built on Android and iOS both. Support engineer application is available on Android.
Deployments and test cases are run automatically by CI/CD modules based on the gitlab CI/CD pipeline. The backend infrastructure runs on AWS autoscale groups with docker based auto-scalability along with telemetry data brokers and queuing mechanisms and is served through load balancers. The platform is a distributed system with no single point failure. Databases are also distributed and sharded to weed out any bottleneck issues.
In its present state, the system can safely receive and save hundreds of millions of data points hourly without any hiccups.