It’s confirmed, climate change is here. After the most recent IPCC report on climate change was released, it’s been difficult to feel hopeful. Thankfully though… we’re programmers, so when faced with a problem, we develop our way out of it.

Climate change is such a large and widespread issue that we knew we needed to find a small subsection to tackle. We wanted to tackle unsustainable food consumption behaviors because it is a sector where we, as consumers, can make a large impact.

The thought of unhealthy food consumption behaviours often triggers thoughts about food waste. However, ideas such as a food expiry warning system and a guilt-inducing (or pride swelling, for the green user) food waste calendar seemed too tedious for the end user to maintain, both in practice and in the imagination of those considering the service.

What goes out must have somehow come in. We then broached a different perspective on the issue: the consequences of one's food choices. One variation of our final idea was to determine the carbon footprint of a cooked dinner plate. Yet, one ingredient that may seem indistinguishable from another, such as sauce-covered lamb to sauce-covered chicken, could release several times more emissions than the other – our eventual research proves this, as lamb releases ~4x more emissions than chicken.

After much brainstorming, the ubiquity of receipts struck us; everyone needs to nourish themselves with the rich vitamins of grocery store sustenance. The papers that leave behind a footprint of our transactions and decisions at the grocery, we decided, are telling clues of the carbon legacy that we impart on this Earth. As it turns out, the magnitude of this legacy is far greater than meets the eye.

What it does

By providing insights into the choices of consumers, we raise awareness of the impact of one's food choices on the environment by revealing the carbon footprint left behind by a single trip to the grocery store. Users can upload photos of their grocery receipts onto our platform, which are parsed by a computer vision system and processed by backend logic. Based on these calculations, our application provides insights and statistics on the users' choices, such as:

  • The total carbon footprint produced from their single trip to the grocery
  • The individual carbon footprints of each of their groceries
  • Types of emissions caused by their choices
  • The source / origin of their groceries

In addition our other features were centered around our 2 main themes: Community, and Support.

  • We operate in communities. People become motivated when there are others around them accomplishing the same goals. Our application motivates users to choose produce with less carbon emissions via a leaderboard feature, where the carbon footprints of their most recent receipts are ranked against those of their friends. Users can also share their carbon footprints through social sharing on their social platforms allowing for more organic Word of Mouth promotions.

  • At the end of the day, the goal is to move people into adopting better food usage habits. Our application also provides actionable feedback on how users can improve their grocery shopping behaviours and choices. This would be paired with an effective reminder and rewards system that is still under development.

How we built it

We created the web app using the Django web framework, allowing us to write the application using Python, HTML, CSS, and JavaScript. The application is hosted on an E2 Ubuntu Compute Instance from Google Cloud Compute Engine, and is run using Gunicorn and interfaces to the web using the Nginx web server. The receipt parsing in our app uses Google Cloud’s Vision AI API, granting us access to their optical character recognition technology. This logic, along with the receipt's carbon footprint calculations, was written in Python. We also used Figma to prototype the project, a domain from, Google Charts to visualize some of the carbon footprint statistics, and Google Cloud DNS for our nameserver management. Locally, we used virtual environments to containerize the packages and modules used for this project on our computers.

Challenges we ran into

We overcame many challenges during the development of our application. The receipt parser involved using computer vision which none of us have worked with before. We ran into some problems with the storage of images passed between forms, the parser, and database that took a few attempts and lots of reading documentation to resolve. Finally, deployment of our application was not as smooth as anticipated and we had to switch from uWSGI to Gunicorn after a few failed attempts at getting the server running.

Accomplishments that we're proud of

We're proud of creating a clean and simple user experience that looks nice on mobile and desktop. We are also proud of managing to create a working product in 36 hours complete with a functional receipt parser.

What we learned

During the development of this project, we learned many new skills like using Google Cloud Compute Engine, Vision AI API, and Django deployment. We also improved our existing skills like learning the specifics of Django’s forms and ImageFields, styling upload input elements with CSS and JavaScript, and prototyping with Figma. While researching for our application's data, we learned about the varying methods of food transportation, processing, and sources which all have different impacts on our environment.

What's next for FoodPrints

Ultimately, environmental sustainability is about protecting the Earth by changing our behaviours to ensure a healthy Earth of the present and of the future. We would like to promote this change by offering suggestions on cleaner alternate sources, increased data on more food types such as processed foods, and spreading awareness about non-emission impacts like land use, water pollution, and water use. In addition we would like to further develop custom resources that users can use to develop more sustainable habits. These updates include provide rewards systems to keep users engaged.

Sources and References


Data Sources


Check out these example receipts!

+ 1 more
Share this project: