Complete MVP setup for Medify - Medicine Reminder & Tracker application with Clean Architecture, BLoC state management, and ObjectBox database.
com.medify
All packages installed and configured in pubspec.yaml
:
State Management:
flutter_bloc: ^8.1.6
- BLoC/Cubit patternequatable: ^2.0.7
- Value equalityDatabase:
objectbox: ^4.0.3
- Local NoSQL databaseobjectbox_flutter_libs: ^4.0.3
- Flutter bindingsbuild_runner: ^2.4.14
- Code generationobjectbox_generator: ^4.0.3
- ObjectBox code genDependency Injection:
get_it: ^8.0.3
- Service locatorNotifications:
flutter_local_notifications: ^18.0.1
timezone: ^0.10.0
permission_handler: ^11.3.1
UI & Utilities:
google_fonts: ^6.2.1
- Nunito fontintl: ^0.20.1
- Date/time formattingpath_provider: ^2.1.5
- File system pathspath: ^1.9.0
- Path manipulationlib/
├── core/
│ ├── constants/
│ │ ├── app_colors.dart ✅ Teal & Green color palette
│ │ ├── app_sizes.dart ✅ Spacing & sizing constants
│ │ └── app_strings.dart ✅ All string constants
│ ├── themes/
│ │ └── app_theme.dart ✅ Light/Dark themes with Nunito
│ ├── utils/
│ │ ├── date_time_utils.dart ✅ Date/time helpers
│ │ └── validators.dart ✅ Form validation
│ ├── widgets/
│ │ ├── custom_button.dart ✅ Reusable buttons
│ │ ├── custom_text_field.dart ✅ Text input
│ │ ├── empty_state.dart ✅ Empty state widget
│ │ └── loading_indicator.dart ✅ Loading widget
│ └── di/
│ └── injection_container.dart ✅ GetIt setup
├── data/
│ ├── datasources/
│ │ └── objectbox_service.dart ✅ ObjectBox initialization
│ ├── models/
│ │ ├── medicine_model.dart ✅ Medicine ObjectBox entity
│ │ └── medicine_log_model.dart ✅ Log ObjectBox entity
│ └── repositories/
│ ├── medicine_repository_impl.dart ✅ Medicine repo
│ └── medicine_log_repository_impl.dart ✅ Log repo
├── domain/
│ ├── entities/
│ │ ├── medicine.dart ✅ Medicine entity
│ │ └── medicine_log.dart ✅ Log entity with status enum
│ └── repositories/
│ ├── medicine_repository.dart ✅ Medicine interface
│ └── medicine_log_repository.dart ✅ Log interface
├── presentation/
│ ├── blocs/
│ │ ├── medicine/
│ │ │ ├── medicine_cubit.dart ✅ Medicine state management
│ │ │ └── medicine_state.dart ✅ Medicine states
│ │ └── medicine_log/
│ │ ├── medicine_log_cubit.dart ✅ Log state management
│ │ └── medicine_log_state.dart ✅ Log states
│ ├── pages/
│ │ └── home_page.dart ✅ Placeholder home page
│ └── widgets/
│ └── (page-specific widgets) ⏳ To be created
├── main.dart ✅ App entry with DI & BLoC setup
└── objectbox.g.dart ✅ Generated ObjectBox code
Medicine Entity/Model:
MedicineLog Entity/Model:
Medicine Repository:
MedicineLog Repository:
MedicineCubit:
MedicineLogCubit:
.gitignore
- Includes FVM, ObjectBox generated filesREADME.md
- Comprehensive project documentationPROJECT_STRUCTURE.md
- This fileobjectbox-model.json
- ObjectBox schemaMedicine List Screen
Add/Edit Medicine Screen
Medicine Card Widget
Today’s Schedule Screen
# Get dependencies
fvm flutter pub get
# Run ObjectBox code generation (after model changes)
fvm flutter pub run build_runner build --delete-conflicting-outputs
# Analyze code
fvm flutter analyze
# Run app
fvm flutter run
# Build iOS
fvm flutter build ios
# Build Android
fvm flutter build apk
#009688
(Teal)#4DB6AC
#00695C
#4CAF50
(Green)#EF5350
(soft red - missed)Status: Phase 1 Foundation Complete ✅ Next: Build UI screens and user flows Version: 1.0.0+1 Last Updated: 2025-10-14