As a group of indecisive people, our friends have always found it difficult to plan an outing. What we want to do and where we want to go are both questions that are met with people saying “anywhere” or “I don’t care”. There are many factors we need to consider when picking a spot and the endless choices often end in frustration and disagreements. We would scroll through Google, Google Maps, or Yelp trying to find options that match what we want to do and where we live with no success. We wanted something that could consider these factors for us and thus, Bonfire was created.
What it does
Bonfire is a web app designed to streamline planning your next outing with friends. We automatically gather a list of local destinations according to your desired search parameters including activity type and maximum travel distance. With Bonfire, you can invite friends and figure out where to go easily and quickly through the cards we created for the voting process. We strive to provide our users with both quality and quantity when picking your next outing.
How we built it
The UI was first designed using Figma and then served through a react.js frontend. When a new room is made the settings are sent to a node.js server which creates a unique 4-character code to identify your room. The node server then queries the Google Places API using your location information from the geolocation API, activity options, and maximum distance from the host to generate a list of nearby locations that match your desired filters. Each location is run through Yelp API to fetch ratings and reviews that are available for each user to read while voting. The location data information is stored in a secure cockroach database and is queried and sent to a user whenever they join a room using the 4-character code. The user’s votes are recorded and stored through CockroachDB. Finally, whenever someone visits the results page, voting results are queried from CockroachDB and organized on a podium. Since a database stores the results, this page does not expire.
Challenges we ran into
Picking an idea; getting the front-end and back-end to work together; running out of time.
Accomplishments that we're proud of
Jennifer's proud that she learned how to design the entire UI using Figma. Kevin's proud that he learned how to use "sequel" and that he finally wrote real code during a hackathon. Arthur's proud that he figured out how to interface with Google Places and Yelp and that he speedran editing a video. Lavan's proud that he took a power nap instead of pulling an all-nighter (oh, and he learned how to use hooks and make API calls in React).
What we learned
Even when you think you're almost done, you are not almost done.
What's next for Bonfire
Expanding the reviews and allowing more images to be displayed of each location.