Eminfo is an offline-first Android application designed to provide first responders with instant access to critical medical and contact information. Built with modern Android technologies, it prioritizes speed, privacy, and accessibility, ensuring that life-saving data is available when it matters most—even without an internet connection.
- Offline Storage: All data is stored locally on the device using Room Database. No internet connection is required, ensuring reliability in remote areas and total user privacy.
- Comprehensive Profile: detailed fields for:
- Personal Info: Name, DOB, Blood Type, Height.
- Medical Info: Allergies, Medical Conditions, Current Medications.
- Physician & Insurance: Contact details for primary care and insurance policy information.
- Emergency QR Code: Generates a scannable QR code containing selected medical details.
- Customizable: Users can choose which fields to include in the QR code.
- Shareable: detailed options to share the image or save it to the gallery for printing or lock screen use.
- Quick Access Widget: (In progress) Home screen usage for instant visibility.
- Emergency Contacts: Dedicated section for primary emergency contacts.
- Modern UI/UX: Built entirely with Jetpack Compose and Material 3, featuring a fluid, responsive design with "Hero" headers and intuitive navigation.
This project leverages the latest modern Android development tools and libraries:
- Language: Kotlin
- UI Toolkit: Jetpack Compose (Material 3)
- Architecture: MVVM (Model-View-ViewModel)
- Data Storage: Room Persistence Library
- Navigation: Jetpack Navigation Compose
- QR Generation: ZXing ("Zebra Crossing")
- Asynchronous Processing: Kotlin Coroutines & Flow
- Dependency Injection: (Planned/In-progress - currently manual or implicit via ViewModels)
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Android Studio Iguana or newer.
- JDK 17 or higher (usually bundled with Android Studio).
- Android SDK API Level 34 (UpsideDownCake).
-
Clone the repository
git clone https://github.com/ChrisQuint0/Eminfo.git cd Eminfo -
Open in Android Studio
- Launch Android Studio ->
File->Open-> Select theEminfodirectory.
- Launch Android Studio ->
-
Sync Project with Gradle Files
- Click the "Sync Project with Gradle Files" button (elephant icon) or use
File->Sync Project with Gradle Files.
- Click the "Sync Project with Gradle Files" button (elephant icon) or use
-
Run the App
- Connect an Android device or start an Emulator.
- Click the Run button (green play icon) or press
Shift + F10.
The app follows the recommended App Architecture Guide:
- UI Layer: Composable functions (
ProfileScreen,QRCodeScreen, etc.) that observe state from ViewModels. - ViewModel: Manages UI state (
ProfileViewModel) and communicates with the Data Layer. - Data Layer: Repositories and Data Sources (Room DAO) that handle data operations.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- 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 safety and peace of mind.
