Marklet
SafeHer App Interface Mockup

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

  1. 11. Authentication & OnboardingIncludes Splash Screen with automatic login checking, secure Registration with hashed password storage, and Login with persistent session management.
  2. 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.
  3. 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.
  4. 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

  1. 1Step 1: Clone and ConfigureClone the repository, install Flutter SDK, and configure your Supabase project credentials in lib/main.dart.
  2. 2Step 2: Database SetupRun the provided SQL script in your Supabase SQL Editor to create tables and enable Row Level Security policies.
  3. 3Step 3: Run the ApplicationConnect an Android device or emulator and execute 'flutter pub get' followed by 'flutter run'.