This project is a carbon-tracking Android app that helps users monitor daily carbon emissions from activities like commuting, energy use, and shopping. It provides real-time carbon footprint calculations, visual dashboards, and comparisons to regional averages, encouraging users to take simple steps to reduce their carbon footprint.
- Description
- Project Overview
- Assumptions
- Installation
- Dependencies
- Folder Structure
- Future Roadmap
- Technologies Used
- Contributing
- Acknowledgments
Planetze is a sustainability platform designed to empower individuals and employees to track, reduce, and offset their carbon footprint. With the rising importance of climate action, Planetze provides users with personalized insights into their environmental impact and offers real-time data on their daily carbon emissions. Users can adopt eco-friendly habits, and contribute to certified carbon offset projects, making climate action accessible and achievable for everyone.
Eco Tracker: Tracks users' carbon emissions based on their daily activities.
Eco Gauge: A visual representation of progress toward carbon reduction goals, motivating users wit clear, tangible results.
Eco Balance: Provides the users with the ability to offset their carbon emissions.
The following assumptions are made for using and building Planetze:
- Annual Carbon Footprint Calculation:
- For questions 14 and 16, selecting the option "other" is calculated the same as selecting "electricity".
- Daily Activity CO2e Emissions Calculation:
- For take public transportation activities, the daily CO2e emissions is calculated as 1.3 kg per hour, response from ChatGPT.
- For cycling or walking activities, the daily CO2e emissions is 0kg.
- For drive personal vehicle activities, the daily CO2e emissions is calculated based on Annual Carbon Footprint constants.
- For flight activities, the daily CO2e emissions is calculated the same as public transportation.
- For activities in the Food Category, the daily CO2e emissions per serving is calculated based on Annual Carbon Footprint constants.
(i.e.CO2e Emissions Daily (kg) = CO2e Emissions Annually (kg) / 365) - For the buy clothes activities, the daily CO2e emissions is calculated as 6.75 kg per cloth, searched on Google.
- For the buy electronics activities, the daily CO2e emissions is calculated as 300 kg per device based on Annual Carbon Footprint constants.
- For the other purchase activities, the daily CO2e emissions is calculated as 20 kg per item, response from ChatGPT.
- For the energy bill activities, the monthly CO2e emissions is calculated as 0.8 kg per CAD.
(i.e.Total Daily Emissions = Kilowatthour of electricity per CAD * Average emissions factor, whereKilowatthour of electricity per CAD = 6.67 kWh/CADandAverage emissions factor = 120 g CO2/kWh)
- Android Studio to build the app from source.
- (Optional) Android device running Android 5.0 (Lollipop) or higher.
- Clone the repository:
git clone https://github.com/danielstevanus88/Planetze
- Open the project in Android Studio.
- Sync the Gradle files and ensure all dependencies are resolved.
- Connect your Android device or set up an emulator.
- Build and run the app by clicking the Run button.
- Log in with your credentials or create a new account.
- To quickly explore the app’s features, you can use the following demo account:
- Email:
alatgt88@gmail.com - Password:
abcdef
- Email:
- Explore the app and its features!
This project relies on the following dependencies:
- AndroidX AppCompat: Provides backward-compatible versions of Android components.
- Material Components: Implements Material Design guidelines.
- ConstraintLayout: A powerful layout manager for creating flexible and efficient UI.
- Lifecycle LiveData and ViewModel: Manages UI-related data lifecycle-aware.
- Navigation Components: Simplifies navigation within the app.
- Firebase Analytics: Tracks user engagement and events.
- Firebase Authentication: Handles user sign-in and authentication.
- Firebase Realtime Database: Provides real-time data synchronization.
- Firebase Crashlytics: Tracks app crashes and provides detailed insights.
- Glide: Efficient image loading and caching.
- MPAndroidChart: For creating interactive and customizable charts.
- Material Calendar View: Provides a customizable Material Design calendar widget.
- Mockito: Used for unit testing.
- JUnit: Standard testing framework for Java.
- Espresso: UI testing for Android apps.
- Legacy Support v4: For maintaining compatibility with older Android versions.
- RecyclerView: A flexible view for rendering lists.
- Google Play Services Wallet: For handling Google Wallet services.
Dependencies are managed through Gradle. To review the full list of dependencies and their versions, see the build.gradle.kts file.
Planetze/
├── README.md # Project documentation
├── app/ # Main Android app module
│ ├── build.gradle.kts # App-level Gradle build script
│ ├── google-services.json # Firebase configuration file
│ ├── proguard-rules.pro # ProGuard rules for release builds
│ └── src/ # Source code directory
│ ├── androidTest/ # Instrumentation tests
│ ├── main/ # Main application code
│ │ ├── AndroidManifest.xml # App’s manifest file
│ │ ├── assets/ # Asset files (csv file)
│ │ ├── ic_launcher-playstore.png # Play Store app icon
│ │ ├── java/ # Java source code
│ │ ├── planetze_logo-playstore.png # Additional app graphics
│ │ └── res/ # Resources (layouts, drawables, strings, etc.)
│ └── test/ # Unit test code (test for login)
├── build.gradle.kts # Project-level Gradle build script
├── docs/ # Documentation assets (pull request template, app screenshot)
├── gradle/ # Gradle wrapper and dependency configurations
│ ├── libs.versions.toml # Dependency version catalog
│ └── wrapper/ # Gradle wrapper files
├── gradle.properties # Gradle build properties
├── gradlew # Gradle wrapper script (Unix)
├── gradlew.bat # Gradle wrapper script (Windows)
├── local.properties # Local environment configuration
└── settings.gradle.kts # Settings file for Gradle
app/: Contains the Android application code and configurations.src/main/: Main source code for the app, including resources and the manifest.src/androidTest/: Instrumented tests for UI testing.src/test/: Unit tests folder containing the test for login.
docs/: Documentation assets like images and templates.gradle/: Gradle wrapper files and dependency version management.build.gradle.kts: Kotlin-based Gradle build configuration for the project.README.md: Main project documentation.
Here are some planned features and improvements for upcoming releases of Planetze:
- Eco Hub: A resource center with educational content, and sustainability tips to help users stay informed and engaged.
- Eco Agent: It's an easy-to-navigate chat interface where the user can interact with the AI conversationally.
If you’d like to suggest a new feature or contribute to an existing one, feel free to open an issue or submit a pull request!
- Java: For Android app development.
- Firebase: For authentication and data storage.
We welcome contributions!
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name. Please follow the branch naming standard. - Commit your changes:
git commit -m 'Add a new feature'. Please follow the convention. - Push to the branch:
git push origin feature-name. - Submit a pull request.
For major changes, please open an issue first to discuss what you'd like to change.
- This is a grouped project for CSCB07H3.
- GitHub Repository: Planetze on GitHub
- Jira Board: Planetze on Jira
- Contributors: @Daniel Stevanus, @Muxun Zhang, @Tommy Wang, @Helena Zhao, @Rizky Rajendra Ananta Dewa.