Inspiration
Air pollution is one of the biggest environmental risks to lung health, yet exposure data is often disconnected from personal choices. Current monitoring networks (PM2.5, O₃, NO₂, wildfire smoke, etc.) provide population-level insights, but they rarely translate into actionable, individual-level guidance.
We built RunSafe to close this gap. Whether you’re commuting or jogging, RunSafe helps you choose the cleanest, healthiest path to your destination—reducing exposure to harmful pollutants and lowering long-term risks such as lung cancer and respiratory disease.
This project is designed explicitly for the IDSO Challenge: Air Quality & Lung Health, by aligning environmental monitoring with personal health outcomes and behavioral choices.
What it does
Real-time AQI from GPS/user input (PM2.5, PM10, O₃, NO₂).
Simple classification: Good / Moderate / Avoid.
Pin home, office, school, or gym
Compares multiple paths (walking, running, cycling, driving) using AQI overlays.
Suggests the least polluted option for safer outdoor travel and actively reduces exposure during daily activity.
Track symptoms (cough, wheeze, breathlessness).
Auto-generate provider-ready PDF reports.
How we built it
Frontend: React, Vite, TailwindCSS
Auth: Clerk
Backend: Node.js / Express
APIs: AirNow / OpenAQ, Google Maps Directions
Challenges we ran into
Our main challenges were at the integration layer. Authentication was the first blocker: we initially attempted to implement Auth0, but inconsistent callback handling and configuration issues made it impractical within the hackathon timeline. We transitioned to Clerk, which provided a more reliable authentication flow with less overhead. The second challenge was synchronizing Google Maps route data with real-time air-quality APIs. Overlaying AQI layers on dynamic paths required non-trivial debugging of request flows and data alignment. API reliability was another constraint: external AQI sources returned inconsistent or delayed responses, leading to CORS errors, latency, and occasional empty datasets.
What we learned
We learned how hard it is to turn raw AQI data (PM2.5, PM10, O₃, NO₂) into actionable health guidance. Normalizing inconsistent APIs and overlaying exposure metrics on live Google Maps routes required careful design to keep it real time. Personalization showed us that thresholds must adapt; what’s safe for one user may be risky for someone with asthma or cardiopulmonary disease. Most importantly, we saw that linking exposure to health outcomes means thinking in clinical standards like FHIR, so outputs can matter to providers, not just users.
What's next for RunSafe
Our next steps focus on three directions:
Data Expansion: Add more pollutants (CO, SO₂) and integrate wildfire/smoke alerts for broader coverage.
Deeper Personalization: Incorporate wearables (heart rate, SpO₂) to adapt guidance in real time.
Provider Integration: Export weekly data bundles directly into EHR systems to bridge community exposure data with clinical workflows.
Log in or sign up for Devpost to join the conversation.