SafeShield is a comprehensive personal safety application built with Flutter that empowers users to stay safe and informed about their surroundings. The app provides real-time crime data visualization, location-based safety insights, and secure user management features.
- 🗺️ Interactive Crime Map: Visualize crime zones and incidents on Google Maps
- 🔐 Secure Authentication: Firebase-powered user registration and login
- ✉️ Email Verification: Secure account verification process
- 👤 Profile Management: Manage your personal safety preferences
- 📱 Cross-Platform: Works on Android, iOS, Web, Windows, macOS, and Linux
- 🔔 Notifications: Stay alerted about safety concerns in your area
- 📍 Location Services: GPS-based safety recommendations
- 📊 Crime Data Analysis: Access comprehensive crime statistics and trends
Before you begin, ensure you have the following installed:
- Flutter SDK (version 3.7.0 or higher) - Installation Guide
- Dart SDK (included with Flutter)
- Git for version control
- IDE: Android Studio, VS Code, or IntelliJ IDEA
- Platform-specific tools:
- For Android: Android Studio with Android SDK
- For iOS: Xcode (macOS only)
- For Web: Chrome browser
This app uses Firebase for authentication and data storage. You'll need to:
- Create a Firebase project at Firebase Console
- Enable Authentication and Firestore Database
- Download configuration files:
google-services.jsonfor Android (place inandroid/app/)GoogleService-Info.plistfor iOS (place inios/Runner/)
Important: API keys are kept secure and not committed to version control.
-
Set up Google Maps API Key:
# Copy the template file Copy-Item "lib/config/api_keys_template.dart" "lib/config/api_keys.dart" # Edit the file and add your API key notepad "lib/config/api_keys.dart"
-
Get your API key from Google Cloud Console
-
Enable required APIs: Maps SDK, Places API, Directions API
📋 Detailed setup instructions: See API_SETUP.md for complete configuration guide.
-
Clone the repository:
git clone https://github.com/SafeShield2025/safeshieldproject.git cd safeshieldproject
-
Install dependencies:
flutter pub get
-
Verify Flutter installation:
flutter doctor
-
Run the app:
# For default device flutter run # For specific platforms flutter run -d chrome # Web browser flutter run -d android # Android device/emulator flutter run -d windows # Windows desktop ```## 📁 Project Structure
safeshieldproject/
├── lib/ # Main Dart source code
│ ├── main.dart # App entry point
│ ├── login.dart # Login screen
│ ├── register.dart # Registration screen
│ ├── home_page.dart # Main dashboard
│ ├── map_page.dart # Crime map visualization
│ ├── profile_page.dart # User profile management
│ ├── email_verification.dart # Email verification flow
│ └── GMAPAPI.dart # Google Maps integration
├── assets/ # App resources
│ ├── crime_data.json # Crime statistics data
│ └── icon/ # App icons
├── android/ # Android-specific code
├── ios/ # iOS-specific code
├── web/ # Web-specific code
├── windows/ # Windows-specific code
├── macos/ # macOS-specific code
├── linux/ # Linux-specific code
└── test/ # Unit and widget tests
- Framework: Flutter & Dart
- Backend: Firebase (Authentication, Firestore)
- Maps: Google Maps API
- Location: Geolocator & Geocoding
- Notifications: Flutter Local Notifications
- State Management: Built-in Flutter state management
- Get an API key from Google Cloud Console
- Enable Maps SDK for Android/iOS
- Add the API key to your platform-specific configuration files
The app requires the following permissions:
- Location access (for safety recommendations)
- Internet access (for real-time data)
- Notification permissions (for safety alerts)
We welcome contributions to SafeShield! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Flutter/Dart best practices
- Write unit tests for new features
- Update documentation as needed
- Ensure code passes all existing tests
- Issues: Report bugs or request features via GitHub Issues
- Discussions: Join community discussions in the Discussions tab
- Email: Contact the maintainers for urgent matters
This project is licensed under the MIT License - see the LICENSE file for details.
- Firebase team for authentication services
- Google Maps team for mapping capabilities
- Flutter community for amazing packages and support
Made with ❤️ for personal safety and community well-being