Inspiration
What inspired me to build EmissionMission is seeing the constant greenhouse gas emissions that are being released into the environment nationwide. Even today in 2025, global warming and clean air continues to be a massive problem, as people are releasing harmful CO2 into the atmosphere without even knowing it - overusing utilities, neglecting sustainable practices, and insufficient environmental fulfillment in general. This app was inspired by a need to take initiative by becoming more sustainable as a community.
What it does
EmissionMission is a web app that allows users to get a far more byzantine and intricate understanding of Carbon Dioxide emissions and the real causes, data, and implications behind emissions. It contains 5 pages which each provides users with actual conclusions and statistics through hands on interaction with the app. Specifically, it allows users to go more in depth in a certain niche about the environment, as it represents real data about emissions and how they vary nationwide, how users can change the way they operate their utilities everyday, and provides personalized AI feedback of what they can do better to fix these habits, and how they compare to the people around them.
How I built it
- I intialized Streamlit in a python oriented environment to create a web app with a page layout which basically had multi page navigation, with 5 different pages/options on the sidebar for a smooth experience.
- I used arithmetic and predefined emission factors to calculate the estimated Carbon Dioxide emissions per each respective utility (electricity, gas, water, and the internet). These calculations were stored in a data list to maintain the variability across the entire app and into different pages.
- I used the pandas library to store and structure our data using bar graphs accessed through Streamlit. Also, I included a custom feedback function to spit out new ways users can reduce their overall emissions.
- I integrated a lightweight NLP model by using Hugging Face's transformers library (GPT - 2) to add a more personalized element to the app without carrying a major load on the backend. This chatbot gives personal feedback on how to improve your emissions and just generally everything emissions related.
- I created a page where the users could compare their emissions with the state and national averages, which were stored in dictionaries. To further visualize this, another page included a energy saving calculator, which allowed users to input all of their utilities and their desired percentage decrease, and the calculator outputted the cost saved and the amount of emissions saved as a result.
- Finally, I included a geospatial visualization map using PyDeck to label each state in the US and their average emissions per state. This required the inputting of coordinates and using PyDeck to represent data visually on the map.
Conflicts I ran into
- There was a problem with getting the API key of the chatbot; many times we tried to integrate the API into my code and deploy it into app, the URL kept getting lost because It would end up being the URL to the wrong version of GPT. This led to many errorss
- At the end of my code, I had many difficulties in regards to indentation, as I normally write my code pretty sloppy and unorganized, but usually it works out fine since the program is able to read it. But with Streamlit, it had to be precise and spaced evenly so I did run into some issues there.
Accomplishments that I'm proud of
I'm extremely proud that I was able to build such a unique app which has multiple elements to it in regards to the backend development. I am also proud that I was able to spend the amount of time ad go through the amount of struggles I did, and it was all good in the end because I would say it's definitely worth it with how my app looks and is functioning.
What I learned
I learned that it is important to persevere ad stick through, even when you feel like your code will be messed regardless of what you do and that there is no solution. But I learned that it is important to be determined and find a solution, no if ands or buts about it. I learned that it is okay to get knocked down, but what's most important is that you get back up in the end. I was able to do that as I went through so many errors but because of my determination I was able to test out different possible outcomes and use my intellect to solve my issues and put them aside to achieve the primary goal: build EmissionMission to its fullest capability.
# What's next for EmissionMission
In regards to what more I could additionally integrate into EmissionMission from a development standpoint, I could:
- Use real utility company API's like OpenAQ to auto fetch user energy usage
- Develop a Vision AI to let users upload images of their appliances/receipts
- Can connect with IoT and smart home APIs to pull energy consumption data automatically
Log in or sign up for Devpost to join the conversation.