The Problem
A big aspect of college is joining clubs and exploring new interests. However, going to events off campus is a huge pain point when the majority of students do not have cars on campus. This leaves students with two options: either Uber to the event or ask around for a ride in a club forum/group chat. With bigger clubs, the hassle of organizing events like these gets exponentially harder, while the carbon footprint of the event also grows.
The Solution
Enter Caravan, a cross-platform, hassle-free way to organize carpools. All you need to do to set up an optimized and energy-efficient carpool is to create an event on our IOS app, send a Typeform survey link to the club messaging platform, and tada! Everyone who needs a ride will receive a text message with who’s picking them up as well as where and when to meet while the drivers will receive a text with who they’re picking up and a Google Maps link with directions for the trip with waypoints for each carpool member.
How we built it
Caravan is a mobile app for IOS built with a SwiftUI frontend and Flask backend hosted on Heroku. When you press “Create Event”, a dynamically generated Typeform survey will be generated to send to the event attendees. Since Typeform surveys are web-based, anyone with a phone or computer can register for a Caravan event. When the organizer is ready to generate the carpool routes, the responses from the Typeform are used to split the attendee's optimized carpool groups. Using Twilio, The drivers are sent a text message with details of their carpool and a link to a Google Maps route to get them while the attendees are sent a text with where to meet their driver and when.
## Challenges we ran into A tricky part of this project was dealing with location data between different platforms as well as formats. An example of this is with Typescript addresses. Since Typeform has no address validation, we had to do a lot of processing to ensure that the locations the users entered were properly evaluated.
Another challenging part of this project was using so many API’s at once. Our project used API’s from Google Maps, Twilio, Typeform, and our custom Flask API. This meant we had to ensure that our testing and development worked with each API’s rules and limitations (which was especially hard since free plans, like Twilio, have brutal usage limits).
Accomplishments that we're proud of
We are incredibly proud of creating a working prototype of an app that helps college students participate in clubs and go to events. This is especially impressive to us since we only had just met each other during the hackathon, all live in different states and had. 36 hour time limit!
What we learned
- You need to be careful when converting between different location and time formats
- Environment variables are an easy way to organize and secure API keys
- Don’t add features for the sake of adding features
- Cross-team collaboration is underrated
What's next for Caravan
While our current implementation of Caravan works, there are a lot of improvements we would like to make. First is that we would like to use our own form to get attendee information instead of a Typeform survey. This would allow us to scale up our app quickie without worrying about the costs of Typeform. We would also like to allow events to track statistics on how carpooling impacted the environment, such as total x miles traveled or y gallons of gas saved. This could also include a leaderboard so event organizers can “compete” with each other to reduce their carbon footprint. Lastly, we would like to add more features to the app to bring people closer to their carpools. This could mean using Twilio to create text group chats for each carpool group, using Twilio to send reminders for the attendees to go to their carpools, or partnering with companies/schools to reward users for carpooling.


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