Skip to content

geosta-engineer/smarthome-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

🏠 SmartHome Dashboard

🔒 Source code is private. This repository is a project showcase only. For inquiries, visit my portfolio or contact giorgos.stavaras@gmail.com

React Node.js Express MQTT Chart.js MongoDB JWT

Overview

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.

Tech Stack

  • 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

Key Features

  • 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

Architecture

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)

📬 Contact

Built by Giorgos Stavaras

About

Full-stack IoT dashboard — React, Node.js, MQTT, Chart.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors