README.md
NS CTA Board is een realtime webapplicatie voor Nederlandse treinvertrekborden, geïnspireerd op de digitale perronborden die gebruikt worden op stations van de Nederlandse Spoorwegen (NS). De applicatie toont live vertrekinformatie van de eerstvolgende trein vanaf een geselecteerd station met behulp van realtime openbaarvervoerdata afkomstig van de NS API.
Het project werd ontwikkeld als mijn eerste webdevelopmentproject en volledig gebouwd binnen ongeveer één week als onderdeel van een schoolopdracht. Het visuele ontwerp was sterk gebaseerd op de echte NS-perronborden die destijds werden gebruikt, inclusief layoutstructuur, typografie en styling van vertrekinformatie. Hoewel de echte NS-borden inmiddels gebruikmaken van een dark theme, weerspiegelt dit project de eerdere generatie met een licht thema.
De frontendapplicatie werd gebouwd met HTML, CSS en JavaScript, waarbij dynamische vertrekdata wordt opgehaald via de NS API. Na de oorspronkelijke publieke release werd een belangrijk beveiligingsprobleem ontdekt waarbij de API-sleutel client-side zichtbaar kon worden door directe API-aanroepen. Om dit op te lossen werd een custom PHP-gebaseerde API-proxy ontwikkeld om verzoeken veilig server-side af te handelen zonder publieke blootstelling van de API-gegevens.
De proxyimplementatie introduceerde daarnaast origin-validatie om ervoor te zorgen dat alleen geautoriseerde websites onder mijn eigen domeinen toegang konden krijgen tot de geproxiede API-endpoints. Dit werd later een belangrijke leerervaring op het gebied van API-beveiliging, backendbescherming en veilige infrastructuur binnen publiek toegankelijke webapplicaties.
Als enige developer van het project was ik verantwoordelijk voor de volledige frontendimplementatie, API-integratie, proxyarchitectuur, beveiligingsverbeteringen, responsive gedrag en de algemene technische ontwikkeling van de applicatie.
Gebouwd met HTML, CSS, JavaScript, PHP, NS API-integraties en dynamische webtechnologieën.