Inspiration
Lead reviewer for the Intergovernmental Panel on Climate Change Durwood Zaelke said, "Cutting methane is the biggest opportunity to slow warming between now and 2040." That's not surprising, since about a third of human-caused methane emissions come from livestock, and more specifically, cows and other farm animals produce about 14% of human-induced climate emissions. What's implied here is that collectively we can make a dent in the fight against climate change if we were more environmentally conscious in deciding what we make to eat.
While moving away from animal-based diets would probably help a lot, it's not feasible for everyone like a growing child in need of protein. So how do we engage people who want to do as much as they can for the environment but can't give up meat, or people who might otherwise not be engaged in the fight against climate change based on logical arguments?
What it does
Introducing Foodprint Fun, where Your every meal counts. Using our app, you can find a holistic view of the environmental impact you're making with every meal. At its core, you can submit a link to recipe you're thinking of making, and we let you know how much greenhouse gas emissions, land use, and water use is for the ingredients you're using to make this recipe. We also allow you to subscribe to daily updates on your phone for delightful green recipes to try out.
How we built it
We used React, Chakra UI, and Typescript for the front end, Formik for forms, Python for backend processing and analysis and to clean up data, and Twilio to tweet our recipes. We used Google Cloud Run to host our FastAPI backend. The data for the food carbon emission, land use, and water use was from a study titled "Reducing food’s environmental impacts through producers and consumers" and from OurWorldInData.org
Challenges we ran into
Finding and cleaning a dataset with a more holistic view of the environmental impact of specific foods was difficult. Thankfully we were able to find a dataset that gauged and mapped not only the amount of greenhouse gas emitted but also water usage, water pollution, and land use to specific foods. We though we could output emojis from a JSON file, even if it were in a string format (because it'd error out when we didn't enclose in string), and we learned that it comes out undefined on the front end, so we pivoted to outputting icons instead.
Tech-wise, it was our first time coding both the front end and back end, due to one teammate going silent and another teammate who unexpectedly fell sick. Benedict had to ramp up very quickly learning JavaScript and how to map JSON data for output in the front end. We attempted to offer two search components on the same page, and the search worked for one component and not another. Because of limited knowledge, time, and access to mentors, we opted to review this again at another time.
Coordinating team and work across different timezones (ET to IST!) and the teammate shuffle were also challenging. We confirmed a teammate who joined our discord server and chatted with us for a while and then went silent. Close to the soft submission deadline on Saturday, we found that said teammate was actually part of another team, so we had an opening for a new teammate joining us from IST. With different skillsets, we wanted to ensure that their different skillset (Java in a React/Python project) and experience could still offer some meaningful contribution to the project (we hope it did!).
Accomplishments that we're proud of
We made a fully functioning app in the span of 24 hours!!!
We also had the opportunity and pleasure to invite a first time hacker to the team at the 11th hour and find meaningful and important tasks to work on for the project that gave a glimpse into how Object Oriented Programming looks like in two different programming languages that they're not familiar with.
What we learned
Two important overarching lessons we learned was on designing a project that could be completed in 24 hours with the tech stack and skillsets we have and adapting the idea as the hackathon went along and new information or challenges arose.
Of course, we learned a whole lot about JavaScript - mapping JSON data to output in React site! Using React for our front end made us think through what components we wanted to reuse and hooks to make code read a lot more cleanly, and we learned to build forms in React via Formik. Additionally, we learned to implement Chakra UI to get us up running more quickly.
We also did a lot of pair programming where we're both working on the code on the same screen (as virtually as we can anyway).
Additionally, we had a hearty discussion about how to architect, whether inefficiently by going through line by line with a conditional statement for adding a variable to looping through dictionary key value pairs - concepts we could discuss at a level above the programming language and syntax since our tech stack varied.
What's next for Foodprint Fun
We would have loved to have turned it to a game where users can make their queries separately, and once all users (in a socket room) finish entering their recipe url, they can compare who had a more environmentally friendly meal. We'd gamify it a whole lot more had we had more time.
Team Name
Foodprint Fun
Universities Represented
- Wei Chun - Monash University
- Ankit Kiran - National Institute of Technology Rourkela
- Benedict Neo - Iowa State University
- Anita Yip - Western Governors University
Built With
- chakra-ui
- formik
- google-cloud
- python
- react
- twilio
- typescript
Log in or sign up for Devpost to join the conversation.