CreditApp is a modern Android application demo designed for digital credit applications. It features a complete end-to-end flow from application listing to a multi-step submission process with simulated document verification and automated scoring results.
- Dashboard / Application List: View all existing loan applications in a clean, card-based RecyclerView with status and risk level indicators.
- Multi-Step Form Flow: A seamless 4-step process for submitting new credit applications:
- Formulir: Interactive form with real-time validation.
- Verifikasi Dokumen: Simulated OCR and document authenticity check.
- Processing: Automated background scoring simulation.
- Results: Detailed scoring breakdown including risk indices and system recommendations.
- Modern UI/UX:
- Full Edge-to-Edge support for a truly modern feel.
- Jetpack Navigation Component for robust fragment transitions.
- Material Design 3 components.
- Robust Architecture:
- Single Activity Architecture.
- Clean Architecture principles with clear separation of Data, Domain, and UI layers.
- Shared ViewModel for consistent state management across the form flow.
The application integrates with two primary backend endpoints to manage the credit lifecycle.
- Endpoint:
GET /loan-applications - Purpose: Retrieves a paginated list of loan applications. This is used to populate the main dashboard, showing the customer name, requested amount, current status, and risk level.
- Sample Response:
{
"status": "success",
"message": null,
"data": {
"content": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"applicationNumber": "APP-101",
"customerName": "John Doe",
"requestedAmount": 50000000,
"status": "APPROVED",
"riskLevel": "LOW",
"submittedAt": "2026-05-01T10:00:00Z"
}
],
"pageNumber": 0,
"pageSize": 10,
"totalElements": 1,
"totalPages": 1
}
}- Endpoint:
POST /{id}/submit - Purpose: Submits the final credit application data for automated scoring. It triggers the background risk evaluation and returns the detailed scoring result.
- Sample Response:
{
"traceId": "uat-1714275000000-ab12cd",
"evaluatedAt": "2026-04-28T02:00:00.000Z",
"result": {
"kolektibilitas": 1,
"kolektibilitasLabel": "Lancar",
"internalScore": 93,
"breakdown": {
"paymentHistory": 82,
"income": 100,
"debtToIncome": 100,
"dtiRatio": 1.0
},
"recommendation": "Sangat baik: profil pembayaran lancar, layak diprioritaskan."
}
}- Language: Kotlin
- Dependency Injection: Hilt
- Networking: Retrofit + Gson
- Coroutines & Flow: For asynchronous operations and reactive UI updates.
- Jetpack Components:
- Navigation Component
- ViewModel & LiveData/Flow
- ViewBinding
- Activity & Fragment KTX
- Build System: Gradle Kotlin DSL + Version Catalog (libs.versions.toml)
- Clone the repository:
git clone git@github.com:blasiusneri/CreditApp.git
- Open the project in Android Studio (Ladybug or newer).
- Sync the project with Gradle files.
- Run the app on an Emulator or physical device.
- The project uses a Mock Repository implementation by default. This allows you to experience the full flow without needing a live backend.
- To connect to a real server, simply update the
BASE_URLinNetworkModule.ktand revert the mock implementation inKreditRepositoryImpl.ktto use theLoanService.
- Loan List
- Loan From Step 1
- Loan From Step 2
- Loan From Step 3
- Loan From Step 4
Developed by Blasius Neri