🔒 Source code is private. This repository is a project showcase only. For inquiries, visit my portfolio or contact giorgos.stavaras@gmail.com
A full-stack IoT dashboard that aggregates live sensor data from multiple home automation devices over MQTT and presents it through an interactive React interface. The backend exposes a REST API secured with JWT authentication, while real-time data streams are bridged to the browser via WebSockets. MongoDB stores historical readings and device configuration, enabling trend analysis with Chart.js visualizations.
- React 18 — component-based frontend with hooks and context
- Node.js 18 / Express 4 — REST API and WebSocket bridge server
- MQTT 5.0 (Mosquitto) — IoT messaging protocol for sensor data ingestion
- Chart.js 4 — real-time and historical data charting
- MongoDB 6 — time-series sensor data and device registry storage
- JWT — stateless authentication for API and dashboard access
- Live sensor data visualization (temperature, humidity, energy, motion)
- MQTT WebSocket integration for sub-second device updates
- JWT-based authentication with refresh token rotation
- REST API for device management and historical data queries
- Real-time device control (lights, thermostat, switches)
- Configurable alert thresholds with browser notifications
IoT Devices (MQTT Publish)
│
▼
┌──────────────────┐
│ Mosquitto Broker│
└────────┬─────────┘
│ MQTT Subscribe
▼
┌──────────────────────────────────────┐
│ Node.js / Express │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ MQTT Client │ │ REST API │ │
│ │ (mqtt.js) │ │ /api/v1/* │ │
│ └──────┬──────┘ └──────┬────────┘ │
│ └────────┬───────┘ │
│ WebSocket │
│ (ws broadcast) │
└──────────────────┬───────────────────┘
│ HTTPS / WS
▼
┌──────────────────┐
│ React 18 SPA │
│ Chart.js panels │
│ Device controls │
└──────────────────┘
│
▼
MongoDB 6
(sensor timeseries)
Built by Giorgos Stavaras