Real-time vessel tracking dashboard for container terminal operations. Compares live AIS positions against the planned N4 arrival schedule and alerts planners when ships deviate from their ETA — before they arrive.
▶ Live Demo — no API key needed, demo launches automatically.
Disrupted sailing schedules are one of the biggest operational challenges for container terminals. When a vessel arrives 6 hours late:
- The yard plan is wrong — containers are pre-positioned for a ship that isn't coming
- Crane crews are misallocated — expensive idle time or unplanned overtime
- Truck appointments don't match — gate congestion, missed slots
- Vessel stack cutoffs are missed — cargo rolled to next departure
Early ETA visibility gives operations the time to adapt. This tool surfaces deviations while the vessel is still at sea.
| Feature | Description |
|---|---|
| Demo mode | Auto-starts with 8 simulated vessels — no API key required |
| Live AIS feed | Real vessel positions via aisstream.io WebSocket |
| KPI dashboard | Vessels tracked · On-time % · Average deviation · Critical alerts |
| Directional markers | Triangle icons rotate to show vessel heading (COG) |
| ETA deviation | Calculated ETA vs N4 scheduled ETA, colour-coded by severity |
| Alert log | Critical deviations (>120 min) trigger toast + alert log |
| Vessel detail | Voyage, service line, scheduled vs calculated ETA, approach line on map |
| Search & filter | Filter by vessel name, service line, voyage, or status |
| ETA chart | Deviation history for the last 30 updates |
| CSV export | One-click export of current vessel state |
Live AIS feed (aisstream.io WebSocket)
│
▼
Filter vessels in bounding box ← North Sea / English Channel approach
│
▼
Position + speed → calculate real ETA to CSP Zeebrugge berth
│
▼
Compare against N4 planned schedule
│
▼
Deviation > threshold? → Alert (toast + log)
- Open
index.htmlin any browser - Demo launches automatically with 8 simulated vessels
Or use the hosted version.
- Get a free API key at aisstream.io (sign up with GitHub)
- Open
index.html - Paste your API key → click Connect
- Live vessels in the North Sea approach appear on the map
| Colour | Meaning | Threshold |
|---|---|---|
| 🟢 Green | On schedule or early | < +30 min |
| 🟡 Yellow | Moderate delay | +30 – +120 min |
| 🟠 Orange | Significant delay | +120 – +240 min |
| 🔴 Red | Critical — action required | > +240 min |
| Layer | Technology |
|---|---|
| Frontend | Pure HTML / CSS / JavaScript — zero dependencies, no build step |
| Map | Leaflet.js + CartoDB dark tiles |
| Charts | Chart.js |
| AIS data | aisstream.io — free WebSocket API |
| Schedule | Simulated N4 data (production: replace with N4 REST API) |
Single file. No server. No framework. Opens directly in browser.
To go from demo to production, replace:
// In index.html — the N4 schedule array
const N4 = [
{ mmsi: '477307900', name: 'COSCO SHIPPING AQUARIUS', eta: oh(-0.5), svc: 'AEX', voy: 'AEX-041W' },
// ...
];With a fetch from your N4 REST API:
const N4 = await fetch('/api/n4/expected-arrivals').then(r => r.json());The rest of the logic (ETA calculation, deviation, alerting) works unchanged.
CSP Zeebrugge handles vessels on the AEX, EC2, and FE4 service loops — connecting the UK, Ireland, Scandinavia and the Baltics through the English Channel and southern North Sea. In disrupted alliance seasons, vessels can run 6–24 hours off schedule. For a terminal processing 1M+ TEU per year, early visibility of those deviations directly reduces rehandles, overtime, and crane idle time.
MIT — see LICENSE