Raksha — Safe Daily Decision
AI-powered safety decision app for families
FastAPIReactTypeScriptViteGroq API (LLaMA 3.3-70b-versatile)OpenWeatherMap APIscikit-learnSQLiteMaterial 3 CSS
WeatherWise Hack · Team WWH-RHV8D60-10 Live Threat Risk IndexGroq-LLaMA 3.3 Safety Context Chat
The problem
Developed for the WeatherWise Hack (Team Code: WWH-RHV8D6). In disaster-prone zones, checking scattered weather forecasts, elevation maps, and historical flood datasets is slow and error-prone.
Families need a single, instantly readable, and customized answer to the daily question: "Is it safe to go outside today?"—factoring in household vulnerabilities like children or elderly members.
Key decision
I chose a decoupled dual-model architecture: a scikit-learn Random Forest Classifier running locally in Python to evaluate mathematical risks (humidity, wind, precipitation, and elevation), paired with Groq's LLaMA 3.3-70b-versatile for generating natural language recommendations. Standard heuristics fail to communicate nuance; an LLM ensures safety advice is context-aware and clear.
How it works
The application follows a clean frontend/backend split:
- Frontend (React + Vite): A Material 3 web app featuring five tabs: Safety, Chat, Risk Zones Map, Local Helplines, and Settings. Includes a family profile modifier toggle (adjusts threat scores by 1.4x-1.6x for children/elderly) and a dynamic color palette shifting with risk level.
- Backend (FastAPI): Handles routing (risk calculation, OpenWeatherMap data, GPS geolocation, and chat history). Includes
ml.pyrunning the Random Forest classifier andapi.pyinterfacing with Groq. - Data Store: SQLite for storing local alert history.
Results
Provides one clear, actionable safety decision every morning. Won a spot in the WeatherWise Hack (Team Code: WWH-RHV8D6).
What went wrong
The app works fine, but it told my teammate not to go out to buy snacks because of a 0.2mm drizzle. It turns out LLaMA is highly risk-averse when you toggle the family profile modifier to maximum.