Your personal, hands‑free safety companion for solo walking — real‑time tracking, AI‑informed risk, and instant emergency alerts.

Emergency trigger flow (placeholder). Record your real demo and replace this GIF.
| Map & Route | Guardian Dashboard |
|---|---|
![]() |
![]() |
Safe Walkie combines real‑time mapping, voice recognition, and an event‑driven backend to provide proactive safety monitoring and instant emergency response.
sequenceDiagram
autonumber
participant U as User (App)
participant FE as React Frontend
participant API as Flask Location API
participant MQ as RabbitMQ
participant AN as Analytics Service
participant TW as Twilio API
participant G as Guardian
U->>FE: Start Walk / Speak Safe Word
FE->>API: /start_walk / update_location
API->>MQ: publish walk.started / location.update
AN-->>MQ: consume location.update
AN->>MQ: publish alert.events (risk scores)
API-->>MQ: consume alert.events
FE->>API: poll /risk/latest
API-->>FE: risk score (green/amber/red)
FE->>TW: /api/call_emergency (when triggered)
TW->>G: Automated call with details
- Location API publishes session + location events
- Analytics computes risk (off‑route, inactivity, anomalies) and publishes alerts
- Frontend polls
/risk/latestand triggers emergency flow when needed - Twilio places automated calls to guardians (optional)
git clone <repo-url>
cd Safe-Walkie/frontend
npm install
# env
cat > .env.local << 'EOF'
VITE_MAPBOX_TOKEN=your_mapbox_access_token_here
VITE_BACKEND_URL=http://localhost:5001
EOF
npm run dev # http://localhost:5173cd ../backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtStart RabbitMQ (choose one):
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
# or: brew services start rabbitmq
# or: sudo systemctl start rabbitmq-serverBackend env:
cat > .env << 'EOF'
MAPBOX_TOKEN=your_mapbox_token_here
TWILIO_ACCOUNT_SID=your_twilio_sid
TWILIO_AUTH_TOKEN=your_twilio_auth_token
TWILIO_PHONE_NUMBER=your_twilio_phone_number
TWILIO_VOICE=alice
TWILIO_GUARDIAN_ALERT_MESSAGE=HELLO, THIS IS AN IMPORTANT CALL. YOU ARE THE GUARDIAN AND THE PERSON IS IN DANGER.
EOFRun services (3 terminals):
python location-api.py # :5001
python analytics.py # :5002
python twilio-api.py # :3001 (optional)- Enter destination → start route
- Toggle Safe word ON (default:
help) and allow mic - Watch risk indicator and use Emergency when needed
- Guardian uses the Dashboard to monitor live status
- To enable the Build Status badge, create
.github/workflows/ci.ymland replaceOWNER/REPOabove with your repo. - Common options: lint, test, build, deploy. See GitHub Actions starter workflows.
MIT — see LICENSE.
Built with ❤️ by the Safe Walkie team at Tech‑Nol‑Hack.


