Welcome to the Carbon Footprint Assistant and Tracker, a very powerful and versatile tool that is designed to help users track and manage their carbon emissions. In line with the Sustainable Development Goals, this application goes beyond simple calculations and tracking by offering personalized recommendations, secure data storage, historical insights, detailed reports, and many more! This project uses the general equation for emission calculation.
- Internet Identity for secure login on the ICP
- Calculate emissions for various activities.
- Provide report with personalized recommendations to users.
- Securely store user data.
- Retrieve historical emissions data.
- Generate comprehensive reports.
- Compare user emissions with benchmark data
- Generate User Settings
Follow these instructions from the Azle Book to install all the required tools and set up your environment. You can skip this step if you have already installed the required tools. After you have installed the required tools, you can move on to the next step.
- Clone the repository:
https://github.com/Nimakra/CarbonFootprintAssistant.git cd CarbonFootprintAssistant - Install dependencies:
npm install
- Start the local replica:
dfx start --clean --background
- Deploy the canister locally:
dfx deploy
Registers each user
Adds the activity that generates emissions
Calculates the emissions for a specific activity and stores the record securely.
Retrieves the total emissions for a user.
Compares user emissions with benchmark data.
Gets personalized recommendations based on the user's emission activity.
Generates a very comprehensive report for a user that includes the total emissions and personalized recommendations.
Retrieves the emission records for a user based on the activity types of that user.
Note: To calculate the emissions, use the principal ID generated when you registered the user. This also applies to all the other functions that require ther user ID.
- EmissionRecord: A record of emissions for a specific activity.
- UserData: Stores user information.
- UserSettings: Holds user-specific settings.
- ActivityType: Describes different types of activities that contribute to emissions.
- BenchmarkData: Compares user emissions with benchmark data
