These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
- Clone the repo / or unzip the provided file.
cd Checkout
- The application runs on Android Studio
- Follow this link to build and run the app.
- This is app is build based on MVVM architecture enhanced with states and some modification toward the clean architecture which was inspired by uncle BOB while using DI and Coroutines.
- Layered multi-module app (data - domain - presentation)
- data: It contains all the data accessing and manipulating components(Database"Local in case needed" , Network - model - mappers - repository implementation).
- domain: It contains all the business logic components(UseCases - repository interfaces - domain models).
- presentation: View classes(Activity/Compose Screens - ViewModel).
-> Each module has it's own DI package to describe how this module dependencies been provided
- DI: Dagger Hilt .
- Asynchronous: Coroutine.
- Network: Retrofit.
- UI: Jetpack Compose.
- UnitTest: mockk - junit4 - kotlinFixture.
- Enhance the compose navigation code.
- Support multiple card types with showing icon to represent each type when user type the card number.
- E2E/ui test using Kaspresso.
- Add snapshot testing using paparazzi which doesn't require any physical device or emulator to run.
- Add ktlint gradle support.
- Github actions to build/run tests and generate release.