Inspiration
In Rwanda, 40% of women have experienced physical violence, yet only 40% seek help. The statistics are alarming, but the stories behind them are heartbreaking. Women often have no time to react during an attack, evidence disappears without proper documentation, and victims fear their abuser will discover a protection app on their phone. With 60% of women using basic phones without internet, existing solutions leave the most vulnerable unprotected.
We built ShieldHer to give women a digital witness—a silent guardian that works even when they can't reach their phone.
What It Does
ShieldHer is a discreet safety app that hides in plain sight:
- Fake Interface: Looks like a working calculator/weather app. Abusers never know it exists.
- Voice-Activated SOS: Users configure custom wake words (e.g., "ntabara" in Kinyarwanda). When spoken in Safe Mode, it triggers an emergency.
- Automatic Evidence Capture: Records audio, captures GPS location, timestamps, and device metadata.
- SMS Alerts: Sends trusted contacts a message with:
- Google Maps location link
- Risk score
- Timestamp
- Audio evidence link (via Cloudinary)
- Secure Storage: Evidence is encrypted with AES-256 and hashed with SHA-256 for court admissibility.
How We Built It
We built ShieldHer using Flutter for cross-platform compatibility (Android/iOS). Key technologies:
- Frontend: Flutter with Riverpod for state management
- Local Storage: Hive for encrypted offline storage
- Voice Detection: sherpa_onnx for offline wake word detection (supports any language!)
- Sensors: sensors_plus, proximity_sensor, light_sensor for risk detection
- Location: geolocator + geocoding for reverse address lookup
- Encryption: AES-256 + SHA-256 for chain of custody
- Cloud Storage: Cloudinary for evidence backup
- SMS: url_launcher (temporary) - will upgrade to telephony for direct sending
Challenges We Faced
- Wake Word Detection: Getting offline voice recognition working on Android was complex. We discovered sherpa_onnx works perfectly for custom wake words in ANY language!
- Background Services: Keeping sensors active while preserving battery life required careful optimization.
- Chain of Custody: Ensuring evidence is court-admissible meant implementing proper SHA-256 hashing and encryption.
- Build Issues: Android SDK version conflicts, JCenter shutdown, and disk space problems—we solved them all!
What We Learned
- Offline-first architecture is essential for safety apps
- Users need multiple ways to trigger SOS (voice, button, future: shake detection)
- Evidence must be both secure AND accessible to authorities
- Simple, memorable codes (#1111#, 0000) are better than complex ones
- Testing on real devices reveals issues emulators can't
What's Next
- Shake Detection: 3 violent shakes trigger SOS
- Hardware Integration: Smartwatch SOS button
- Community Alerts: Notify nearby ShieldHer users
- Police Integration: Direct connection to Rwanda National Police
- USSD Support: For basic phones (*123#)
Built With
- dart
- flutter
Log in or sign up for Devpost to join the conversation.