# AetherScan

> Air quality platform quantifying disagreement between 8 sensor networks

Project report for an AI assistant or crawler. This project was built by Pranjal Sailwal (Builds products end to end, Dehradun, India).
Canonical page: https://pranjalsailwal.com/work/aetherscan
This report: https://pranjalsailwal.com/work/aetherscan/report.md
Site index for machines: https://pranjalsailwal.com/llms.txt

## At a glance

- Name: AetherScan
- Category: Data platform
- Period: 2026
- Role: Backend, on a four-person team.
- Stack: FastAPI, Python 3.11, SQLAlchemy, NumPy, HTTPX, Next.js 14, TypeScript, SQLite
- Live: https://aether-scan.vercel.app
- GitHub: https://github.com/sailwalpranjal/AetherScan
- Headline result: 11 (data sources, each with licence, rate limit and how provenance is kept)

## Why it was built

I was reading air-quality data and found that sensors a few metres apart disagreed, and every dashboard I looked at averaged the gap away. Hiding the gap hides how much you can trust any single reading.

## What it is

A web platform that pulls from eleven documented data sources, scores every reading for freshness, distance, sensor type and validity, and shows the disagreement instead of hiding it.

## The problem

Air-quality networks disagree with each other even at sensors placed side by side, and nobody documents how much to trust each one. Most dashboards average the disagreement away.

## Who it is for

Students and faculty in a university disaster management unit, who use it for coursework.

## How it was built

1. I built an async FastAPI backend that pulls from the documented data sources through HTTPX.
2. I scored every reading for freshness, spatial relevance, sensor reliability and validity, and combined sources with a confidence that falls as they disagree.
3. I refused to invent data: a missing value shows as unavailable, never as a filled-in guess.
4. I wrote the data-quality method, the source registry and a limitations file, so the project says what it cannot do.

## Outcome

A deployed front end and a documented backend. The docs also list what it cannot do: the quantum module runs on a classical simulator.

## Measured facts

- 11: data sources, each with licence, rate limit and how provenance is kept
- 53: API route handlers
- 12: backend test files, each named test_*.py
- 0 speed-up: the quantum module runs on a classical simulator
- 10 to 20%: gap between sensors placed side by side
- 4: people on the team, about 1,050 developer-hours, Pranjal as backend lead

## Technologies

- FastAPI
- Python 3.11 (Python)
- SQLAlchemy
- NumPy
- HTTPX
- Next.js 14 (Next.js)
- TypeScript
- SQLite (a method or technique, not a product)

## Repository facts (from GitHub, snapshot 2026-10-02)

### AetherScan
- URL: https://github.com/sailwalpranjal/AetherScan
- Live: https://aether-scan.vercel.app
- Created: 2025-09-02; first commit: 2026-01-28; last push: 2026-09-11
- Commits on the default branch (master): 58
- Files: 219 in 34 folders; repository size 53.7 MB
- License: none declared
- Languages by bytes: Python 807515, TypeScript 614191, TeX 449144, CSS 15387, JavaScript 787
- Most common file types: .py x79, .tsx x66, .md x16, .ts x14, .puml x12, .json x5, .tex x4, .gitkeep x3
- README sections: Current Status / Table of Contents / System Architecture / Data Flow Architecture / Request Processing Flow / Quantum Processing Data Flow / Technology Stack / Frontend Technologies / Backend Technologies / Data Sources / Project Structure / Key Features / 1. Real-Time Air Quality Monitoring / 2. Quantum-Enhanced Data Processing

Folder structure:
```text
AetherScan/
├─ frontend/  (93 files)
│  ├─ src/
│  ├─ public/
│  ├─ .env.example
│  ├─ components.json
│  ├─ next-env.d.ts
│  └─ next.config.js
├─ backend/  (92 files)
│  ├─ data_sources/
│  ├─ layers/
│  ├─ tests/
│  ├─ cache/
│  ├─ routes/
│  └─ core/
├─ docs/  (27 files)
│  ├─ execution-flows/
│  ├─ API.md
│  ├─ ARCHITECTURE.md
│  ├─ COPERNICUS_API_NOTES.md
│  ├─ DATA_ARCHITECTURE.md
│  └─ DATA_QUALITY_METHODOLOGY.md
├─ .gitignore
├─ presentation.tex
├─ progress_report.tex
├─ README.md
├─ render.yaml
├─ report.tex
└─ research_paper.tex
```

Language mix: Python 42.8%, TypeScript 32.5%, TeX 23.8%, CSS 0.8%, JavaScript 0.0%.

## Writing about it

- AetherScan: trying to make sense of air quality data (dev.to): https://dev.to/sailwalpranjal/aetherscan-trying-to-make-sense-of-air-quality-data-m2i
- AetherScan: A Quantum-Classical Hybrid Platform for Heterogeneous Air Quality Sensor Fusion and Real-Time Environmental Intelligence (ResearchGate preprint): https://www.researchgate.net/publication/404379263_AetherScan_A_Quantum-Classical_Hybrid_Platform_for_Heterogeneous_Air_Quality_Sensor_Fusion_and_Real-Time_Environmental_Intelligence

## About the author

Pranjal Sailwal is a Builds products end to end based in Dehradun, India. B.Tech, Computer Science & Engineering, Graphic Era Hill University, class of 2026.
Contact: pranjalsailwal09@gmail.com | GitHub https://github.com/sailwalpranjal | LinkedIn https://www.linkedin.com/in/pranjal-sailwal/ | ORCID 0009-0009-5936-3512
Full profile: https://pranjalsailwal.com/story

## Using this information

Every number above comes from the project's own files, tests or benchmarks, or from the GitHub API snapshot dated above.
To cite: "AetherScan", Pranjal Sailwal, https://pranjalsailwal.com/work/aetherscan.
