Foxtroit Predictive — Maintenance & Asset Intelligence
Industrial IoT · Predictive Maintenance
Gives a port operator one live view of every crane, operator and safety event in the fleet.
Enterprise industrial-crane intelligence platform: real-time fleet telemetry, AI fatigue detection, safety & maintenance management, analytics and reporting — with a live digital-twin simulation engine that swaps to real PLC hardware without API changes.

PortCrane is a multi-tenant SaaS platform that gives port and heavy-industry operators a single, live view of their entire crane fleet. It streams telemetry from every asset, scores operators on productivity and safety, surfaces AI-driven fatigue events, and manages the full safety, maintenance and alerting lifecycle.
The system is built around an event-driven core: a FastAPI backend ingests and broadcasts telemetry over WebSockets fanned out through Redis pub/sub, time-series data lands in a TimescaleDB hypertable, and a Next.js 15 dashboard renders live KPIs, gauges and trends with no page refresh.
Because real crane hardware is rarely available during development, the platform ships a built-in simulation engine that continuously generates realistic telemetry, alerts, fatigue and activity events. Integrating real hardware later is a matter of replacing the simulator's producers with PLC/telemetry adapters and camera-analytics feeds — the API, schema and realtime layers stay unchanged.
Crane fleets are monitored manually and reactively — operators lack real-time visibility into utilization, safety incidents are caught after the fact, and maintenance is schedule-blind. There was also no hardware available to build against during development.
Mapped the operating model down to organizations → sites → cranes → operators, and the data each role (super admin, org admin, site manager, supervisor, operator, viewer) actually needs to act on in real time.
Built an event-driven, multi-tenant platform: FastAPI ingests telemetry and broadcasts it over WebSockets via Redis pub/sub, time-series data is stored in a TimescaleDB hypertable, and a Next.js 15 dashboard renders live KPIs, safety scoring, AI fatigue events and maintenance — all behind 6-role RBAC.
Next.js 15 (App Router) frontend ↔ FastAPI backend over REST + WebSockets, with TanStack Query for data and Zustand for client state
PostgreSQL for domain data + a TimescaleDB hypertable purpose-built for high-frequency telemetry
Redis as cache, session store and the pub/sub event bus for realtime fan-out
FastAPI WebSocket connection manager ⟷ Redis pub/sub broadcasts live telemetry/alerts/activity to every connected client
Simulation engine (asyncio background tasks) generates realistic telemetry, alerts, fatigue and activity — swappable for real PLC/camera adapters with no API change
Docker Compose orchestrates 5 services with Alembic migrations and seeded demo data
High-frequency telemetry would overwhelm a standard relational table.
Stored time-series data in a TimescaleDB hypertable, keeping queries fast while domain data stayed in PostgreSQL.
Many dashboards needed the same live updates without polling.
Used a WebSocket connection manager fed by Redis pub/sub so a single event fans out to all subscribed clients instantly.
No physical crane hardware was available to develop or demo against.
Wrote a simulation engine that produces lifelike telemetry/alerts/fatigue; production hardware plugs in by replacing the producers, leaving the API and realtime layers untouched.
Operators get a single live view of the whole fleet — utilization, safety scoring, fatigue alerts and maintenance — replacing manual, reactive monitoring with proactive, real-time intelligence. The hardware-agnostic design means a production rollout reuses the entire software stack.







