v1.0.0 · open source portfolio project

Real-time IoT telemetry,
ML-powered anomaly detection.

An event-driven platform where sensor data flows through Kafka and Spark, an ML ensemble flags anomalies in milliseconds, and a live Angular dashboard puts it all on a map.

pulseiot / dashboard
PulseIoT dashboard
0Spring Boot microservices
0containers, one compose up
0model ensemble (IF · Z-score · trend)
0automated tests

From sensor to insight, event by event

Every hop is a Kafka topic. Services are decoupled, independently scalable and discoverable through Eureka.

Device / SimulatorHTTP + JWT
API Gatewayauth · rate-limit · routing
Ingestion→ device-data-received
Processingrules → device-data-processed
Spark Streamingrolling windows → device-data-enriched
ML Platformensemble scoring → ml-anomalies
Alerts · AnalyticsPostgres · Redis

What it does

🧠

Ensemble anomaly detection

IsolationForest, rolling Z-score and trend detection vote on every reading. Auto-retrain runs on a schedule you control.

🗺️

Geospatial monitoring

Devices on a live map, draw polygons as areas, temperature heatmap and automatic high-risk zone highlighting.

⚡

Streaming pipeline

Kafka topics end to end with PySpark rolling-window features, idempotent consumers and retry/backoff.

🔐

Secure by default

JWT auth, role-based access on the gateway, network-isolated internal services, rate limiting.

📈

Analytics & alerting

Redis-backed telemetry history, configurable alert rules, CSV export and a live notification centre.

🛰️

Observable

Health dashboard, Eureka discovery, Prometheus + Grafana + Zipkin tracing wired into the compose stack.

Built with

Java 21Spring Boot 3.4Spring Cloud GatewayEurekaApache KafkaPySparkFastAPIscikit-learnPostgreSQLRedisAngular 17Leafletngx-chartsDocker ComposePrometheusGrafanaZipkinJWT

See it live

The demo runs the real Angular app against an in-browser mock of the API — no install, no backend.