Supermarkets in the United States throw away 43 billion pounds of food every year; the negative side effects of this are myriad: excess carbon emissions, biodiversity loss due to unnecessary land conversion for agriculture, loss of revenue for business, and subsequent price increases for consumers. With over 36 million food insecure people living and working in the country, this much food waste is unconscionable. Much of the buzz around "smart cities" and solutions is currently focused on public works and open data, but private companies will also need to innovate to increase the productivity and quality of life for the people of our future cities.

What it does

Buyble is a records management and prediction tool for grocery and convenience store owners who want to take control of their inventory and intelligently plan their future stock based on historical data. Store owners can store all sales records, including pricing details, weather patterns, and the retail season. These records are then algorithmically analyzed and compared with statistically similar retailers to recommend future inventory orders based on spikes and trends in historical demand. This allows the owner to more informedly plan purchasing and minimize product overbuying.

How we built it

After choosing the Smart City theme and narrowing in on our grocery store analysis plan, we went back to the whiteboard and dry-erase markers to make a plan. We chose a web application as the best vehicle for the product, and then we created our stack based on the team's individual strengths. The people who were interested in working on the front end (i.e., the client side) knew they would be using JavaScript, and so they chose React as the best framework to get that done. Python was picked as the language for the server side, and the best way to create this was using Flask. Due to its simplicity and ease of use, MongoDB was the obvious choice for a database management system. Of course, the lowly Git was chosen for collaboration and submission due to its excellence in version control.

Challenges we ran into

React is a very complicated framework to use and is difficult to learn in a time-sensitive situation. In retrospect, choosing it was not the most efficient way to run the project. Additionally, simply getting our server connected with JavaScript proved to be remarkably time consuming. Because of these and a more general unfamiliarity with the stack, we weren't able to accomplish all of our goals (specifically the forecasting aspect of the project), but even so we learned about how important it is to prepare and study before embarking on a deadlined project.

Accomplishments that we're proud of

After significant debugging, we can now pass information from the web app all the way to the database and back again. Additionally, we have a React pie chart that can receive and display live updates based on inputted records into the database. And we're especially proud of ourselves for learning a whole new tech stack and working hard together as a team.

What we learned

No one in the group was experienced with all of the technologies that we used in our stack, and some members were familiar with none of them. Because of this, everyone had an excellent opportunity to learn an entirely new language, and we all learned how to stitch together these frameworks together into a full stack to create our app.

What's next for Buyble

The underlying idea behind Buyble is important and will likely be implemented commercially in the years to come. Whether or not we are involved in that is uncertain, but we definitely will have this experience of teamwork to look back on.

Share this project: