Medi-Prompt is a modern Android application designed to help users manage their medication schedules efficiently. The app provides timely reminders for medication intake, offers an AI assistant for medication-related queries, and includes a user profile section for managing personal medical information.
- Create and manage medication alarms with custom titles and instructions
- Set precise time schedules for medication intake
- Receive notifications when it's time to take medication
- Elegant swipe-to-delete functionality with animations
- Chat with an AI assistant about medication questions
- Get information about dosage, side effects, and interactions
- Modern chat interface with avatar indicators and smooth animations
- Store personal medical information (blood type, allergies, emergency contacts)
- Customize notification preferences
- Manage app settings and privacy options
Medi-Prompt follows the Model-View-ViewModel (MVVM) architectural pattern, which provides a clean separation of concerns:
- Data Classes:
Alarm.kt,MessageModel.kt - Repository Pattern:
AlarmRepository.ktinterface withAlarmRepoImpl.ktimplementation - Local Database: Room database with
AlarmDao.ktfor data access operations
- UI Components: Built using Jetpack Compose for a modern, declarative UI
- Screen Composables:
HomeScreen.kt,AiAssistantPage.kt,ProfilePage.kt - UI Elements: Customized composables like
AlarmItem.kt,MessageRow.kt
- ViewModels:
AlarmActivityViewModel.kt,ChatViewModel.kt - State Management: Using StateFlow and MutableState for reactive UI updates
- Business Logic: Handling data operations and UI state management
- Used Dagger Hilt for dependency injection (
AlarmDiModule.kt) - Provides singleton instances for repositories, database, and other dependencies
- Implemented alarm scheduling using
AlarmManagerwithAlarmScheduler.ktinterface - Created
AlarmReceiver.ktfor handling alarm notifications in the background
- Set up the Android project with Kotlin and Jetpack Compose
- Implemented MVVM architecture with Room database for local storage
- Created basic UI structure for the three main screens
- Implemented core alarm functionality with proper scheduling
- Refined UI components with Material Design 3 principles
- Added animations for improved user experience
- Implemented swipe-to-delete functionality with interactive feedback
- Created responsive layouts for different screen sizes
- Developed chat interface for AI interactions
- Implemented message exchange system
- Styled chat bubbles and input fields for better readability
- Added avatar indicators to distinguish between user and AI messages
- Implemented user profile UI with medical information sections
- Added settings toggles and preference management
- Applied consistent styling across the application
- Enhanced accessibility features and optimized performance
- Language: Kotlin
- UI Framework: Jetpack Compose
- Architecture: MVVM (Model-View-ViewModel)
- Database: Room Persistence Library
- Dependency Injection: Dagger Hilt
- Concurrency: Kotlin Coroutines & Flow
- Scheduling: Android AlarmManager
- Animation: Jetpack Compose Animation APIs
com.aniruddha81.mediprompt/
βββ alarm/ # Alarm scheduling logic
βββ data/ # Data handling
β βββ local/ # Local database implementation
β βββ repository/ # Repository pattern implementation
βββ di/ # Dependency injection modules
βββ models/ # Data models and entities
βββ pages/ # UI screens and components
β βββ aiAsstPage/ # AI Assistant page components
β βββ alarmPage/ # Alarm/reminder page components
β βββ profilePage/ # User profile page components
βββ receiver/ # Broadcast receivers for alarms
βββ services/ # Application services
βββ ui/ # Theme and styling
β βββ theme/
βββ viewModels/ # ViewModels for each feature
βββ AlarmApp.kt # Application class
βββ Constants.kt # App-wide constants
βββ MainActivity.kt # Entry point of the application
βββ MainScreen.kt # Main navigation container
- Android Studio Arctic Fox or higher
- Android SDK 21+
- Kotlin 1.5+
- Clone this repository
- Open the project in Android Studio
- Sync Gradle files
- Run the app on an emulator or physical device
This project is licensed under the MIT License - see the LICENSE file for details.
Aniruddha - GitHub Profile








