IoT

Multi-Tenant IoT Platform

IroTeam — devices, apps, and hardware on one platform

Role
Primary author
Period
2021 – 2025
Commits
600+ verified
Scale
5,000+ devices · 2M+ events/day

Overview

The IroTeam multi-tenant IoT platform: 5,000+ greenhouse and access-control devices publish telemetry over MQTT into an ASP.NET Zero (ABP) backend, with tenant-isolated data feeding a Nuxt web app and customer portals — 2M+ events a day at 99.8% uptime.

I am the primary author of the backend (IroTeam.IOT solution) and the Nuxt front-end. The web app consumes live telemetry directly over MQTT-over-websockets alongside a GraphQL/REST API, with streaming charts (chart.js streaming plugin, amCharts) and PWA support for on-site operators.

  • iroteam-iot / iroteam/backend/iotASP.NET Zero solution + Angular admin
  • iot-nuxtNuxt tenant web app (MQTT, Apollo, PWA)
  • iot-package · greenhouseshared packages + greenhouse front

Tech stack

Backend

  • .NET 8/5
  • C#
  • ASP.NET Zero / ABP
  • MQTT broker
  • SQL Server

Web

  • Nuxt
  • Vue
  • MQTT.js
  • Apollo GraphQL
  • chart.js streaming
  • PWA

Admin

  • Angular
  • Firebase

Design patterns

  • Multi-tenancy (ABP)

    Tenant isolation comes from the ABP layer — every device, zone, and reading is tenant-scoped at the data level.

  • MQTT pub/sub

    Devices publish telemetry topics; the backend ingests them and the Nuxt app subscribes directly over MQTT-websockets for live charts.

  • Layered DDD (ASP.NET Zero)

    Application / Core / EF Core layering with Web, Mobile, and All solution heads.

  • Offline-capable PWA

    The operator web app installs as a PWA with Firebase push for alarms.

System design

Multi-Tenant IoT Platform system diagram