# 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.