๐ BoilerPool
๐ Inspiration
As students without cars on campus, picking up groceries, exploring the city around Purdue, and visiting family can be difficult. To solve this, we created BoilerPool, where formal carpool arrangements can easily be organized by one easy-to-use website.
๐ก What it does
BoilerPool removes the hassle of finding a convenient carpool arrangement.
This website allows students to choose from a list of routes that their fellow students have offered to share their ride for. BoilerPool lets students see the future route, potential detours from the route, the size of the car, negotiable prices, and rules and expectations of the carpool, creating a more enjoyable carpool experience than other commercial ride share services for both driver and passenger.
๐ How we built it
We built it using Next.js as main framework, Firebase Authentication for Microsoft login, and MongoDB (Mongoose) for real-time user and ride management. Google Maps API powers route creation, search, and visualization. Tailwind CSS provides styling, and serverless API routes handle validation, filtering, and data cleanup.
We added custom endpoints to handle ride requests, validate user profiles, filter and clean up routes, and manage accept/decline actions, ensuring smooth communication between the frontend and MongoDB while keeping outdated data automatically removed.
โ ๏ธ Challenges we ran into
We consistently had to remove auth and database data when testing schema updates, and repeatedly used console.log to debug new test data. We also ran into challenges with data synchronization between the frontend and backend, handling duplicate ride requests, and managing authentication checks for profile completeness. Additionally, Next.js API routing quirks (e.g., method handling and dynamic params) and implementing real-time updates for accepting or declining requests required careful debugging and refactoring.
๐ Accomplishments that we're proud of
Weโre proud of how our project evolved from a simple database structureโwith User data (phone number, email, times used, gender, year) and Map routes (locations, car type, time, expectations, cost)โinto a feature-rich carpooling platform. Over time, we kept adding new functionality, such as ride request handling with acceptance/decline logic, profile validation, filtering by gender/year/time/seats, duplicate request prevention, automatic cleanup of expired routes, and real-time updates, transforming our initial schema into a fully interactive and robust system.
Overall, the website works as intended and delivers a smooth carpooling experience. However, thereโs still room for improvements and new features, such as refining the UI for better accessibility, adding notifications or email alerts for ride requests, improving error handling for edge cases, and expanding filtering or scheduling options to make the platform even more versatile and user-friendly.
๐ What we learned
We learned how to integrate Firebase authentication with a MongoDB backend while maintaining data consistency across components. We also gained experience with Next.js API routing, dynamic parameters, and handling method restrictions, as well as debugging issues like hydration errors and duplicate requests. Additionally, we discovered the importance of console logging and iterative testing to validate new database schemas and ensure smooth real-time updates between the frontend and backend.
๐ What's next for BoilerPool
Currently, the main method of communication between driver and passenger is through email and socials that students can put in their profile page. In the future, we hope to add messaging services into our website so that students can arrange carpools and easily communicate with each other all in one place.
Built With
- firebase
- google-maps
- mongodb
- nextjs
- reactbits

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