SafeHer - Women Safety SOS App with Fake Call, Audio Evidence and Live Location Sharing | Flutter Final Year Project
Back to ProjectMake sure the following tools are installed on your computer before you begin. If any of these are missing, install them first and then come back to this guide.
| Tool | Minimum Version | Download Link |
|---|---|---|
| Flutter SDK | 3.0.0 | https://docs.flutter.dev/get-started/install |
| Dart SDK | 3.0.0 | Included with Flutter SDK |
| Android Studio or VS Code | Latest | https://developer.android.com/studio or https://code.visualstudio.com |
| Physical Android Device | Android 6.0 or above | Required for SMS and location testing |
After downloading the project ZIP file from CodeAj Marketplace, extract it to a location on your computer. You will see a folder structure that includes lib/, android/, pubspec.yaml, and other standard Flutter files.
Open Android Studio or VS Code. Go to File and then Open, and select the extracted project folder. If you are using VS Code, make sure the Flutter and Dart extensions are already installed. You can install them from the Extensions panel by searching for "Flutter" and "Dart".
Open the built-in terminal in your editor. Make sure you are inside the project directory, then run this command:
flutter pub get
This command downloads all the packages the project depends on, including geolocator, geocoding, flutter_contacts, flutter_sound, permission_handler, and url_launcher. Wait until the terminal shows a success message before moving to the next step.
Take your Android phone and go to Settings, then About Phone, and tap on Build Number seven times to enable Developer Options. Go back to Settings, open Developer Options, and turn on USB Debugging. Now connect the phone to your computer with a USB cable.
In the terminal, run:
flutter devices
Your phone should appear in the list. If it does not show up, try a different USB cable or check that the correct USB driver is installed for your device.
With your phone connected and detected, run:
flutter run
The first build takes about 2 to 3 minutes. After compilation is done, the app will install and open on your phone automatically.
When the app launches for the first time, it will ask for the following permissions one by one. Tap "Allow" on each one:
| Permission | Why It Is Needed |
|---|---|
| Location (Fine and Coarse) | To get GPS coordinates for the SOS alert SMS |
| Send SMS | To send emergency messages silently in the background |
| Read Contacts | To import emergency contacts from your phonebook |
| Microphone | To record audio automatically during SOS events |
| Phone | To support emergency call functionality |
Open the app and go to the Emergency Contacts screen. Tap the add button. You can type in a contact name and phone number, or tap the import option to pick a contact from your phone's existing contacts list. Add at least one contact before testing the SOS feature.
Go back to the home screen and tap the large SOS button. The app will do the following things automatically:
Tap the SOS button again to stop the emergency session and save the audio recording.
Open the Fake Call screen from the home menu. Enter any caller name and phone number you want to display. Choose a delay time such as 30 seconds or 1 minute. The countdown timer will start, and when it reaches zero, a realistic incoming call screen will appear. Tap Accept to see the active call screen with a running timer, or tap Decline to dismiss it.
When you are ready to submit the project, generate a release APK with this command:
flutter build apk --release
The APK file will be saved at:
build/app/outputs/flutter-apk/app-release.apk
You can transfer this APK to any Android phone and install it directly.
| Problem | Solution |
|---|---|
| SMS not sending | Check that SEND_SMS permission is granted. SMS only works on physical Android devices, not emulators. |
| Location showing as unavailable | Turn on GPS in your phone settings. Make sure the app has location permission and you are not indoors without GPS signal. |
| Audio recording not starting | Check microphone permission. Close any other app that might be using the microphone such as a voice recorder or call app. |
| flutter pub get fails | Make sure you have an active internet connection. Run flutter doctor to check if your Flutter installation is complete. |
| App crashes on launch | Run flutter clean followed by flutter pub get and then flutter run again. This clears old build files that might be causing conflicts. |
If you run into any issues or want someone to set this up on your machine, CodeAj Marketplace offers a one-on-one setup session via Google Meet or AnyDesk. An expert will install the project on your system, configure everything, and make sure it runs without errors. You can book a session at https://projects.codeaj.com/project-setup/
For complete project mentorship including code explanation, documentation, presentation preparation, and support until your final submission, visit https://projects.codeaj.com/mentorship/
Our team is here to assist you with installation and setup.