Inspiration
My little brother is in high school, and complained once about how his bus dropped off students along his route in a manner that seemed inefficient. It got me thinking about how schools plan their bus routes and allocate students to buses, especially with how the student body changes very often.
What it does
SchoolBusRoutePlanner takes in a list of all school students and their respective addresses, as well as the school's location, how many buses they have available, and what capacity the buses can hold. It uses that information to then generate a set of optimal routes for each bus to minimise travel costs and time.
How we built it
We used StreamLit to create a lightweight and quick prototype as a demonstration of the concept. We used a geocoder API to translate addresses to coordinates, and then GraphHopper to optimise the routes based on information we collect from the user about the school's address and bus logistics.
Challenges we ran into
Many of the APIs we tried to use for optimisation did not suit our use case or did not work. For example, we thought of using K means clustering to group students by location, but the algorithm does not allow for a maximum cluster size, which is necessary due to bus capacity.
Accomplishments that we're proud of
We are solving a real problem that costs schools around the USA and the world a significant amount of money.
What we learned
We learned about different optimisation algorithms like the Hungarian algorithm.
What's next for SchoolBusRoutePlanner
Market validation.
Built With
- graphhopper
- python
- streamlit
Log in or sign up for Devpost to join the conversation.