How uvaestudantes/noponto-backend works
NoPonto is a layered ASP.NET Core mobility backend. The main runtime path collects and validates bus/BRT GPS, matches observations to versioned routes, updates operational state and ephemeral snapshots, then publishes vehicle updates to clients. Rail is a distinct schedule-first path that infers positions from provider evidence. The README documents additional structural imports, stop events, history, telemetry, and experimental ETA capabilities. Edges use README statements or shown source references; unsampled implementation details are represented conservatively.
Main entry points: Program.cs ASP.NET API · GpsPollingService.cs GPS polling and validation · ViagemOperacionalRepository.cs Trip repository · GpsEnriquecimentoService.cs GPS matching
Components 24
API and clients
- ASP.NET API
NoPonto/Program.cs - GPS SignalR hub
NoPonto/1-API/Hubs/GpsHub.cs - Structure endpoints
NoPonto/1-API/Controllers/EstruturaLinhasController.cs - Rail vehicle API
NoPonto/1-API/Controllers/RailVehiclesController.cs
Road operations
- GPS sources
NoPonto/2-Application/Services/GPS/GtfsRealtimeGpsSource.cs - GPS polling and validation
NoPonto/2-Application/Services/GPS/GpsPollingService.cs - GPS matching
NoPonto/2-Application/Services/GPS/GpsEnriquecimentoService.cs - Operational projection
NoPonto/2-Application/Services/GPS/ProjecaoOperacional.cs - Observed trips
NoPonto/2-Application/Services/GPS/ViagemObservadaService.cs - ETA client
NoPonto/2-Application/Services/GPS/GpsEtaClient.cs
Rail realtime
- Rail schedules
NoPonto/2-Application/Services/TremSchedule/RailScheduleRuntime.cs - Sentinel scheduler
NoPonto/2-Application/Services/TremRealtime/Scheduling/TremSentinelSchedulerEngine.cs - Rail tracking
NoPonto/2-Application/Services/TremRealtime/Tracking/TremRealtimeTracker.cs - Position estimation
NoPonto/2-Application/Services/TremRealtime/RailRuntime/RailRealtimeEngine.cs
Structure and insights
- Structural imports
NoPonto/2-Application/Services/GTFS/StructuralImportCommand.cs - Stop events
NoPonto/2-Application/Services/EventosParada/EventosParadaService.cs - Telemetry and ETA V2
NoPonto/2-Application/Services/BackgroundServices/TelemetriaMlWorker.cs
Persistence
- PostgreSQL / PostGIS
- Redis snapshots
- Trip repository
NoPonto/4-Data/Repositories/ViagemOperacionalRepository.cs - Observed-trip repository
NoPonto/4-Data/Repositories/ViagemObservadaRepository.cs - Trip outbox worker
NoPonto/2-Application/Services/BackgroundServices/ViagemOutboxWorker.cs
Other components
- Mobile app
- Transit providers
Connections 29
- Mobile app → ASP.NET API: HTTP / SignalR
- ASP.NET API → PostgreSQL / PostGIS: SQL / PostGIS
- ASP.NET API → Redis snapshots: RESP
- ASP.NET API → Transit providers: HTTP
- ASP.NET API → GPS polling and validation: hosts workers
NoPonto/Program.cs - GPS polling and validation → GPS sources: collects positions
NoPonto/2-Application/Services/GPS/GpsPollingService.cs - GPS polling and validation → GPS matching: enriches batch
NoPonto/2-Application/Services/GPS/GpsPollingService.cs - GPS polling and validation → ETA client: requests predictions
NoPonto/2-Application/Services/GPS/GpsPollingService.cs - GPS polling and validation → Redis snapshots: updates snapshots
- GPS polling and validation → GPS SignalR hub: publishes updates
NoPonto/2-Application/Services/GPS/GpsPollingService.cs - GPS matching → PostgreSQL / PostGIS: matches via PostGIS
- GPS polling and validation → Observed trips: updates trip state
NoPonto/2-Application/Services/GPS/GpsPollingService.cs - Observed trips → Trip repository: persists operations
NoPonto/5-Testes/GpsPipelineDisposableIntegrationTests.EvidenceContinuity.cs - Trip repository → PostgreSQL / PostGIS: stores durable state
NoPonto/4-Data/Repositories/ViagemOperacionalRepository.cs - Trip repository → Redis snapshots: projects state
NoPonto/4-Data/Repositories/ViagemOperacionalRepository.cs - Observed-trip repository → Redis snapshots: updates trip state
NoPonto/4-Data/Repositories/ViagemObservadaRepository.cs - Trip repository → Trip outbox worker: writes outbox
NoPonto/4-Data/Repositories/ViagemOperacionalRepository.cs - ASP.NET API → Structural imports: registers import command
NoPonto/Program.cs - Structural imports → PostgreSQL / PostGIS: publishes versions
- ASP.NET API → Sentinel scheduler: hosts rail services
NoPonto/Program.cs - Rail schedules → PostgreSQL / PostGIS: loads schedules
- Sentinel scheduler → Rail tracking: schedules evidence tracking
- Rail tracking → Position estimation: supplies observations
- Position estimation → Rail vehicle API: serves inferred positions
- ASP.NET API → Stop events: hosts event services
- Stop events → PostgreSQL / PostGIS: stores history
- ASP.NET API → Telemetry and ETA V2: hosts workers
NoPonto/Program.cs - Telemetry and ETA V2 → PostgreSQL / PostGIS: persists telemetry
- ASP.NET API → Structure endpoints: serves structure