This repository showcases an alternative implementation of the Transport for X website, which I previously worked on. While the original website was groundbreaking at its release, it eventually evolved into a sprawling monolith with convoluted and unnecessary code.
This version was developed during my personal time over the Christmas break of 2019. It adopts a JSON feed concept, where a Go-based process converts the original Razor .cshtml files (previously generated by a CMS) into structured JSON data. These feeds are then parsed and rendered using EJS templates running on a Node.js server.
To simplify the frontend, this version leverages Bootstrap and an extremely simplified CSS approach, replacing the original's thousands of lines of complex styling code. Additionally, this implementation currently uses no custom JavaScript, ensuring a lightweight and streamlined solution.
This improved architecture offers greater flexibility, cleaner code, and improved maintainability compared to the original design.
I have recently revisited this demo to upgrade all the packages and js module approach, as well as include a deployment to an EC2 instance on AWS. It connects to a MongoDB database to handle sessions and user creation, as well as storing the contact us submissions.
To get this operational again in a single evening, I have disabled the multer document uploading and S3 bucket storage features
The AWS instance costs around 50c per day, so it will be switched off normally.
It may be running if you want to observe it http://13.41.185.213:3000/