GuardianTrack is a native Android application developed with Kotlin for personal safety monitoring and incident management.
The application combines background monitoring, emergency contact management, offline-first synchronization and secure local data storage using modern Android development practices.
- ๐ก๏ธ Personal safety and incident monitoring
- ๐ฑ Native Android application built with Kotlin
- ๐จ Fall monitoring using a Foreground Service
- ๐ฅ Emergency contact management
- ๐พ Local incident storage with Room
- ๐ Offline-first data synchronization with WorkManager
- ๐ Battery status monitoring
- ๐ Automatic recovery and background task handling after device restart
- ๐ Secure storage for sensitive application data
- ๐ Incident data export to CSV
- ๐ Remote incident synchronization through REST API
GuardianTrack follows modern Android development practices with an MVVM architecture and dependency injection using Hilt.
The application uses a Single Activity architecture combined with the Android Navigation Component.
- MVVM โ Application architecture
- Hilt โ Dependency injection
- Room โ Local storage for incidents and emergency contacts
- DataStore โ User preferences
- EncryptedSharedPreferences โ Secure storage
- Foreground Service โ Continuous fall monitoring
- BroadcastReceiver โ BOOT_COMPLETED and BATTERY_LOW event handling
- WorkManager โ Offline-first background synchronization
- ContentProvider โ Secure emergency contact access
- MediaStore โ CSV export to device documents
- Kotlin
- Android SDK
- MVVM
- Hilt
- Room
- Navigation Component
- DataStore
- EncryptedSharedPreferences
- WorkManager
- Foreground Services
- ContentProvider
- MediaStore
- REST API
GuardianTrack uses WorkManager to manage background synchronization between locally stored incidents and the remote API.
This approach allows the application to continue operating when network connectivity is unavailable and synchronize data when connectivity becomes available.
The application implements secure data management through:
- Encrypted storage for sensitive information
- Secure ContentProvider access
- Local configuration excluded from version control
- Environment-specific API configuration
โ ๏ธ API keys and environment-specific configuration must never be committed to the repository.


