Inspiration
Pop-up gatherings and events are popular among communities everywhere. Whether it’s a farmers market, school fair, or pop-up art gallery, organizers, vendors, and visitors come together to share interests unique to their community. Booth is an app that aims to bring new life to pop-up culture and help promote local events. Our focus is on supporting communities, bridging the gap between people and events that interest them, as well as giving organizers the opportunity to share their diverse interests and passions. Whether it’s a farmers market, school fair, or a pop-up art gallery, there’s a way that Booth can make unique events more accessible to the public.
What it does
Booth promotes and facilitates interactions within communities by providing them with an easy way to inform neighbors about upcoming events and simplify the lives of organizers through easy to use outreach tools. At each event, there are multiple booths that have the option to sell items as vendors or simply share information about their affiliated group.
How we built it
We began the ideation process by creating a couple rough sketches (mocks) of the app. This included designing the front page where different events would be displayed and the event page (displaying info about the event and featured vendors). From there we designed our non-relational database schema and began determining which technologies/services to use for the coding portion. We decided to go with Google Cloud’s Firestore in order to quickly get a backend functioning, and the Google Cloud Platform also made it easy to get set up with user registration and authentication quickly. For the frontend, we decided to go with React Native with Expo as our package manager as it allowed us to build out a user interface for iOS, Android, and web within the restricted timespan of a hackathon.
Challenges we ran into
Nile: Building a cross-platform application with backend was a bit of an undertaking. Using Expo alongside React Native and Firebase had various development limitations that I wasn’t familiar with before. However, working through these challenges were worth it in order to create as accessible of a product as possible.
Adithi: Initially we disagreed on the exact attributes for storing data about the events and booths. In particular, we questioned using a relational versus non-relational database. Ultimately, due to the unstructured nature of the data, we chose the non-relational approach. Moving forward, our database choice will enable us to focus on scalability.
Pulkit: Despite previously using Google’s Cloud Firestore previously, I definitely felt a bit overwhelmed. For one, I’m not too experienced with web development, so migrating my knowledge from IOS and Android development to now React Native alongside Expo was certainly a challenge.
Nikola: Even with solid dev tools in Expo and React Native writing UI code that will look good and behave well on both mobile and web was a really interesting (but often frustrating) challenge.
Accomplishments that we're proud of
It’s live. Check it out here or via the link at the bottom of the page!
Nile: Our team was efficient in our workflow, building both the frontend and backend completely from scratch—no templates were used! I was also very happy with the direction our idea took, growing into a product I could actually get behind.
Pulkit: I’m really proud of everyone's dedication to the project. Even at 5 AM, after almost 17 hours of debugging and fixing components, everyone was still powering through. Even though there were times where we had to adjust our expectations, everyone gave it their best shot.
NIkola: I’m proud of how we were able to split off into our own tasks and work concurrently, while still being able to check in and help each other out when we got stuck and needed a fresh set of eyes.
What we learned
Nile: I expanded my full-stack development skills, learning Firebase and React Native for this project.
Adithi: Having never designed an app from beginning to end, I encountered various system design questions for the first time. Through this experience, I learned how to prototype data models, create product designs, and consider future implications for the app related to scalability. I also learned the basics of Figma!
Pulkit: This project reopened my eyes to how much I need to learn about multi-threaded processes, and how challenging it can be while writing a program if you aren’t well-versed in the subject. Working through all of our bugs in this project has definitely made me want to look more into the React framework and different databases.
NIkola: I learned a lot about the workflow of React Native, and I also think I gained some insight into the challenges that go into planning a multiplatform app.
What's next for Booth
The beauty of this project is how it can grow, just like a community can grow. We initially came up with the idea for Booth when thinking about promoting the University District Farmers Market on a social platform. But then we thought, “why stop there? Let’s make it useful for other local happenings!” Immediate actionable features include implementing an organizer-side interface capable of creating events and promoting products. Additionally, we can see this product implemented with social features, geolocation, and more.
Log in or sign up for Devpost to join the conversation.