We were inspired by the WWF footprint calculator, wherein the user has to answer a series of questions for the app to estimate the carbon footprint of the user. The problem with the WWF app is that it is a one time calculator that does not present users a meaningful solution. It is important for the user to be aware of the environmental consequences of their actions and at the same time be incentivised to reduce their carbon footprint. Keeping this in mind, our original motivation was to have an interface that not only informs consumers about their daily carbon footprint but also incentivises them to reduce it through the accumulation of reward points. While we did not have enough time to build a reward system, we have made some progress in other areas.

What it does

Simply connect Google Calendar with the app. The app reads daily routine data (which includes location) and extracts a list of places the user will be in on any particular day. For this list, it displays a path from each place to the next. Based on user inputs of transport type (driving, cycling, walking, or transit), it calculates an overall carbon footprint for that day. It also displays an efficiency metric for each of the transport mode types, thereby optimising the transport mode that would not only ensure that the user reached his / her destination relatively fast, but also in a more sustainable manner.

How I built it

The backend was made using Python to interface with Google Calendar and Google Maps through the Google API Client, while the front-end was made using Node.js, HTML, and a bit of CSS.

Challenges I ran into

1) Reading the JSON output of a multi-itinerary journey. The JSON file was quite long and winded, making it difficult to extract relevant information on travel times, distances, and waypoints 2) Calling python code from javascript script that runs in the browser. This was proving to be difficult within the given time frame. We managed to run the code locally, but could not manage to implement a combined version of our code on the browser. A possible solution I would have liked to implement was to create a back-end API that responds to http requests. This would simplify the cross-language barrier though setting it up was a great challenge that I could not overcome.

Accomplishments that I'm proud of

1) Calling a python script from a javascript function, by implementing an intermediate shell command that runs the python script file from the javascript file. 2) Provision for detecting the carbon emissions due to diverse modes of transport 3) Interfacing with Google Calendar and Maps API

What I learned

1) Learnt to use Google Maps API Client for Python 2) Understood how to extract information from huge json objects better and more efficiently 3) Learnt to use Google Calendar API 4) Understood how to apply javascript in web development, especially as we had very little experience with web development.

What's next for CarboTracker

1) Using a machine learning model based on the phone sensor data to automatically track a user's daily commute and present a dashboard of the information. This concept has been proved in several research papers. 2) Building a reward system wherein reward points are awarded for choosing the most efficient mode of transport between two cities and / or walking wherever possible 3) Building and publishing an app that helps users intuitively track their carbon footprint and make informed decisions about moving into a carbon-neutral future.

Share this project: