Medify - Medicine Reminder & Tracker
Never miss your medicine with Medify, a simple and accessible medicine reminder app designed for everyone, especially elderly users.
β¨ Status: Ready for Play Store Submission! π
Current Version: 1.0.0
Status: β
Production Ready with Professional UI & Branding
Whatβs Working
- β
Complete Medicine CRUD operations
- β
Medicine intake timing (before/after food, etc.)
- β
Todayβs Schedule with progress tracking
- β
Local notifications (iOS & Android, foreground & background)
- β
Onboarding flow for first-time users
- β
Settings page with theme & notification preferences
- β
Beautiful Teal-themed UI with Nunito typography
- β
Todayβs Summary Card with gradient background
- β
Accessibility-first design (44px tap targets, high contrast)
- β
Light & Dark mode support with persistence
- β
Native splash screen with Medify branding
- β
Custom app icon and notification icon
- β
Professional Android branding
π Documentation
Quick Links
Play Store Deployment Guides
All deployment documentation is in docs/
:
Technical Documentation
π― Features
- Medicine Management: Add, edit, and delete medications easily with intake timing options
- Smart Reminders: Get timely notifications for all your medications (foreground & background)
- Todayβs Schedule: View all doses for today with progress tracking
- Progress Visualization: See your adherence with progress bars and percentages
- Todayβs Summary Card: Beautiful gradient card showing next dose and progress
- Onboarding Flow: Friendly 3-screen introduction for first-time users
- Settings & Preferences: Customize theme, notifications, and snooze duration
- Accessibility: Large buttons (56px), clear typography, and high contrast
- Dark Mode: Full dark mode support with Teal color scheme and theme persistence
- Native Splash Screen: Professional branded splash screen (light & dark)
- Offline First: All data stored locally with ObjectBox - 100% privacy-focused
ποΈ Architecture
This project follows Clean Architecture principles with clear separation of concerns:
lib/
βββ core/
β βββ constants/ # App-wide constants (colors, sizes, strings)
β βββ themes/ # Theme configuration with Nunito font
β βββ utils/ # Utility functions (date/time, validators)
β βββ widgets/ # Reusable UI components
β βββ di/ # Dependency injection setup
βββ data/
β βββ datasources/ # ObjectBox service
β βββ models/ # ObjectBox data models
β βββ repositories/ # Repository implementations
βββ domain/
β βββ entities/ # Business entities
β βββ repositories/ # Repository interfaces
β βββ usecases/ # Business logic use cases
βββ presentation/
βββ blocs/ # BLoC/Cubit state management
βββ pages/ # App screens
βββ widgets/ # Page-specific widgets
π οΈ Tech Stack
- Flutter SDK: 3.35.5
- State Management: BLoC/Cubit pattern
- Local Database: ObjectBox
- Dependency Injection: GetIt
- Local Notifications: flutter_local_notifications
- Font: Nunito (via Google Fonts)
π¦ Dependencies
Core
flutter_bloc
- State management
equatable
- Value equality
get_it
- Service locator
Data
objectbox
- Local database
objectbox_flutter_libs
- ObjectBox Flutter support
path_provider
- File system paths
UI
google_fonts
- Nunito font family
cupertino_icons
- iOS-style icons
Utilities
intl
- Internationalization and date formatting
flutter_local_notifications
- Push notifications
timezone
- Timezone support
permission_handler
- App permissions
shared_preferences
- Local preferences storage
build_runner
- Code generation
objectbox_generator
- ObjectBox entity generation
flutter_native_splash
- Splash screen generation
flutter_launcher_icons
- App icon generation
π Getting Started
Prerequisites
- Flutter SDK 3.9.2 or higher
- FVM (Flutter Version Manager) - recommended
- Xcode (for iOS development)
- Android Studio (for Android development)
Installation
-
Clone the repository
git clone <your-repo-url>
cd medify
-
Use FVM (if installed)
-
Install dependencies
fvm flutter pub get
# or without FVM
flutter pub get
-
Run ObjectBox code generation
fvm flutter pub run build_runner build --delete-conflicting-outputs
-
Run the app
fvm flutter run
# or without FVM
flutter run
π¨ Design System
Colors (Per Design Spec)
- Primary Teal 500: #14B8A6 - Main brand color
- Primary Teal 400: #2DD4BF - Interactive/Light states
- Primary Teal 600: #0D9488 - Pressed states
- Success Green: #10B981 - Taken medications
- Warning Amber: #F59E0B - Upcoming/Pending reminders
- Error Red: #EF4444 - Missed doses
- Info Blue: #3B82F6 - General information
Typography (Per Design Spec)
- Font Family: Nunito (via Google Fonts)
- H1: 28px Bold - Page titles
- H2: 24px SemiBold - Section headers
- H3: 20px SemiBold - Card titles
- Body Large: 18px Regular - Important text
- Body Medium: 16px Regular - Primary content
- Body Small: 14px Regular - Secondary text
- Caption: 12px Regular - Labels, hints
Spacing (4px base unit)
- 4px: Micro spacing (icons and text)
- 8px: Small spacing (related elements)
- 16px: Medium spacing (sections, screen margins)
- 24px: Large spacing (major sections)
- 32px: Extra large spacing (page tops/bottoms)
Accessibility
- Minimum tap target: 44px Γ 44px
- Button height: 56px
- High contrast ratios: 4.5:1 for normal text, 3:1 for large
- Border radius: Cards 16px, Buttons 12px, Inputs 8px
- VoiceOver/TalkBack: Fully compatible
π± Development Phases
Phase 1: Core MVP β
COMPLETE!
Phase 2: Enhanced Features π NEXT UP
Phase 3: Polish & Release β
READY!
π§ͺ Testing
# Run tests
flutter test
# Run tests with coverage
flutter test --coverage
π Code Generation
When you modify ObjectBox entities, run:
flutter pub run build_runner build --delete-conflicting-outputs
π€ Contributing
This is a personal project, but suggestions and feedback are welcome!
π License
This project is private and not licensed for public use.
π€ Author
Sumit Pal
Built with β€οΈ using Flutter