How nguyentribaothang/airsafenet works
AirSafeNet is an HCMC air-quality decision platform. A citizen signs in through the React application, opens the dashboard, and receives cached current conditions, forecasts, risk guidance, trust metadata, alerts, and activity recommendations from the ASP.NET backend. Python computes ensemble forecasts into cache files, while backend services persist user, family, schedule, and conversation state in SQL Server. Separate product branches provide clean routing, mobility impact tracking, family safety, anomaly views, and an AI assistant. Some feature wiring is inferred from documented routes and named modules; sampled excerpts limit deeper call relationships.
Components 22
User Experience
- React Application
src/airsafenet_frontend/src/App.tsx - Dashboard View
src/airsafenet_frontend/src/pages/Dashboard.tsx - Assistant View
src/airsafenet_frontend/src/pages/AssistantPage.tsx
Backend APIs
- Dashboard API
src/airsafenet_backend/airsafenet_backend/Controllers/DashboardController.cs - Activity API
src/airsafenet_backend/airsafenet_backend/Controllers/ActivityController.cs - Assistant API
src/airsafenet_backend/airsafenet_backend/Controllers/AssistantController.cs - Authentication API
src/airsafenet_backend/airsafenet_backend/Controllers/AuthController.cs - Family Profiles API
src/airsafenet_backend/airsafenet_backend/Controllers/FamilyProfilesController.cs - Anomaly API
src/airsafenet_backend/airsafenet_backend/Controllers/AnomalyController.cs
AI Intelligence
- Cached AI Service
src/airsafenet_backend/airsafenet_backend/Services/AiCachedService.cs - Source Health
src/airsafenet_backend/airsafenet_backend/Services/DataSourceHealthService.cs - Forecast Cache Compute
src/airsafenet_ai/app/cache_manager.py - Ensemble Forecasting
src/airsafenet_ai/app/ensemble_predict.py
State and Integrations
- SQL Server
src/airsafenet_backend/airsafenet_backend/Data/AppDbContext.cs - AI Cache Files
src/airsafenet_ai/app/cache_manager.py - Open-Meteo
- OpenAQ
- LLM Provider
Decision Features
- Clean Map
src/airsafenet_frontend/src/pages/CleanMapPage.tsx - Impact Dashboard
src/airsafenet_frontend/src/pages/ImpactPage.tsx - Contextual Alerts
src/airsafenet_backend/airsafenet_backend/Services/ContextualAlertService.cs
Other components
- Citizen
Connections 25
- Citizen → React Application: uses
- React Application → Dashboard View: routes
- React Application → Assistant View: routes
- React Application → Clean Map: routes
- React Application → Impact Dashboard: routes
- React Application → Authentication API: authenticates
- Dashboard View → Dashboard API: requests
- Dashboard View → Anomaly API: requests
- Dashboard View → Family Profiles API: requests
- Dashboard API → Cached AI Service: reads forecasts
- Dashboard API → Source Health: reads trust
- Dashboard API → SQL Server: records snapshots
- Activity API → Cached AI Service: reads forecasts
- Activity API → SQL Server: reads schedules
- Contextual Alerts → Cached AI Service: uses forecasts
- Contextual Alerts → SQL Server: reads profiles
- Family Profiles API → SQL Server: stores profiles
- Assistant View → Assistant API: requests
- Assistant API → SQL Server: stores messages
- Assistant API → LLM Provider: generates replies
- Forecast Cache Compute → Ensemble Forecasting: calls models
- Forecast Cache Compute → AI Cache Files: writes results
- Cached AI Service → AI Cache Files: reads results
- Source Health → Open-Meteo: checks source
- Source Health → OpenAQ: checks source