Inspiration
We were inspired by the UN’s 12th Sustainable Development Goal: Sustainable Consumption and Production. With quarantine, more people are cooking from home instead of eating out. This means creating shopping lists more frequently. Making a shopping list requires time to be set aside to take inventory of what we have and figure out what we need. Oftentimes, we end up forgetting to purchase something. With so much chaos going on in our lives, especially recently, we are bound to be forgetful. Wouldn’t it be wonderful to have someone there to remind you what you are forgetting? We thought so, and we realized that we have the ability to make a website capable of fulfilling this wish by analyzing our grocery shopping patterns and generating a shopping list for us.
What it does
Smart Shop is a website that allows users to login to an account and input a list of purchases on any given day. This data is then stored in a database, Firebase Realtime database. A machine learning algorithm then uses this data to generate a shopping list when the user requests one. The user can edit this shopping list, as the purpose of it is to provide guidance on what they might need to buy or remind them of a product they would have forgotten.
How we built it
We took a divide and conquer strategy to develop the web application. Elisa and Samantha worked on the backend while Brian and Kristen worked on the frontend. Samantha set up a Firebase account, designed the Realtime Database, and created the functions needed to interact with it. Elisa designed and perfected the machine learning algorithm using Pytorch that analyzes a user’s data and predicts what their shopping list would be. Brian and Kristen designed the website — both in terms of functionality and aesthetics. Brian and Kristen used JavaScript, HTML, and CSS.
Challenges we ran into
We really challenged ourselves by taking on things we have never worked with before. Elisa learned how to use GitHub, Samantha learned how to work with Firebase, and Brian and Kristen learned how to implement a Flask web-application. A major challenge we faced was integrating the frontend and backend. Unfortunately, we were not able to do so. All of us overcame the challenge of working with something for the first time. A significant problem all of us faced was installing pyrebase, the Python wrapper for Firebase. Each of us received different errors when installing it and had to work through it before we could test our code. This presented a bottleneck situation which delayed our progress, but we succeeded!
Accomplishments that we're proud of
We are very proud of how much we learned and the fact that we developed both the frontend and backend.
What we learned
We learned a tremendous amount by working on this project. We are now comfortable integrating Google Authentication into a web application, bridging the backend to the frontend, designing and working with Firebase Realtime Database, programming with Flask, using GitHub, and so much more!
What's next for Smart Shop
We wish to continue our project in the future. The first thing we are going to do is integrate the frontend with the backend. Additionally, when originally brainstorming ideas for our project, we wanted a user to be able to upload a grocery receipt to the website. This requires using opencv to parse the text from the image, and pressured by the time constraint, we were unable to implement this. We also realized our website is a good way for a user to monitor what they are buying. We wanted an algorithm to monitor this as well, and make suggestions to users about their habits. For example, if the user buys fruits and vegetables, we suggest they compost the remains. Or if the user buys recyclable goods, we remind them to clean them and recycle them instead of throwing them in the trash. These types of suggestions and reminders prompt the user to be environmentally conscious and form sustainable habits. Another example is if the user has been buying a lot of sugary goods, we bring this to their attention and warn them of the health implications of continuing to do so. These warnings would prompt users to make better eating choices and improve their health. We also considered making some sort of point system to award the user for making environmentally friendly and healthy choices. In order to market our product and make a profit, we will consider partnering with suppliers and grocery stores. We wish to implement these features in the future.
Log in or sign up for Devpost to join the conversation.