Ayonete Icha
Scalable Cloud Programming, MSc in Cloud Computing
National College of Ireland Dublin, Ireland
**Abstract—**This document details the core functionalities of a scalable cloud-based carbon footprint tracking system. The application employs the use of multiple web-services including AWS SNS, AWS Lambda and others. Built with Python using the Django framework, this application allows users to create personal accounts to document their weekly carbon footprint and receive a carbon emissions score with each submission and tips for how to further reduce their carbon footprint. The version of this application that is currently deployed uses several elements and libraries to for data visualisation. This application achieves scalability by benefiting off of the automatic load balancing and auto scaling provided by Elastic Beanstalk as well as using functions hosted in AWS Lambda
Index Terms—carbon footprint, AWS lambda, serverless, CICD
The United Nations lists taking urgent action to combat climate change the 13th of its 17 sustainable development goals stating that the Earth is ”standing at the brink of climate calamity” [1]. This is no surprise as NASA reports that we are currently experiencing the most rapid rise in the Earth’s temperature in history. This rise in temperature is primarily driven by human and industrial activity. Many of our everyday choices greatly contribute to the amount of carbon emissions released into the atmosphere. On an industrial level, includes the burning of fossil fuels as a source of energy, deforestation and improper disposal of factory waste. On a individual level, this includes our choice of transportation, the food we eat, the electricity consumed in our homes and our recycling habits [2].
This rise in temperature and the increased rate at which it is occurring means The Earth will continue to suffer consequences such as severe weather events, rising sea levels, destruction of wildlife habitats and other effects. Many dismiss these issue, but we are already experiencing the effects of global warming today. There have already been observed changes in animal migration patterns as their habitats have become inhabitable. Also, according to data from NASA’s GRACE and GRACE-FO satellites Antarctica lost 149 billion tons of ice per year between 2002 and 2020 [3]. As a result the UN has called for ”deep, rapid and sustained” GHG (greenhouse gas) emission reductions by 43 percent by 2030 and to zero by 2050.
Many countries and businesses are now bound by regulatory laws that require them to adhere to conduct business in a way that is energy efficient and utilises renewable energy in order to reduce their carbon footprint. Ireland for example has been asked to reduce its ESR emissions by 42 percent by 2030 according to the Environmental Protection Agency [4]. However, the onus is on all citizens of the earth to contribute to slowing down global warming. On an individual level, people can reduce their carbon foot print by recycling at home, conserving energy, using sustainable transportation, reducing meat consumption and plastic use.
To assist with this, I have developed a cloud-based carbon footprint tracker called EcoTrace which provides a platform for individuals to record their activities and monitor how they contribute to their carbon footprint. The application works by receiving user activity input and assigning a score to each activity based on metrics from [4] [5]. My hope for this project is to help individuals take on the personal responsibility of reducing their carbon footprint by making them actively aware of their choices they make that contribute to it. This project is based off an existing concept illustrated by [6] [7] improving on them by enabling users to create personal accounts for tracking their impact over time.
In this report, I detail the functional and non-functional features of this application with emphasis on its scalable architecture and efforts made to ensure continuous integration and delivery of the application.
In our day to day, we carry out activities that lead to carbon emissions (CO2e) even without realising it. Something as simple as the choice of heating we use or the types of meat we consume significantly impact our carbon footprint. The idea behind this project is that it allows the user to input a data into the application on a daily/weekly basis and receive an updated carbon footprint score with each entry. EcoTrace is built using the Django framework and is powered by AWS services. The application acts as a personal diary of sorts and even allows users to set goals for their footprint reduction. The calculator works by assigning an emission factor to common daily activities and providing a total emissions score for each entry. An example of the application logic is an activity like walking having an emission factor of 0.001 per km as compared to driving with 0.0400 per km. When multiplied by the distance travelled by the user, we arrive at the total emissions of that activity. In the following sections, I outline the functional and non-functional aspects of this application. Portions of this application have been designed to rely on scalable services. Scalability in this case refers to the application’s ability to grow and adapt to increased demand without affecting performance [8].
A. Functional Requirements This application is backed by multiple APIs responsible for handling data input and processing. The application has been designed to store values entered into the forms for each user so each user has a persistent record of their activities over time. The application also includes a dashboard that visualises the user’s progress over time. Many factors had to be considered to ensure this application worked seamlessly