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.