Pool was inspired by similar ride sharing apps like Uber and Lyft which depend on users to be the primary product. As a college student who goes to school in a big city, I'm often brutally victimized by Uber prices and I've always been aware that carpooling is cheaper, more sustainable alternative. However, it's pretty hard to find people to carpool with and there's also sort of a stigma that carpooling is only for kids, when in truth it can be for anyone who cares about saving money and the environment.
What it does
Pool operates on a simple level but I focused on strong execution and user experience.
- On the landing page, users can view "Pools" in a sidebar which displays all of the essential information such as where, when, and how.
- Users can elect to filter these Pools from a variety of options, as displayed in the video.
- Users can create a pool by filling out a simple form and their post is then broadcast to nearby "Poolers"
- Users can join a Pool by filling out a simple form, sending an SMS message to the Pool creator. From that point forwards, the rest is left to the Pool seeker and creator!
How we built it
For the frontend, I used NextJS, ReactJS, Recoil, and Chakra UI. I also integrated the Google Maps API as a major component on the landing page. I also use the Twilio API on the backend for SMS messaging.
Challenges we ran into
I had a lot of issues on the frontend working with the Google Maps API. It was definitely a steep learning curve learning how to integrate it into React and I had to come up with a lot of strange workarounds with global state management in order to get the solution I wanted. As I result, I wasn't able to fully flesh out the search and filtering features as thoroughly as I wanted to. I also had some issues with the Twilio API on the backend that wasn't letting me deploy the feature on vercel.
As a result, the version deployed at https://pool-beta.vercel.app/ is missing a number of features that I implemented locally, which is disappointing.
Accomplishments that we're proud of
I'm proud that I was able to put my head down and produce this (semi) functioning website for my first ever hackathon. It took a lot of perseverance because I had no one else to cheer me on except for myself!
What we learned
I definitely got a lot better at figuring out how to piece together solutions on the frontend when dealing with really complex state. In the future, I should probably have a more defined plan for what I want my component tree to look like so that I have an easier time implementing everything. I also learned that I must ALWAYS implement best practices because that can lead to huge issues when it comes to deployment, which eventually resulted in the deployed version being lackluster compared to the local version.
What's next for Pool
I detail this in the video, but there's definitely a lot of work that can be done on Pool in the future!
- Refactor the code! As is, everything is sort of hanging together by a thread.
- Implement a chat feature inside the app.
- Let viewers see the Pools they have joined and/or created.
- Make the map component much more robust and interactive. I'm not in love with how the routes look right now.
- Add more advanced filtering options perhaps a less naive way to recommend Pools to users.