The average number of people in a car is 2. The average number of seats in a car is 5. People willing to get a lift struggle to find drivers willing to take them. Lonely drivers who want to share their ride struggle to find hitchhikers on the side of the road. For such spontaneous everyday rides, people don't want to spend a lot of time on an app to describe their trip, which is why other carpooling applications, such as BlaBlaCar, are impractical. This is why we wanted to create an app to allow drivers to find hitchhikers with minimal effort.
What it does
Drivers specify their trips, from point A to point B. Pedestrians specify their trips, from bus stop C to bus stop D. The pedestrians are limited to bus stops, because these are good for pick-up/drop-off, and are clear points in the city. If a the journey of a driver and a pedestrian match, the pedestrian and then the driver are offered to accept or deny this match. If both accept, the goal is done and the driver knows where the hitchhiker is waiting. A pedestrian's and a driver's journeys match if the bus stops of the pedestrian are along the route of the driver, which means the driver never has to do unwanted detours. The driver can specify how big of a detour it is willing to do. This allows for flexible drivers who really want to share their journey to do so, and for drivers in a hurry who still want to help other commuters to pick up who are exactly on their way.
How I built it
The back-end runs on a Flask server coded in python, which handles the registration of the users, the saving of trips, and the matching between drivers and passengers. All the data is stored on a MongoDB dataset. The frontend is an Android application.
Challenges I ran into
The front-end is a tedious part to implement, and takes a lot of time. The communication between the server and the application is a part which is usually not clearly specified, and this leads to misunderstandings about what is actually sent in the requests.
Accomplishments that I'm proud of
This app is something that we would actually really like to use in our everyday lives. Even if it is technologically and algorithmically not cutting-edge, the idea itself is what makes this product great. The social impact it would have, if widely used, is making lonely drivers happier, helping daily commuters as well as any other hitchhiker. This could encourage people not to use cars, if they realize people who live close-by do the same journey everyday and make connections along their carpooling journeys.
What I learned
The requests between the server and the app must be clearly specified at the beginning. The brainstorming part must be very efficient and precise, and the parameters of the interface must not be overlooked. This is hard, as the specifications and features change as we implement. This is why the process must be highly iterative, and the specifications must always be re-specified when going from one version to another. This is however hard in 24 hours, but is great challenge !
What's next for BusPlusPlus
This is a concept that already exists, however it is usually based on a "ride share agreement for later". The future for BusPlusPlus would ideally to go on the market and allow people to connect. Some features that will be implemented are:
- Tracking the driver to allow the user to see where they are (Uber style)
- Allowing drivers to take more than one passenger.
- Potentially handle trips with multiple drivers, i.e. a passenger first rides with one driver, then a second one, and so on until its destination.