Any student living in the city knows the morning buses are crammed and almost always late. The service is so overstretched it effectively relies on some of us skipping our 9ams to function.
We’ve made a system to start fixing this, building an AI model which uses historic delays, alongside MyTimetable and live bus data. This app predicts lateness, telling students the best time to leave home.
Bussin’ improves the journey to campus, making buses feel more reliable.
How we built it
Data is harvested, live, from the UK Government's bus data API. We parse over 100 million lines of XML every minute, transforming live bus geolocations into a trainable dataset of scheduled and actual bus departures, from every bus at every stop, on every route in the South West of England.
In addition, we use the MapBox API to harvest live traffic data, and associate this with each bus, as it's important not to assume that buses on different sections of a route will experience the same upcoming traffic.
We store this data in an intermediary form - a normalised relational database - which means the training dataset can easily be re-generated to include recent data. As our training data contains timestamps, these are normalised from the 24-hour clock, into a 0-1 value.
The trained model is used to predict when a scheduled bus will arrive at the stop a user intends to get on at, and when the bus will arrive at specified stop along the route, e.g. the University of Bath campus. We use this data to determine which bus will get our user to their destination on time, according to our delay predictions. This is then used to set their wake up alarm, ensuring that our users get as much sleep as possible, and don't wake up too late or unnecessarily early to get to campus (or any other destination)!
The client side
The front end was built as a responsive React application with reusable components and a mobile-first layout. We structured the interface around shared elements like the app shell, navigation, and form components so each page feels consistent while remaining easy to maintain and extend.
Styling was handled with custom CSS to create a clean, branded interface with careful attention to spacing, responsiveness, and usability. The result is a lightweight front end that supports clear user flows for trip planning, alarms, morning routines, and settings.
Accomplishments that we're proud of
A purpose-built sequence-to-sequence LSTM (a type of neural network), using our training dataset, with features of: sequences of scheduled departure times from stops along a bus route, and the traffic information for each bus's upcoming journey and labels of: the actual delay at each of the stops along the route.
What's next for Bussin'
Currently, the only live factors affecting the delay prediction outcome for the model are traffic information and the time. While this means the model may generalise well to the time of day - successfully capturing the influx of passengers for the 9am lecture rush, it has no information on the difference in bus delays on a Monday mornings, to a Sunday morning. Adding features for days of the week, flags for university holidays, national holidays and exam seasons may significantly improve our ability to forecast bus delays, and get our users where they want to go, exactly when they'd like to arrive.

Log in or sign up for Devpost to join the conversation.