
IoT Middleware Platform
Web app for an IoT device retailer

Distributor of IoT solutions.

Request
Result
Technologies
- Node.js
- React.js
- TypeScript
- Swagger UI
- Nodemailer
- PostgreSQL
- typeORM
Result
Results
-
Reliable Device Integration
Developed solution improved integration and system reliability, expanding the client’s global reach.
-
Simplified Data Management
An intuitive interface and automated API streamlined data access, enhancing user experience and scalability.
Challenge

The client’s company works with customers worldwide, delivering efficient IoT, LoRaWAN, and cellular LPWAN products. Their low-powered, battery-operated sensors can function anywhere cellular networks support NB-IoT or LTE-M. With SIM cards installed, these devices can send small amounts of data (e.g., air temperature, humidity, or vital parameters) over long distances using minimal power.
How and when devices transfer data to a server is not standardized at the application level, as each manufacturer has its own approach to this issue, so integrating products from different companies often requires multiple protocols. To solve this, our client launched a middleware platform on internet servers to decode data from various formats. Our team was responsible for building it from scratch.
Solution

Users
The system provides for 5 user roles, including a superadmin, a customer admin, a customer user, a second-level customer admin, and a second-level customer user. Each user/login used in the system belongs to one organization only. Superadmins and admins are allowed to create, edit, or delete user accounts.
Web UI
It was crucial to make the UI as simple as possible. The main design principles were ease of use and speed. The admin interface intended to be used by our client's customers and their staff includes a basic table view of the data received from IoT devices and some functionality for performing CRUD operations on devices.
Databases
A database is at the core of the system. Data is kept in “key-value” pairs with tags such as device identifiers, and it is always time-stamped, which allows users to find data either by the most recent value or a start/end time. A second database stores user and device information. The stored data is immutable.
Decoding
Decoding can take place in different ways, depending on the used devices. In some cases, a device sends a message to a decoder, which transforms this message into meaningful information and stores it in a database. The device that has sent the message won’t receive anything back. In other cases, it can be a two-way interaction, so that, after sending data to a decoder, the device will get a specific response.
Device management
Superadmins and admins can create, edit, or delete devices. Each device has its identifier that will be used when a device sends data to the corresponding protocol listener. User-level accounts can view devices but are not allowed to introduce changes.
Data management
All users can view data received from devices that belong to them, The data can be searched by the device (using its tag or ID) and time.

Drop us a line!
Do you have a product idea you wish to bring to life?