Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 3.5 KB

File metadata and controls

63 lines (47 loc) · 3.5 KB

Contributing to UPI Budget Tracker

First off, thank you for considering contributing to UPI Budget Tracker! It is people like you who make open source a wonderful place to learn, inspire, and create.

To maintain a healthy and productive community, please read and follow these guidelines.


Code of Conduct

By participating in this project, you agree to abide by our Code of Conduct. Please report any unacceptable behavior to the project maintainers.

How Can I Contribute?

1. Reporting Bugs

  • Search the existing Issues before opening a new one to see if the bug has already been reported.
  • If you find a new bug, open a new Issue using the Bug Report template.
  • Provide a clear description, steps to reproduce, expected behavior, actual behavior, and system environment info (Android version, device model, SDK version).

2. Suggesting Enhancements

  • Check the Issues board to see if the enhancement has already been proposed.
  • Open an Issue using the Feature Request template.
  • Explain the use case, why this feature would be valuable, and how it could be implemented.

3. Pull Requests

  • Fork the repository and create your branch from main.
    • Branch naming: feature/your-feature-name or bugfix/issue-number-description.
  • Ensure your code adheres to the project's styling and standards.
  • Write unit tests for new logic if applicable.
  • Keep pull requests focused on a single issue or feature.
  • Open a PR targeting the main branch, filling out the Pull Request Template.

Local Setup & Development Guidelines

  1. Prerequisites: Install Android Studio (Ladybug or newer) and JDK 17+.
  2. Importing the project:
    • Open Android Studio.
    • Choose Open and select the root directory of this repository.
    • Gradle wrapper files (gradlew, gradlew.bat) will be automatically generated by Android Studio on project sync if they are missing.
  3. Database Inspection:
    • The app uses Room Database. You can inspect the local database using Android Studio's App Inspection tool while running the app on an emulator or debug device.
  4. Code Style:
    • We strictly follow the Official Kotlin Coding Conventions.
    • Run Gradle formatting checks before submitting code: gradlew spotlessCheck (if Spotless is configured) or format via Android Studio (Ctrl + Alt + L / Cmd + Option + L).

Coding Conventions & Architecture

  • MVVM Architecture: Avoid placing business logic directly in UI files. Place data logic in entities/DAOs, operations in the Repository, state management in the ViewModel, and only rendering code in Composable files.
  • Reactive Programming: Use Kotlin Flows and StateFlows (stateIn) to manage and expose states asynchronously from Database to view models.
  • Jetpack Compose UI: Make sure components are modular and decoupled. Use Material 3 styling tokens (MaterialTheme.colorScheme, etc.) instead of hardcoded colors.

Commit Message Style

We follow the Conventional Commits specification:

  • feat: A new feature (e.g., feat: add budget recommendation history)
  • fix: A bug fix (e.g., fix: resolve crash on null UPI ID parsing)
  • docs: Documentation changes
  • style: Code style changes (formatting, missing semi-colons, etc.)
  • refactor: Refactoring code without changing behavior
  • test: Adding or correcting tests
  • chore: Maintenance tasks, dependencies updates