
BCA/MCA Final-Year Project
SafeHer - Women Safety Emergency App
SafeHer is a comprehensive women safety emergency mobile application developed as a final-year BCA/MCA college project. Built using Flutter, Dart, and Supabase, it provides instant SOS activation, real-time GPS location tracking via MapLibre and OpenStreetMap, secure user authentication, and emergency contact management.
Project Architecture & Modules
- 11. Authentication & OnboardingIncludes Splash Screen with automatic login checking, secure Registration with hashed password storage, and Login with persistent session management.
- 22. Home Dashboard & SOS EmergencyFeatures a central large red SOS button, current location status, live tracking indicators, and quick access to emergency history and contacts.
- 33. Realtime Location & TrackingObtains precise device GPS coordinates upon SOS activation, creates an emergency event in Supabase, and broadcasts live tracking updates via MapLibre & OpenStreetMap.
- 44. Emergency Contacts ManagementAllows users to add, edit, and delete trusted emergency contacts who receive critical incident and location information.
Backend & Database
Supabase (Auth, PostgreSQL, Realtime)
Mapping & Location
MapLibre GL + OpenStreetMap + Device GPS
Security
Row Level Security (RLS) & Secure Password Hashing
Frontend Framework
Flutter + Dart (Android)
Supabase PostgreSQL Database Schema
The application uses four core tables with strict Row Level Security (RLS) enabled: • profiles: id, name, email, phone, profile_image, created_at • emergency_contacts: id, user_id, contact_name, contact_phone, created_at • emergencies: id, user_id, status, started_at, ended_at, initial_latitude, initial_longitude • location_updates: id, emergency_id, latitude, longitude, recorded_at
Setup & Installation Instructions
- 1Step 1: Clone and ConfigureClone the repository, install Flutter SDK, and configure your Supabase project credentials in lib/main.dart.
- 2Step 2: Database SetupRun the provided SQL script in your Supabase SQL Editor to create tables and enable Row Level Security policies.
- 3Step 3: Run the ApplicationConnect an Android device or emulator and execute 'flutter pub get' followed by 'flutter run'.