A comprehensive Android application built with Jetpack Compose designed for real-time disaster reporting, tracking, and community coordination. The app leverages open-source mapping and local persistence to provide a reliable tool for emergency situations.
- Interactive Incident Map: Real-time visualization of disaster incidents (Fire, Flood, Earthquake, etc.) using OSMDroid.
- Role-Based Access Control:
- Admin: Full system oversight, user management, and detailed audit logs.
- Barangay: localized management and verification of incidents within their jurisdiction.
- User: Report incidents by pinning locations, confirm reports from others, and manage profiles.
- Incident Reporting: Easy-to-use interface for reporting disasters with severity levels and descriptions.
- Community Chat: Real-time chat system for community-wide coordination during disasters.
- Verification System: Community-driven "voting" to confirm the validity of reported incidents.
- Audit Logging: Comprehensive tracking of all system actions (logins, reports, updates) for transparency.
- Local Persistence: Full offline capability for viewing previously loaded data using Room SQLite database.
- Language: Kotlin
- UI Framework: Jetpack Compose
- Local Database: Room (SQLite)
- Maps: OSMDroid (OpenStreetMap)
- Image Loading: Coil
- Architecture: MVVM (Model-View-ViewModel) logic with Repository pattern.
- Design System: Material Design 3
Report incidents, view real-time map, confirm reports, and engage in discussions
Manage local incidents, update status, assign severity, and coordinate response
Complete system control, user management, audit logs, and comprehensive analytics
Community panel for Voting, Public Chat and Announcements and Account Settings
- Android Studio Ladybug (or newer)
- JDK 17
- Android SDK 24+ (Android 7.0+)
- Clone the repository:
git clone https://github.com/yourusername/disastermanagement.git
- Open in Android Studio:
- Launch Android Studio.
- Select
Openand navigate to the cloned project folder.
- Sync Gradle:
- Wait for the project to finish indexing and sync Gradle files.
- Permissions:
- The app requires Location permissions to show your position on the map and report incidents.
- Run:
- Connect an Android device or start an emulator and click the
Runbutton.
- Connect an Android device or start an emulator and click the
For testing purposes, the app is pre-populated with the following administrative accounts. For standard user access, please use the registration feature.
| Role | Password | |
|---|---|---|
| Admin | admin@test.com |
password123 |
| Barangay | barangay@test.com |
password123 |
| Standard User | Create via Register | User defined |
- Open the app and navigate to the Login screen.
- Tap on Register or Sign Up.
- Fill in your details and click Register.
- You can then log in with your newly created credentials to access user-specific features like reporting incidents.
ui/screens/: Contains all Compose-based screens (Main, Login, User Management, etc.).data/database/: Room database configuration, Entity definitions (Incident, User, AuditLog, Chat), and DAOs.utils/: Helper classes for Audit Logging and Location services.ui/theme/: Material 3 theme configurations.
- Franz Geoff Rivera
- Michael Ainjelo Maglaya
- Luisito Angelo Ocray
- Djanaisah Benito
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built with β€οΈ for disaster preparedness and community safety.