Track: Energy and Environment - 2nd Place
Our project was inspired by the alarming statistics regarding how much pollution is created by the tech industry - from not only manufacturing, but from power supply and server upkeep as well. To help address this issue, we want to pinpoint both the developer community and the Internet community more broadly to help inform others on how to be more environmentally conscious when they use their computers.
What it does
EcoConscious Tech has three main components: the Carbon Emissions Monitor VSCode extension, the Green Web Google Chrome Extension, and the EcoConscious Tech Web App.
The Carbon Emissions Monitor VSCode extension helps developers become aware of the carbon they emit while running code, encouraging them to write code with less run-time that is better for the planet. The Carbon Emissions Monitor utilizes a laptop's battery capacity and current charge to calculate watt-hours, then converting watt-hours into carbon emissions by finding the user's location with their IP address and using the appropriate conversion rate.
The Green Web Google Chrome Extension guides users to be more eco-friendly by notifying them when a website they visit is run on renewable energy or not. The Green Web Extension works by calling the Green Web Foundation API every time a new website tab is clicked on by the user; this extension will light up with a green icon if the website being visited runs on renewable energy, purple if it doesn't, and gray if data isn't available for that website. The extension also tracks how long you spend on Google Chrome, then converting this into carbon emissions.
Finally, the EcoConscious Tech Web App centralizes all of these features, allowing a user to see their own environmental impact on the planet. The EcoConscious Tech Web App first features information about the tech industry's mass production of carbon emissions, and how we as developers and regular internet-users do not realize the carbon emissions we add to the world. The EcoConscious Tech Web App calculates the carbon emissions all of the hackers at HackDuke have produced this weekend, suggesting actions to take to help lessen our negative impacts. Finally, EcoConscious Tech is an interactive web app that allows users to sign-in through Google Authentication to see visualized statistics about their impact. Users can see the percent of green websites they visit, the number of green websites they've visited over time, and more.
How we built it
Challenges we ran into
Our biggest challenge was accurately calculating the CO2 emissions produced, as we could only get estimations. They are approximated based off of the current capacity of the battery, since there were barriers to us accessing CPU, GPU and DRAM. Therefore, if the battery is at 100% the calculations cannot be accurately computed. We want to continue working to create a better, more efficient and more accurate way to calculate power expenditure.
Accomplishments that we're proud of
We have never built extensions before, so we got to learn the ins and outs of VSCode and Chrome extensions. Particularly with VSCode, we had never used Typescript before, which was exciting to learn. Our designs for the landing page were ambitious and creative, and we were proud to come up with unique ways to accomplish these designs.
What we learned
We learned that coding and internet usage have an insanely large impact on carbon emissions around the world. Normally, we as a team thought of carbon emissions coming from select specific sources discussed in the media often; however, we never knew that something as common as the Internet could have such a large effect on the CO2 emissions we produce and our environment. On the technology side of things, we learned a great deal about VSCode extension and Google Chrome extension creation, as it was our first time making either kind of extension.
What's next for EcoConscious Tech
We hope to keep improving our algorithm so that our VSCode tool can best estimate carbon emissions. We also hope expand our Chrome extension in order to implement this same functionality there.