-
Notifications
You must be signed in to change notification settings - Fork 0
Home
| Page | Description |
|---|---|
| Home | Platform overview, architecture, and service inventory |
| Router | Multi-protocol GPS provider integration and data sync flow |
| Technology | Tech stack, PKCE authentication flow, and Clean Architecture |
| Database | PostgreSQL schema, ER diagrams, and multi-tenant isolation |
| User Permissions Overview | RBAC + Policy model, permissions matrix by screen |
| Page | Description |
|---|---|
| User Guide index | Step-by-step guides for operators, managers, and administrators — 🇪🇸 en español |
| Getting started · Roles & permissions · Glossary | The basics |
| Live map · Trips & replay · Geofences · Reports · Alerts | Day-to-day operation |
| Account management · System administration · GPS integration | Administration |
| Troubleshooting | When something goes wrong |
TrackHub is an enterprise GPS asset-tracking integration platformthat connects to the web services of multiple GPS Tracking Providers, retrieves real-time and historical positioning data, and consolidates it into a single, user-friendly interface. This allows users to monitor multiple tracking systems in one place, simplifying fleet management and location tracking.
graph TB
subgraph Clients["TrackHub Clients"]
direction LR
laptop["🖥️ Web Browser"]
tablet["📱 Tablet"]
phone["📱 Mobile"]
end
subgraph TrackHub["TrackHub Platform"]
direction LR
api["Unified API Layer"]
end
subgraph Providers["GPS Tracking Providers"]
p1["Platform 1<br/><i>e.g. GeoTab</i>"]
p2["Platform 2<br/><i>e.g. GPS Gate</i>"]
p3["Platform 3<br/><i>e.g. Traccar</i>"]
pn["Platform N<br/><i>Any Provider</i>"]
end
laptop --> api
tablet --> api
phone --> api
api -->|REST / GraphQL / SOAP| p1
api -->|REST / GraphQL / SOAP| p2
api -->|REST / GraphQL / SOAP| p3
api -->|REST / GraphQL / SOAP| pn
TrackHub abstracts the complexity of each provider's unique API into a standardized data model, so clients always receive consistent position data regardless of the underlying GPS platform.
TrackHub follows a microservices architecture built on .NET 10 and React.js, with each service owning a specific domain. All backend services communicate via GraphQL, while the Reporting service exposes a REST Minimal API for file downloads.
graph TB
subgraph Frontend["Frontend"]
web["TrackHub Web<br/><i>React.js</i>"]
end
subgraph Gateway["Nginx Reverse Proxy"]
nginx["SSL Termination<br/>Path-based Routing"]
end
subgraph Backend["Backend Microservices"]
auth["AuthorityServer<br/><i>OpenIddict / OAuth 2.0</i>"]
sec["Security API<br/><i>GraphQL</i>"]
mgr["Manager API<br/><i>GraphQL</i>"]
rtr["Router API<br/><i>GraphQL</i>"]
geo["Geofencing API<br/><i>GraphQL</i>"]
rpt["Reporting API<br/><i>REST</i>"]
trip["TripManagement API<br/><i>GraphQL</i>"]
end
subgraph Workers["Background Services"]
sync["SyncWorker<br/><i>Position Sync</i>"]
end
subgraph Data["Data Layer"]
db1[("TrackHubSecurity<br/><i>PostgreSQL</i>")]
db2[("TrackHub<br/><i>PostgreSQL + PostGIS</i>")]
end
web --> nginx
nginx --> auth & sec & mgr & rtr & geo & rpt
auth --> db1
sec --> db1
sec -->|GraphQL| mgr
mgr --> db2
mgr -->|GraphQL| sec
rtr -->|GraphQL| mgr
rtr -->|GraphQL| geo
geo --> db2
rpt -->|GraphQL| rtr
rpt -->|GraphQL| geo
trip -->|GraphQL| geo
sync -->|GraphQL| rtr
| Service | Technology | Protocol | Database | Purpose |
|---|---|---|---|---|
| TrackHub (Frontend) | React.js, MUI | — | — | Web UI with maps, dashboards, reports |
| AuthorityServer | .NET 10, OpenIddict | OAuth 2.0 | TrackHubSecurity | Identity provider, PKCE authorization |
| Security | .NET 10, HotChocolate | GraphQL | TrackHubSecurity | Users, roles, policies, permissions |
| Manager | .NET 10, HotChocolate | GraphQL | TrackHub | Accounts, transporters, devices, operators |
| Router | .NET 10, HotChocolate | GraphQL | — | Multi-protocol GPS provider integration |
| Geofencing | .NET 10, HotChocolate | GraphQL | TrackHub | Geofence CRUD, spatial queries, events |
| Reporting | .NET 10 Minimal APIs | REST | — | Excel report generation |
| TripManagement | .NET 10, HotChocolate | GraphQL | — | Trip analysis and management |
| SyncWorker | .NET 10 Worker | — | — | Background position synchronization |
All backend services depend on TrackHubCommon, a shared NuGet package that provides:
- Custom CQRS mediator pipeline (commands, queries, behaviors)
- OpenIddict JWT configuration
- GraphQL client helpers with Polly resilience (retry + circuit breaker)
- Authorization behavior with resource/action attribute checking
- Logging, validation, caching, and rate-limiting behaviors
- Domain event infrastructure
- Multi-provider integration — Connect any number of GPS providers simultaneously
- Real-time tracking — Live map with device positions, speed, and status
- Geofencing — Create and manage geofences with automatic event detection
- Reporting — Position history, geofence events, and mileage reports (Excel export)
- Multi-tenant — Full account isolation with hierarchical roles and policies
- PKCE authentication — Secure OAuth 2.0 authorization for web and mobile clients
- Role-based access control — Fine-grained permissions per resource and action