Recently, ride sharing apps have begun to gain popularity due to their convenience on the individual level and environmental benefits on a global scale. However, although ride sharing may be practical for long, daily commutes, it is not for everyday errands, such as grocery shopping. Since most people visit grocery stores in their area, residents of a neighborhood often visit the same stores. So why should everyone have to make the same trip over and over again, both an inconvenience and an environmental detriment, when neighbors can strengthen their own community while helping each other by sharing the burden? We created Knock Knock to solve this problem.
What it does
Knock Knock allows a user to create an account, join a community, create personal shopping lists, and view neighborhood shopping lists. The user's personal shopping list is grouped by store and includes the product and the quantity of the product. The community shopping lists complies personal shopping lists, also grouped by store. Users can view the community shopping lists for each store that they have on their own shopping list. If a user plans on visiting any of the stores, he or she can buy everything for the neighborhood at that store, saving everyone the trip, which is convenient for the users and, more importantly, environmentally friendly.
How we built it
Using Swift, we created an iOS app with a friendly and aesthetically pleasing frontend. We stored the user's information (email address, physical address, name, password, etc.) and shopping lists (store, product, quantity, etc.) in a Firebase backend realtime database. Using the iOS app, we were able to communicate back and forth between the backend and frontend.
Challenges we ran into
In the past, we have used a database hosted on Amazon Web Services, using a web server to communicate between the backend and frontend. This time, we decided to challenge ourselves and learn to use Firebase instead. This proved difficult not only because it was a learning experience but also because the database we constructed was complex, with various fields and values that were interconnected.
Accomplishments that we're proud of
First off, we are proud of the fact that we were able to create a functional app from scratch, even though we used Firebase for the first time. Second, compiling personal shopping lists into community shopping lists proved especially challenging, which made it all the more gratifying when we were able to overcome it.
What we learned
We learned to use firebase and craft an intricate net of view controllers.
What's next for Knock Knock
We would implement the Google Maps API to allow users to actually join real neighborhoods. We would also optimize and refine the app to improve the user's experience.