This is an Android application built using MVVM Clean Architecture with Jetpack Compose.
NOTE: This is a take-home project for interviwing purposes only.
- MVVM architecture for clean separation of concerns
- Clean Architecture for independent and testable layers
- Jetpack Compose for a modern and declarative UI
- Hilt for dependency injection
- Hilt ViewModel for simplified ViewModel creation
- Android Navigation for seamless app navigation
- Unit tests for core logic
- Integration tests for remote endpoint interaction
Project requirements (Link is not shared here. See email for details) Android Studio (latest version recommended) Java 19 (tested with Azul Zulu 19.0.2)
- Clone the repository:
git clone https://github.com/IDMCI/FetchRewardsProject.git
- Open the project in Android Studio.
- Run the app on an Android device or emulator with API level 35 or higher.
The project is organized following the clean architecture principles, with separate folders for:
- domain: Business logic independent of Android frameworks.
- data: Data access layer (repositories) with abstractions for local and remote data sources.
- di: Dependency injection configuration using Hilt.
- presentation: UI logic with Jetpack Compose and ViewModels.
The project includes unit tests for the domain and datasource layers and an integration test for the remote endpoint interaction.
![items_llist](https://private-user-images.githubusercontent.com/9327650/372285261-b3c1730b-cf24-4f57-91bf-6bf794f235d7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDg0ODcsIm5iZiI6MTczOTA0ODE4NywicGF0aCI6Ii85MzI3NjUwLzM3MjI4NTI2MS1iM2MxNzMwYi1jZjI0LTRmNTctOTFiZi02YmY3OTRmMjM1ZDcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDhUMjA1NjI3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MjkwM2U2NzJjYzBhNmQwYjU1ZWQ2MDQ1N2I1MWRjOWNmNzE4Mjk2MjE3MTgzNGIzZTkyZGJjYjI2NWMxM2UyNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.vpo7f15nJ18Dans-9LPFM3JkNk9Fs_q1HmK-0V-s7v8)