This is a Flutter project designed to help users find and manage exercises.
Before you begin, ensure you have met the following requirements:
- Flutter 3.16.5
- Dart 3.2.3
This project follows the Model-View-ViewModel (MVVM) architecture, which facilitates a clear separation of concerns by dividing the application into three main components:
-
Model: The core data layer, including business logic and data models like ExerciseModel and AlertModel, managed through services such as ApiService and HiveService.
-
View: The visual layer, made up of UI components that display data to users. It updates reactively based on changes in the ViewModel.
-
ViewModel: The bridge between Model and View, it manages UI logic, state, and user interactions, facilitating a reactive data flow to the View.
The project is organized as follows:
lib/
├── main.dart
├── model/
├── services/
├── utils/
├── view/
└── viewmodel/
model/
: Contains the data models used in the app.services/
: Includes services for API communication and local storage.utils/
: Utility classes such as API client setup, interceptors, and dependency injection modules.view/
: UI components, including pages and widgets.viewmodel/
: ViewModels that manage the state for the UI.
To get a local copy up and running, follow these simple steps:
- Clone the repository:
git clone https://github.com/talhakerpicci/exercise-finder
cd exercise-finder
- Copy the .env.example file to a new file named .env and enter your api key.
cp .env.example .env
- Install dependencies:
flutter pub get
- Generate code:
dart run build_runner build --delete-conflicting-outputs
- Launch the App:
flutter run
Ensure to enable touch feedback in the Android settings for the best user experience.
For a full app walkthrough, check out the demo video below: