README.md
NS CTA Board is a real-time Dutch railway departure board web application inspired by the digital platform boards used across train stations operated by Nederlandse Spoorwegen (NS). The application displays live departure information for the first departing train from a selected station using real-time public transport data retrieved through the NS API.
The project was developed as my first web development project and was fully created within approximately one week as part of a school assignment. The visual design was closely based on the real NS station platform boards that were used at the time, including layout structure, typography, and departure information styling. While the original NS boards have since moved to a dark theme, this project reflects the earlier light-themed design generation.
The frontend application was built using HTML, CSS, and JavaScript, with dynamically loaded departure data retrieved from the NS API. After the original public release, an important security issue was identified where the API key could be exposed client-side through direct API requests. To solve this, a custom PHP-based API proxy was developed to securely handle requests server-side while preventing public exposure of the API credentials.
The proxy implementation also introduced origin validation to ensure that only authorised websites hosted under my own domains could access the proxied API endpoints. This later became an important learning experience regarding API security, backend protection, and secure infrastructure design within public-facing web applications.
As the sole developer of the project, I was responsible for the complete frontend implementation, API integration, proxy architecture, security improvements, responsive behaviour, and overall technical development of the application.
Built with HTML, CSS, JavaScript, PHP, NS API integrations, and dynamic web technologies.