A platform for real-time tracking and visualization of assets (vehicles, aircraft, drones, etc.). Open for contributions and improvements.
- Backend API — Handles telemetry, validates data, and streams updates.
- Frontend Web App — Modern dashboard with a 3D map and live asset panel.
- Simulator — Generates test data for all asset types.
- Monitoring Stack — Prometheus metrics and Grafana dashboards for system observability.
cd backend
docker compose up --build- Web App: http://localhost:5073
- API: http://localhost:5073/hubs/telemetry
- RabbitMQ Admin: http://localhost:15672 (user:
rabbitmq, password:rabbitmq) - Grafana Dashboard: http://localhost:3000 (user:
admin, password:admin) - Prometheus Metrics: http://localhost:9090
- Backend
cd backend/Api
dotnet restore
dotnet build
dotnet run- Frontend
cd frontend/critical-asset-frontend
npm install
npm start- Simulator
cd simulator/CriticalAssetSimulator
dotnet run-
Generate
The Simulator produces telemetry data and publishes it to a RabbitMQ exchange. -
Process
The Backend consumes messages, validates payloads, and applies business rules. -
Broadcast
Processed telemetry is pushed to all connected clients via SignalR. -
Render
The Angular + Cesium application updates 3D asset models in real time. -
Monitor
Prometheus collects system metrics, and Grafana provides visual dashboards for observability.
- Real-time updates via SignalR
- Interactive Cesium 3D map
- Card-based telemetry panel with icons and color badges
- Zoom to asset/all features
- Geofence drawing and alerts
- Responsive, mobile-friendly design
- Data integrity checks (CRC32)
- System monitoring with Prometheus metrics and Grafana dashboards
- Simulator:
simulator/CriticalAssetSimulator/config.json— asset counts, location, output type - Backend:
backend/Api/appsettings.json— RabbitMQ and API settings - Frontend:
frontend/critical-asset-frontend/src/environments/environment.ts— API and Cesium settings
See CI/CD documentation for pipeline details.
Everyone is welcome! Please:
- Use feature branches, PRs, and code review.
- Add unit tests for your changes (see frontend and backend test instructions below).
- Keep Cesium assets updated and respect their Apache 2.0 license headers.
- See
frontend/critical-asset-frontend/README.mdfor frontend tests, and usedotnet testfor backend.
- Cesium assets: Apache 2.0 (see headers in
frontend/critical-asset-frontend/src/assets/cesium) - Project code: See LICENSE file if present
Telemetry missing in the UI:
- Ensure backend and frontend are running and hub URLs match
- Check backend logs for errors
- Verify RabbitMQ exchange/queue exist with correct permissions
- Default RabbitMQ:
localhost:5673, exchange:catp.exchange, queue:catp.telemetry.queue
Cesium errors:
- Check static assets are loaded
- Verify
CESIUM_BASE_URLinindex.htmlandenvironment.ts
- Backend: See
backend/README.md - Frontend: See
frontend/critical-asset-frontend/README.md - Simulator: See
simulator/README.md