ProtectMe is a personal safety and medical emergency application designed to ensure the safety and well-being of users. The app integrates IoT (Internet of Things) technology with a mobile application to provide real-time location tracking, emergency alerts, and heart rate monitoring. It is developed for both Android and iOS platforms using Flutter and Dart, with backend services powered by Firebase.
The app allows users to:
- Send emergency alerts to predefined contacts with their real-time location.
- Monitor heart rate using IoT sensors.
- Locate nearby emergency services such as hospitals, police stations, pharmacies, and medical clinics.
- Provide detailed directions and transportation options to reach these services.
In today's world, personal safety is a major concern, especially for vulnerable individuals such as women, children, and the elderly. ProtectMe aims to provide a reliable and portable solution for personal safety and medical emergencies. The app combines IoT devices with a mobile application to offer real-time tracking, emergency alerts, and heart rate monitoring.
The app is designed to:
- Send instant alerts to trusted contacts in case of danger.
- Continuously monitor the user's heart rate and detect anomalies.
- Provide real-time location sharing with emergency contacts.
- Recommend nearby emergency services and provide directions.
- Emergency Alert: Send instant alerts to predefined contacts with the user's real-time location.
- Heart Rate Monitoring: Continuously monitor the user's heart rate using IoT sensors.
- Nearby Services: Locate nearby hospitals, police stations, pharmacies, and medical clinics.
- Real-Time Location Tracking: Share the user's real-time location with emergency contacts.
- Contact Management: Add, edit, or remove emergency contacts.
- Profile Management: Update personal information and view health metrics (e.g., heart rate, steps).
- Real-Time Location Tracking: View the primary user's real-time location on a map.
- Emergency Notifications: Receive instant alerts when the primary user triggers an emergency.
- Contact Management: View and manage the list of users who have added them as emergency contacts.
- Flutter: For cross-platform mobile app development.
- Dart: The programming language used for Flutter.
- Firebase: For user authentication, real-time database, and cloud storage.
- Firestore: NoSQL database for real-time data synchronization.
- Foursquare API: For locating nearby emergency services (hospitals, police stations, etc.).
- Google Maps API: For real-time location tracking and directions.
- Arduino UNO: For heart rate monitoring and data collection.
- Raspberry Pi 4: For GPS tracking and emergency alert triggering.
- GPS Module: For real-time location tracking.
- Heart Rate Sensor: For continuous heart rate monitoring.
- LCD Display: For displaying heart rate data.
- Java: For Android app development.
- Python: For IoT device programming (GPS and button press).
- C++: For Arduino programming (heart rate sensor).
The app follows the MVC (Model-View-Controller) architecture:
- Model: Handles data and business logic (e.g., user data, heart rate, location).
- View: Manages the user interface (UI) and displays data to the user.
- Controller: Acts as an intermediary between the Model and View, processing user interactions and updating the UI.
- IoT Devices: Arduino and Raspberry Pi for heart rate monitoring and GPS tracking.
- Mobile App: Flutter-based app for user interaction and data visualization.
- Backend: Firebase for real-time data storage and synchronization.
- Flutter SDK installed on your machine.
- Android Studio or Xcode for running the app.
- Firebase account for backend services.
- Arduino IDE and Raspberry Pi setup for IoT components.
- Clone the repository:
git clone https://github.com/your-username/protectme.git
- Navigate to the project directory:
cd protectme
- Install dependencies:
flutter pub get
- Configure Firebase:
- Create a Firebase project and add the
google-services.json
file to theandroid/app
directory. - Enable Firebase Authentication, Firestore, and Realtime Database.
- Create a Firebase project and add the
- Run the app:
flutter run
- Sign Up/Login: Create an account or log in using your email and password.
- Add Emergency Contacts: Add trusted contacts who will receive emergency alerts.
- Trigger Emergency Alert: Press the emergency button to send an alert with your real-time location.
- Monitor Heart Rate: Use the IoT device to monitor your heart rate in real-time.
- Find Nearby Services: Locate nearby hospitals, police stations, pharmacies, and medical clinics.
- Track Location: Share your real-time location with emergency contacts.
The folder Démo contains demo videos showcasing the app's features
- AARAB YOUSRA
- ZARKTOUNI ISMAIL
- OURGANI CHAIMAA
- ElKAMOUNI HAJAR
This project is licensed under the MIT License. See the LICENSE file for details.
- Firebase Documentation
- Foursquare API Documentation
- Google Maps API Documentation
- Arduino Documentation
- Raspberry Pi Documentation
For any questions or issues, please contact the development team.