IoT Middleware Platform

Web app for an IoT device retailer

Distributor of IoT solutions.

Request
To build a web app that will work as a cellular IoT middleware platform for receiving data from various devices.
Result
We developed a complex system fully from scratch based on the requirements set by the client.
Technologies
  • Node.js
  • React.js
  • TypeScript
  • Swagger UI
  • Nodemailer
  • PostgreSQL
  • typeORM
Result
We developed a complex system fully from scratch based on the requirements set by the client.

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

To begin with, we proposed conducting a business analysis and undertaking a design phase to create a detailed specification before commencing development. It was also important for us to choose a programming language familiar to our client, as the company’s developers needed to be able to make any necessary changes or updates to the solution on their own. After some consideration, we chose JavaScript.

We developed a series of services capable of receiving data from various IoT devices designed by different manufacturers. Each service works with a specific protocol according to the device type. When a device in the IoT system wakes up and sends data, the corresponding service responds by decoding the data and storing it in a database.

An API service enables users to automatically retrieve data from the database, making integration with external systems and applications more efficient. At the same time, a simple and intuitive web interface allows users to easily access and view the data without the need for technical expertise. This dual approach ensures both flexibility and usability.

As new devices with updated or entirely new communication protocols enter the market, additional services will be developed and added to the platform, ensuring ongoing compatibility and scalability of the system.

more
icon
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.

more
icon
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.

more
icon
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.

more
icon
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.

more
icon
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.

more
icon
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.

more

Drop us a line!

Do you have a product idea you wish to bring to life?

Privacy Policy
Privacy Policy Text