Migcon IoT Platform
Migcon is a multi-tenant IoT device management platform that enables real-time monitoring, alarm management, and sensor data logging from industrial devices. I contributed to the core backend infrastructure building the communication layer between physical IoT devices and the backend system.
CATEGORY: WEB DEVELOPMENT
What I Built
MQTT Service: A NestJS microservice handling real-time device communication, alarm processing, and sensor data logging via three controllers: Alarms, Sensor readings, and Gateway (device commands)
MQTT Broker: configured Eclipse Mosquitto v2 as the message broker handling device-to-server communication with RPC-style acknowledgement and timeout management
MongoDB: set up MongoDB 6.0 as the primary database with health checks, volume management, and schema design for devices, alarms, tenants, and sensor logs.
Docker: containerized all services using Docker Compose with separate development and production configurations and multi-stage builds for optimized image sizes
CI/CD Pipeline: implemented GitHub Actions for automated deployment to production via SSH, triggered on every push to the production branch
Key Features
Real-time alarm processing: various severity levels with per-channel threshold configuration across multiple channels per device
Automatic retry logic: cron jobs retry alarm configuration every for unresponsive devices
Multi-tenant architecture: isolated data per organization with role-based access control
ELK Stack integration: Elasticsearch, Logstash, Kibana, and Filebeat for centralized log monitoring
Technologies Used
Backend: NestJS, TypeScript, Mongoose, Socket.IO
Database: MongoDB 6.0
Messaging: Eclipse Mosquitto v2, MQTT protocol
DevOps: Docker, Docker Compose, GitHub Actions, NGINX
Infrastructure: VPS production server, SSH-based deployment