A comprehensive Flutter application for maritime disaster management, enabling citizens to report hazards and officials to manage emergency responses in real-time.
- Report Hazards: Submit maritime incidents with location, photos, and severity levels
- Live Hazard Map: Interactive map showing all active reports with color-coded severity markers
- Real-time Status Tracking: Track your submitted reports from pending to resolution
- Community Reports: View recent hazards reported by other citizens
- AI Assistant: Get AI-powered guidance during emergencies
- Emergency SOS: Quick access to emergency services
- News Feed: Stay updated with maritime safety news
- Real-time Dashboard: Live overview of all reported incidents with statistics
- Reports Management: Review, verify, update status, and manage hazard reports
- Analytics: Data visualization and trend analysis
- Alert Management: Monitor and respond to critical situations
- Profile Management: Secure official accounts with role-based access
Beautiful ocean-themed UI with:
- Gradient backgrounds and modern card designs
- Real-time data updates via Firebase streams
- Interactive maps with custom markers
- Smooth animations and transitions
- Color-coded severity indicators (Critical, High, Medium, Low)
- Enhanced navigation with floating action buttons
- Flutter SDK (3.0 or higher)
- Dart SDK
- Android Studio / VS Code
- Firebase account
- Clone the repository
git clone https://github.com/yourusername/Tarang.git
cd Tarang- Install dependencies
flutter pub get-
Set up Firebase
- Create a Firebase project at console.firebase.google.com
- Add Android/iOS apps to your Firebase project
- Download
google-services.json(Android) andGoogleService-Info.plist(iOS) - Place config files in appropriate directories
- Enable Authentication (Email/Password) and Firestore Database
-
Configure Firestore Rules
- Copy rules from
firestore.rulesto your Firebase Console - Deploy the rules to enable proper security
- Copy rules from
-
Run the app
flutter run- Firebase Suite:
firebase_core,firebase_auth,cloud_firestore,firebase_storage - Maps:
flutter_map,latlong2,geolocator - UI:
cached_network_image,intl - Media:
image_picker,file_picker
See pubspec.yaml for complete dependency list.
lib/
βββ core/ # Constants, styles, colors
βββ models/ # Data models (HazardReport, User, etc.)
βββ screens/ # UI screens
β βββ auth/ # Login, signup screens
β βββ citizen/ # Citizen features (home, report, profile)
β βββ official/ # Official features (dashboard, management)
β βββ common/ # Shared screens (intro, role selection)
βββ services/ # API and business logic
βββ widgets/ # Reusable components
βββ live_osm_map.dart # Interactive map component
Two role-based authentication systems:
- Email/password registration
- Profile with personal information
- Submit and track reports
- Pre-configured official accounts
- Interactive OpenStreetMap integration
- Color-coded markers by severity:
- π΄ Critical
- π High
- π‘ Medium
- π’ Low
- Tap markers to view report details
- Current location tracking
- Real-time updates as new reports come in
- Citizen submits report with disaster type, location, severity, description, and photo
- Status: Pending - Awaiting official review
- Status: In Progress - Official is working on it
- Status: Resolved - Issue has been addressed
- Citizen can submit new report once previous one is resolved
flutter test# Android APK with optimization
flutter build apk --release --split-per-abi --obfuscate --split-debug-info=./debug-info
# Android App Bundle (recommended for Play Store)
flutter build appbundle --release --obfuscate --split-debug-info=./debug-info
# iOS
flutter build ios --release- Enable code shrinking in
android/app/build.gradle.kts - Use app bundles for 40-50% size reduction
- Optimize images (use WebP format)
- Remove unused dependencies
- Authentication: Enable Email/Password sign-in method
- Firestore Database: Create database in production mode
- Storage: Enable Firebase Storage for image uploads
- Security Rules: Deploy the rules from
firestore.rules
users: User profiles and rolesreports: Hazard reports with location, images, status
All data uses Firebase streams for instant synchronization between citizens and officials.
Citizens see real-time status updates without manual refresh when officials change report status.
Query reports by status, severity, and geographic location.
- β Android
- β iOS
- β Web (with limitations on location services)
- β Windows (development)
Contributions are welcome! Please feel free to submit a Pull Request.
- @ArushRastogi47 - Project Developer
This project is licensed under the MIT License.
Built with π for Maritime Safety
Note: This is an educational project demonstrating Flutter, Firebase, and real-time data management for disaster response systems.