Farm App is a basic application designed to demonstrate the principles of clean architecture. The app features a well-structured codebase with distinct layers: domain, data, and UI. It utilizes Dagger Hilt for dependency injection and Room for local database management.
- Register farmers along with their crop types.
- View a list of all registered farmers.
The application is structured in three main layers:
- Domain Layer: Contains business logic and application rules. It defines use cases and models.
- Data Layer: Manages data sources, including Room database and any remote data sources.
- UI Layer: Responsible for presenting data to the user and handling user interactions.
- Kotlin: Programming language for Android development.
- Dagger Hilt: Dependency injection framework for Android.
- Room: SQLite database for local data storage.
- Coroutines: For asynchronous programming.
The application includes unit tests to ensure the functionality of critical components:
- Validation Tests: Verifying that input validation logic for farmer registration works correctly.
- ViewModel Tests: Testing the behavior of the
FarmersViewModelin response to various states and user inputs. - Interactor Tests: Ensuring that the
RegisterFarmerInteractorcorrectly validates farmer registration data and integrates with the repository.
- Android Studio
- Kotlin SDK
- Gradle
- Clone the repository:
git clone https://github.com/jayhymn/farmapp.git







