Terug naar projecten
Treinfo logo

Een platform rond Belgische treininfo van de NMBS, gebouwd als een mono-repo van elf samenwerkende services op basis van de Belgian Mobility Company-data.

11 services
Docker Compose
GTFS-RT

Treinfo is een volledig platform rond Belgische treininfo van de NMBS. Het draait als een Docker Compose mono-repo van elf samenwerkende services die een gedeeld design system, Jinja-templates en SQLAlchemy-modellen delen. De data komt van de Belgian Mobility Company (BMC) via GTFS- en realtime-feeds, die worden omgezet naar snelle en overzichtelijke interfaces.

Treinfo preview

Tech-stack

In het kort

Architectuur

Databron

BMC GTFS BMC Realtime

Backend & API

TreinfoTracker accounts_service tracing_api

Frontend & UI

TreinfoWeb TreinfoMap TreinfoLogger TreinfoCatcher TreinfoTransfer TreinfoPlanner TreinfoSpoorbaron

De 9 services

Elke service heeft een eigen rol binnen het platform. Hieronder lees je per service wat ze precies doet.

01 data & api
TreinfoTracker

Data-eigenaar, REST-API en realtime-worker.

Dit is de data-eigenaar van het platform. De service haalt de GTFS- en realtime-feeds van de Belgian Mobility Company (BMC) op, verwerkt ze tot live vertrekborden en treinsamenstellingen, en biedt alles aan via een REST-API. Een aparte worker draait de realtime-verwerking continu op de achtergrond.

02 frontend
TreinfoWeb

De hoofd-webfrontend voor reizigers.

Dit is de hoofd-webfrontend waar reizigers terechtkomen. Je vindt er het liveboard, de trein- en stationsweergave, de reisplanner en de actuele storingen, allemaal in het gedeelde glassmorphism-design.

03 map
TreinfoMap

Live kaart van NMBS-treinen.

Deze service toont alle rijdende NMBS-treinen live op een kaart. Ze bestaat uit een tracing-API die de posities en geometrie berekent, en een kaart-frontend die alles visualiseert.

04 planner
TreinfoPlanner

Reisplanner voor treinrondjes met minimaal aantal ritten.

Deze reisplanner stelt treinrondjes en dagplanningen samen met zo weinig mogelijk ritten. De service leest de spoorgraaf read-only uit Postgres, genereert kandidaat-rondjes en mapt ze op de echte dienstregeling via de routeplanner.

05 logger
TreinfoLogger

Backend-For-Frontend om reizen en spottings te loggen.

Dit is een lichte Backend-For-Frontend waarmee je je treinreizen en spottings kunt loggen. De service bundelt data uit de Tracker-API, de tracing-API en de accountservice.

06 game
TreinfoCatcher

Gamification om treintypen te vangen op locatie.

Dit is een speelse toepassing die geïnspireerd is op Pokémon Go. Je vangt er NMBS-treintypen op basis van je locatie, waardoor treinspotten een leuke gamification-laag krijgt.

07 util
TreinfoTransfer

Private bestandsdeling in WeTransfer-stijl.

Dit is een private bestandsdeeldienst in WeTransfer-stijl voor de Treinfo-familie. Uploaden kan enkel met een goedgekeurd account, downloaden gebeurt accountloos via een deel-link of korte code, en de bestanden worden automatisch opgeruimd.

08 game
TreinfoSpoorbaron

Spoorbeheergame in de stijl van Transport Tycoon.

Dit is een beheergame in de stijl van Transport Tycoon, gebouwd in vanilla ES-modules zonder buildstap. Je bouwt je eigen Belgische spoorbedrijf, koopt materieel, tekent lijnen, plant dienstregelingen, beheert depots en vervult evenementcontracten.

09 auth
accounts_service

Gedeelde authenticatie- en accountservice.

Dit is de gedeelde authenticatie- en accountservice. Ze verzorgt registratie, login en JWT-tokens, en regelt de permissies voor alle apps in de Treinfo-familie.

Ander project