Skip to content

Latest commit

Β 

History

107 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AOSSIE

Β 

Telegram Badge Β Β  X (formerly Twitter) Badge Β Β  Discord Badge Β Β  Medium Badge Β Β  LinkedIn Badge Β Β  Youtube Badge


CarbonTracker

CarbonTracker is a Flutter-based mobile application that helps users track their fitness activity and understand its environmental impact.

The app follows a local-first and privacy-focused approach, keeping user, fitness, location, and trip data on the user's device whenever possible.

Features

Track fitness and activity data Track trips and transportation modes Calculate carbon emissions and carbon savings View fitness and environmental insights Location-based trip tracking Wear OS support Export trip data as JSON Automatic cleanup of older trip history

πŸ’» Tech Stack

Frontend

  • Flutter / Dart
  • SQLite (sqflite)
  • Riverpod
  • Health Connect / HealthKit
  • Geolocation services
  • Wear OS

βœ… Project Checklist

  • The mobile app (if applicable):
    • has an About page containing the Aossie's logo and pointing to the social media accounts of the Aossie.
    • is available for download as a release in this repo.
    • is available in the relevant app stores.

πŸ”— Repository Links

  1. Main Repository
  2. Report a Bug / Issue Tracker

πŸ—οΈ Architecture Diagram

flowchart TD
    A[Flutter UI] --> B[Riverpod State Management]
    B --> C[Device Integrations]
    B --> D[Local SQLite Database]

    C --> C1[Health Connect / HealthKit]
    C --> C2[Geolocation]

    D --> E[Carbon Calculation Engine]
    E --> A

    D --> F[JSON Export]
Loading

πŸ”„ User Flow

flowchart TD
    A[Open App] --> B{First time?}
    B -->|Yes| C[Onboarding: Name, Weight, Transport Preferences]
    B -->|No| D[Dashboard]
    C --> D

    D --> M[Map Screen]
    M --> E[Start Trip Tracking]
    E --> F[App Records Location and Distance]
    F --> G[Trip Ends]
    G --> H[Carbon Savings Calculated]
    H --> D

    D --> J[Fitness Screen: View Fitness Metrics]

    D --> P[Profile Screen]
    P --> K[Export Trip History as JSON]
    P --> L[Clear Stored Data]
Loading

Key User Journeys

  1. Onboarding

    • User opens the app for the first time
    • Enters name, weight, and preferred transport modes
    • Lands on the main dashboard
  2. Logging a Trip

    • User navigates to the Map screen
    • Starts trip tracking
    • App records location and distance
    • User ends the trip
    • App calculates carbon savings
    • Results appear back on the carbon screen
  3. Reviewing Fitness Metrics

    • User navigates to the Fitness screen
    • Views fitness data such as steps, distance, blood pressure and activity insights
  4. Managing Data

    • User navigates to the Profile screen
    • Can export trip history as JSON or clear stored data at any time
  5. View Carbon Metrics

    • Reviewing Carbon Insights
    • User navigates to the Carbon screen
    • Views daily and weekly carbon savings

πŸ€ Getting Started

Prerequisites

Before setting up CarbonTracker, make sure you have the following installed:

  • Flutter
  • Dart (included with Flutter)
  • Android Studio or another Flutter-supported development environment
  • An Android/iOS emulator or a physical device

You can verify your Flutter installation by running:

flutter doctor

Resolve any issues reported by flutter doctor before proceeding.

Installation

1. Clone the Repository

git clone https://github.com/AOSSIE-Org/CarbonTracker.git
cd CarbonTracker

2. Install Dependencies

flutter pub get

3. Run the App

First, check that Flutter can detect your available devices:

flutter devices

Then run the application with:

flutter run

You can run the project directly from Android Studio or another IDE with Flutter support.

4. Build the App

To create a release build, run the command for your target platform:

# Android APK
flutter build apk --release

# Android App Bundle (for Play Store)
flutter build appbundle --release

# iOS (requires macOS and Xcode)
flutter build ios --release

Testing

Unit and Widget Tests

flutter test

Integration Tests

Integration tests need a connected device or running emulator. Check that one is available with flutter devices, then run:

flutter test integration_test

πŸ“± App Screenshots

Onboarding Dashboard Dashboard
Fitness Screen Fitness Screen Map Screen
Carbon Screen Profile Screen Profile Screen

πŸ™Œ Contributing

⭐ Don't forget to star this repository if you find it useful! ⭐

Thank you for considering contributing to this project! Contributions are highly appreciated and welcomed. To ensure smooth collaboration, please refer to our Contribution Guidelines.

πŸ› Found a bug? Please open an issue with steps to reproduce, expected vs. actual behavior, and your device/OS.

✨ Maintainers

πŸ“ License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.


πŸ’ͺ Thanks To All Contributors

Thanks a lot for spending your time helping CarbonTracker grow. Keep rocking πŸ₯‚

Contributors

Β© 2026 AOSSIE

Releases

Packages

Contributors

Languages