I was watching Kurzgesagt videos on climate change and saw how food ingredients itself are responsible for the Carbon Footprint of the whole dish. So, with the theme of this hack being "Environment", i thought why not deal with this issue and all its subsequent problems?
What it does
My App enables discovering Recipes for a dish along with the Carbon Footprint for it's ingredients along with a health score so that you can see how good its is for your health as well as the Environment's. You can also save the recipes you like for later reference. There is also a Chat forum where Users can interact with each other and organise Food Waste collection days where they can deal with it accordingly. Users can also report Garbage dumps so that the Municipal Authorities can deal with it accordingly. This function is also supported by our google maps plugin. Furthermore, there is a News section that stays updates regrading matters like Climate Change, Pollution, Global Warming, etc.
How we built it
I used Flutter to make the app and Firebase for authentication. I used Cloud Firestore for saving the recipes for the user as well as for the chat forum. I used the Geolocator plugin in the "report garbage" function. I used FoodCentral as well as the Recipe API to fetch Food data and parsed the response through our local Carbon Footprint dataset to get the necessary values. I used the NewsAPI for... you guessed it... News. We used Google Cloud's Map API for the google maps function.
Challenges we ran into
Making the response classes in Dart for API response was difficult as some fields had null values for some keys. Due to time shortage, i wasn't able to implement one-to-one chat and Group chat feature in the chat forum. Completing my Vision for this project was also tough since this was my first solo hackathon and time, as always, was an issue.
Accomplishments that we're proud of
I am proud to see what i have accomplished even if it wasn't everything i wanted to do. Since i wanted to preserve the "state" of all the screens in the navigation bar i used a memory-taxing approach which caused a steep drop in fps, which i was able to rectify by doing some optimisation and fixing a couple memory leaks. This was also the first time i used explicit State Management tools like GetX and they helped a lot. Again, First time using Maps in Flutter and i am very happy with how it all turned out.
What we learned
- Explicit State Management (GetX)
- Making complex response classes keeping in mind Null safety in Flutter.
- Optimising Application for more fps.
What's next for Code:Veggie
- Implementing group-chat and one-to-one chat in the forum.
- Making Carbon Footprint data more specific and understandable to the User.
- Enhancing the UI to be more relevant to the "Green" theme.