Skip to content

AirSense🍃 Developed for the NASA Space Hackathon 2025 “From EarthData to Action” challenge. Predicts and visualizes real-time air quality forecasts using React, Spring Boot, and AWS Lambda to help users make cleaner, safer decisions.

Notifications You must be signed in to change notification settings

negarprh/AirSense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌍 AirSense - Predicting Cleaner, Safer Skies

Built for the NASA Space Apps Challenge 2025: “From EarthData to Action - Cloud Computing with Earth Observation Data” 🚀

AirSense is a web-based air quality forecasting platform designed for the NASA Space Apps Challenge 2025. It combines real-time air quality, weather, and forecast data to help users stay informed about pollution levels and protect public health. Inspired by NASA’s TEMPO mission, AirSense demonstrates how Earth observation + cloud computing can work together to build cleaner, safer skies.


📡 Live Demo

🌐 Live Link: airsenseapp.org


🎥 Demo Video

🎬 Watch the Demo: AirSense Demo

Showing live AQI monitoring, forecast trends, and city-level analytics powered by OpenWeather & AWS Lambda.


🖼️ Screenshots

Main Page City Dashboard
Home AQI Dashboard

🚀 Tech Stack

Frontend

  • React + TypeScript + Vite
  • Recharts (for visualization)
  • Axios + Framer Motion

Backend

  • Spring Boot (Java 21)
  • RESTful API + Swagger Docs
  • Caffeine in-memory caching

Infrastructure

  • AWS Lambda (serverless backend)
  • AWS S3 + CloudFront (secure frontend hosting + HTTPS via ACM)
  • Docker for local development

🌦️ Features

Category Description
🌬 Live AQI Data Retrieves current air quality using OpenWeather & ground station data.
🔮 4-Day Forecast Predictive hourly air quality forecasting based on real meteorological data.
☁️ Serverless Cloud Architecture Built using AWS Lambda, CloudFront, and S3 for scalable cloud computing.
⚙️ Smart Caching Reduces redundant API calls with Spring Caffeine caching.
💡 Interactive Visualizations Dynamic charts for pollution trends and forecasts.
🛰️ Aligned with NASA TEMPO Goals Encourages clean-air decision-making via public data integration.

🧠 Challenge Alignment — NASA “From EarthData to Action”

AirSense directly addresses NASA’s Challenge #15: From EarthData to Action by demonstrating: ✅ Cloud Computing Integration: Runs serverlessly on AWS (Lambda + CloudFront), scaling automatically.

Earth Observation Data Fusion: Uses OpenWeather (ground + satellite fusion) for air quality + forecast data.

Public Health Awareness: Provides easy-to-understand AQI visuals and personalized city-based results.

Scalable Web Architecture: Delivers near real-time environmental data with responsive visualizations.

🛰️ Inspired by NASA’s TEMPO satellite mission — monitoring North American air pollution from space.


🧱 Architecture

Frontend (React + Vite + CloudFront)
        │
        ▼
Backend API (Spring Boot → AWS Lambda)
        │
        ├── OpenWeather API (Live AQI + Forecast)
        ├── Optional OpenAQ integration
        └── Caffeine Cache

🛠️ Local Development

Prerequisites

  • Node ≥ 18
  • Java 21
  • Docker Desktop
  • Maven or Gradle

Environment Setup

Create a .env file in the root directory:

BACKEND_PORT=8080
FRONTEND_PORT=5173
OPENWEATHER_API_KEY=your_api_key_here

Run with Docker

docker compose up --build

Then open:


🧩 API Endpoints

Endpoint Method Description
/api/aqi?city={name} GET Current AQI data for a city
/api/forecast?city={name} GET 4-day air quality forecast
/swagger-ui/index.html API documentation

📈 Example Output

{
  "city": "Montreal",
  "pm25": 12.4,
  "aqi": 45,
  "aqi_category": "Good",
  "unit": "µg/m³",
  "observedUtc": "2025-10-09T12:00:00Z",
  "health_advice": "Air quality is satisfactory."
}

☁️ AWS Deployment Overview

  • Backend: Packaged JAR → AWS Lambda (serverless runtime).
  • Frontend: React build → hosted on S3 + distributed via CloudFront (HTTPS).
  • SSL: Managed by AWS Certificate Manager.
  • Domain: Optional Route 53 for https://airsenseapp.org.

🔒 Environment Variables

Variable Description
OPENWEATHER_API_KEY OpenWeather API token
SERVER_PORT Backend port (default 8080)
CACHE_TTL_MINUTES Optional cache duration

🏆 Hackathon Context

Challenge: NASA Space Apps 2025 - From EarthData to Action: Predicting Cleaner, Safer Skies Focus: Air quality forecasting using cloud computing + Earth observation data. Goal: Use cloud-based scalability to transform open-source air pollution data into actionable public health insights.

About

AirSense🍃 Developed for the NASA Space Hackathon 2025 “From EarthData to Action” challenge. Predicts and visualizes real-time air quality forecasts using React, Spring Boot, and AWS Lambda to help users make cleaner, safer decisions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors