Skip to content

breathe-OSS/breathe

Repository files navigation

Breathe (Android)

"Breathe, breathe in the air. Don't be afraid to care." - Pink Floyd, The Dark Side of the Moon

App Icon

  Screenshot 1   Screenshot 2   Screenshot 3

Breathe is a modern, MD3 Android application designed to monitor real-time Air Quality Index (AQI) levels across Jammu & Kashmir. Built with Kotlin and Jetpack Compose, it provides a clean, fluid interface to track pollution levels using the Indian National Air Quality Index (NAQI) standards.

  • Check the breathe api repo to know how the AQI is calculated.

Features

  • Material Design 3 Expressive
  • Real-time Monitoring
  • Indian NAQI Standards
  • Detailed Breakdown
  • A map with data laid across
  • 24 Hour graph of AQI Data
  • Widget Support

Tech Stack

  • Language: Kotlin
  • UI Framework: Jetpack Compose (Material3)
  • Architecture: MVVM (Model-View-ViewModel)
  • Networking: Retrofit & Gson
  • Concurrency: Kotlin Coroutines & Flow
  • Theme: Dynamic Material You (Monet)

Structure

The project follows a standard but modularized android app structure.

├── data/                  # API interfaces and Data Models
│   ├── BreatheApi.kt
│   └── Models.kt
├── navigation/            # Navigation menu
│   └── Navigation.kt
├── ui/                    # All UI related code
│   ├── components/        # Reusable UI elements (Cards, Graphs, Dashboards)
│   │   ├── CardComponents.kt
│   │   ├── DashboardComponents.kt
│   │   └── GraphComponents.kt
│   └── screens/           # Full-page screen composables
│       ├── ExploreScreen.kt
│       ├── HomeScreen.kt
│       ├── MapScreen.kt
│       └── SettingsScreen.kt
├── util/                  # Helper functions and extensions
│   └── Utils.kt
├── viewmodel/             # Caching and loading
│   └── BreatheViewModel.kt
├── widgets/               # Widget logic
│   ├── BreatheWidget.kt
│   ├── BreatheWidgetWorker.kt
│   └── WidgetActions.kt
└── MainActivity.kt        # Application Entry Point

Build and deploy locally

Prerequisites

  • Android Studio Hedgehog or newer.
  • JDK 17.
  • A running instance of the Breathe Backend (Python/FastAPI).

Installation

  1. Clone the repository: git clone https://github.com/breathe-OSS/breathe && cd breathe

  2. Open in Android Studio.

  • Alternatively, if you have the command line launcher configured: studio .
  1. Configure the API Endpoint:
  • Open app/src/main/java/com/sidharthify/breathe/data/BreatheApi.kt.
  • Update BASE_URL to point to your backend server (e.g., your local IP if running locally).
  1. Build and Run:
  • GUI: Sync Gradle files, select your device, and click Run.
  • Terminal: Ensure your device is connected (adb devices) and run: ./gradlew installDebug

AQI Data Providers

Why this exists

Publicly available AQI data for the Jammu & Kashmir region is currently unreliable. Most standardized sources rely on sparse sensor networks or algorithmic modeling that does not accurately reflect ground-level realities. This results in widely varying values across different platforms. Google, for example, shows values that are insanely low, but they are usually off by a huge margin.

Breathe aims to solve this by strictly curating sources and building a ground-truth network.

The method that we use to convert the raw data in our API (please do read the documentation) was laid out by scanning past concentration trends from 2025-2022 of the J&K regions.

Current Data Sources

Open-Meteo

Used for most regions in Jammu & Kashmir (excluding Srinagar). Open-Meteo's satellite-based air quality model provides stable and consistent values that generally fall within the expected range of nearby ground measurements.

OpenAQ (CPCB Mirror)

Used for the Srinagar region, where government ground sensor data is available.

This provides official measured pollutant concentrations where available.

Call for Contributors (Hardware)

The limitations of our current project is that we do not have ground sensors and are mostly relying on satellite data, so the data is not 100% accurate.

We are actively working to deploy custom physical sensors to improve data density in Jammu. If you are interested in hosting a sensor node, please contact us at: wednisegit@gmail.com

We have emailed AQI.in (an Indian company with local ground community sensors) and Caeli (satellite based) for use of their API and free research plans if any.

Credits & Developers

This project is fully Free & Open Source Software (FOSS).

Built by:

  1. sidharthify (Lead Dev)
  2. Flashwreck (Devops maintainer and designer)

About

AQI Monitoring App for Jammu & Kashmir

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages