How davfilsdev/aqi-dashboard works
AQI Warehouse Dashboard is a public air-quality analytics interface over a Neon/Postgres warehouse. Users filter and explore measurements, inspect overview and specialized visualizations, and export filtered rows; the Ask AI flow turns a question into validated, read-only SQL and returns rows with a summary. The graph reflects the sampled overview, explorer, export, and Ask AI wiring. Other major dashboard pages and chart families are represented from the README and tree; their detailed query wiring was not sampled.
Main entry points: app/page.tsx Overview page · explorer/page.tsx Explorer page · ai.ts NL-to-SQL service · queries.ts Warehouse queries
Components 20
Dashboard UI
- Filter controls
components/filters/FilterBar.tsx - Charts and visuals
components/charts - AQI map
components/map/AqiMap.tsx - Chat interface
components/chat/ChatWindow.tsx
Analytics Views
- Overview page
app/page.tsx - Trends page
app/trends/page.tsx - Cities pages
app/cities - Correlation page
app/correlations/page.tsx - Map page
app/map/page.tsx - Explorer page
app/explorer/page.tsx - Ask AI page
app/ask/page.tsx
Server Data Services
- CSV export route
app/api/export/route.ts - Ask API route
app/api/ask/route.ts - Filter parsing
lib/filters.ts - Warehouse queries
lib/queries.ts - DB connection
lib/db.ts - NL-to-SQL service
lib/ai.ts
External Systems
- Neon Postgres
- Groq API
Other components
- Dashboard user
Connections 27
- Dashboard user → Overview page: opens dashboard
- Dashboard user → Trends page: opens trends
- Dashboard user → Cities pages: browses cities
- Dashboard user → Correlation page: views correlations
- Dashboard user → Map page: views map
- Dashboard user → Explorer page: explores records
- Dashboard user → Ask AI page: asks question
- Overview page → Filter parsing: parses filters
- Overview page → Warehouse queries: loads metrics
- Overview page → Charts and visuals: renders summaries
- Explorer page → Filter parsing: parses filters
- Explorer page → Warehouse queries: loads rows
- Explorer page → Filter controls: renders controls
- Trends page → Charts and visuals: renders trends
- Cities pages → Charts and visuals: renders city data
- Correlation page → Charts and visuals: renders matrix
- Map page → AQI map: renders map
- Chat interface → Ask API route: sends question
- Ask AI page → Chat interface: shows conversation
- Ask API route → NL-to-SQL service: generates and validates SQL
- Ask API route → NL-to-SQL service: requests summary
- NL-to-SQL service → Groq API: requests SQL and summary
- NL-to-SQL service → DB connection: runs validated query
- CSV export route → Filter parsing: parses filters
- CSV export route → Warehouse queries: loads export rows
- Warehouse queries → DB connection: executes queries
- DB connection → Neon Postgres: reads warehouse