SafeNotes is a disguised crisis management and reporting app for domestic violence and abuse victims in Singapore. It begins as a fully functional notes app with utilities, and transforms into a powerful support tool, hidden behind a calculator and 4-digit PIN.
- Rich text notes with formatting
- Built-in calculator with standard functionality
- Search tool to highlight text
- Enter a secret 4-digit PIN into the calculator and press = to reveal the real UI
- Optional biometric failsafe via long-press
- Triple tap anywhere in real UI to return to disguise
- Pre-filled emergency SMS with optional location + media links
- Media is uploaded (via Supabase) and expires automatically in 24h
- Quick-send to a trusted contact
- Designed for silent crisis help
- Educational InfoHub
- AI-powered emotional support chatbot (Gemini Flash 2.0)
- Media Journal (photos, audio, video — locally stored)
- Toggle location, camera, mic, and gallery access
- Update emergency message/contact and PIN
- “Reset to onboarding” wipes all data (except chatbot limits)
Notes![]() |
Calculator![]() |
Home![]() |
SOS![]() |
InfoHub![]() |
Chatbot![]() |
Journal![]() |
Settings![]() |
- React Native (via Expo)
- Gemini Flash 2.0: AI-powered, template-prompted emotional support chatbot
- SecureStore: AES256-encrypted local storage (for PIN, settings, emergency data)
- AsyncStorage: Stores chatbot message history and journal media
- Supabase: Cloud storage for SOS media uploads and metadata with cron-based expiry
- Cloudflare Workers: Generates dynamic HTML pages to display up to 5 media items
- No user authentication (for safety & privacy)
- Media shared via dynamic links (no MMS support in Expo)
- SOS to police only to be used in life-threatening situations, with compulsory location-sharing
This project was developed as part of CODE_EXP 2025 by a team of four:
Chua Chloe: Core app architecture, SOS system, media journal, and overall integration
Justin Goh: Onboarding flow and user preference handling
Chew Wei Jie: InfoHub content and screen development
Cheong Kang Jie: AI chatbot implementation using Gemini Flash 2.0