Skip to content

Contributing to zMantra

Thank you for considering contributing to zMantra ๐ŸŽ‰ We welcome all contributionsโ€”whether itโ€™s bug fixes, new features, documentation improvements, or accessibility enhancements.


๐Ÿ› ๏ธ How to Contribute

1. Fork & Clone

  1. Fork the repository to your GitHub account.
  2. Clone your fork locally:

bash git clone https://github.com/<your-username>/zmantra.git cd zmantra

2. Create a Branch

Always create a new branch for your work:

git checkout -b feature/your-feature-name

3. Make Changes

  • Follow our MVVM + Clean Architecture structure.
  • Write clean, testable, and accessible code.
  • Ensure your changes do not break existing features.

4. Run Tests

Before submitting, make sure all tests pass:

./gradlew test
./gradlew connectedAndroidTest

5. Commit Guidelines

Use clear, descriptive commit messages:

git commit -m "Fix: crash on TalkBack focus in ShakeFragment"
git commit -m "Feat: add support for custom Excel question sets"

6. Push & Pull Request

Push your branch and open a Pull Request (PR):

git push origin feature/your-feature-name

Then, open a PR against the main branch.


โœ… Contribution Types

We appreciate contributions in the following areas:

  • Bug Fixes โ€“ Resolve crashes, accessibility issues, or performance bugs.
  • Features โ€“ Add new game modes, question types, or TTS enhancements.
  • Accessibility โ€“ Improve TalkBack, keyboard navigation, and voice feedback.
  • Documentation โ€“ Enhance developer or user docs (MkDocs, README, etc.).
  • Testing โ€“ Write or improve unit, integration, and UI tests.

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Code Style & Practices

  • Follow Kotlin coding standards.
  • Use View Binding, Hilt, and MVVM + Clean Architecture.
  • Accessibility is a priority โ†’ always ensure TalkBack works.
  • Write unit tests for ViewModels and business logic.

๐Ÿ“œ License

By contributing, you agree that your contributions will be licensed under the same license as the project (see LICENSE).