Thank you for your interest in contributing to Loanzo! We welcome contributions from developers, security researchers, financial engineers, and designers.
To maintain code quality, security standards, and architectural consistency, please review the guidelines below before submitting a pull request.
We are committed to providing a welcoming, constructive, and harassment-free environment for all contributors. Respectful collaboration, rigorous technical review, and professional communication are expected at all times.
- Android Studio Ladybug (2024.2.1+) or higher
- JDK 17 (Temurin or OpenJDK recommended)
- Android SDK Platform 34 (API 34) & Build Tools
- Git
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/your-username/loanzo.git cd loanzo - Open the project in Android Studio and let Gradle sync complete.
- Verify your local setup builds cleanly:
./gradlew assembleDebug
Always create a feature or bugfix branch off main:
feature/<feature-name>(e.g.,feature/upi-autopay-ledger)fix/<bug-description>(e.g.,fix/biometric-button-padding)refactor/<scope>(e.g.,refactor/vault-crypto-engine)docs/<doc-topic>(e.g.,docs/architecture-update)
- Language: Kotlin 2.0+ with modern idioms.
- UI Toolkit: 100% Jetpack Compose using Material 3 and the design system in
com.loanzo.app.ui.theme. - Architecture: Single Activity (
MainActivity), unidirectional data flow withViewModel, KotlinStateFlow, and Room Database DAOs. - Dependency Injection: Dagger Hilt (
@HiltViewModel,@Inject,@Singleton). - Text & Layout: Always enforce
maxLines = 1,softWrap = false, andoverflow = TextOverflow.Ellipsisfor chips, metric tiles, and badges to prevent mid-word layout wrapping. - Security & Privacy: Never commit private API keys, service account JSON credentials with production secrets, or unmasked biometric data.
Before opening a pull request, ensure all checks pass:
./gradlew compileDebugKotlin
./gradlew testDebugUnitTest
./gradlew assembleDebug- Push your branch to your fork:
git push origin feature/your-feature-name
- Open a Pull Request against the
mainbranch. - Fill out the Pull Request Template completely, detailing:
- Problem statement & summary of changes
- Impacted components (Data / Domain / UI / Backend)
- Testing steps and verification evidence
- Link any related issues (
Fixes #123).
Please do NOT file public GitHub issues for security vulnerabilities. Review our Security Policy for responsible disclosure guidelines.