Match Mania Icon

🎮 Match Mania Wiki

Comprehensive Documentation & Guides

📚 Wiki Navigation

← Back to Main Site

Contributing to Match Mania

Thank you for your interest in contributing to Match Mania! This document provides guidelines and instructions for contributing to the project.

Code of Conduct

By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.

Our Standards

How to Contribute

Reporting Bugs

Before creating a bug report: 1. Check the existing issues to avoid duplicates 2. Ensure you're using the latest version 3. Collect relevant information (device, Android version, steps to reproduce)

To submit a bug report: 1. Use the Bug Report template 2. Provide a clear and descriptive title 3. Include steps to reproduce the issue 4. Describe expected vs actual behavior 5. Add screenshots if applicable 6. Include device and version information

Suggesting Features

Before suggesting a feature: 1. Check if it's already been suggested 2. Consider if it fits the project's scope and goals 3. Think about how it would benefit most users

To suggest a feature: 1. Use the Feature Request template 2. Clearly describe the proposed feature 3. Explain the use case and benefits 4. Consider including mockups or examples 5. Discuss implementation complexity if possible

Contributing Code

First Time Contributors

Look for issues labeled: - good first issue - Good for newcomers - help wanted - Need community help - documentation - Documentation improvements

Development Setup

  1. Fork the Repository bash # Fork via GitHub UI, then clone your fork git clone https://github.com/YOUR_USERNAME/match-mania.git cd match-mania

  2. Set Up Development Environment

  3. Install Android Studio (latest stable version)
  4. Install JDK 11 or higher
  5. Install Android SDK (API 21-33)
  6. Open project in Android Studio
  7. Sync Gradle dependencies

  8. Create a Branch bash git checkout -b feature/your-feature-name # or git checkout -b bugfix/issue-number-description

Coding Standards

Java/Android Conventions: - Follow standard Java naming conventions - Use meaningful variable and method names - Keep methods focused and concise - Add comments for complex logic - Use proper indentation (4 spaces)

Code Organization: - Place UI components in appropriate packages - Keep game logic separate from UI code - Use proper access modifiers - Follow existing project structure

Testing: - Test on multiple Android versions if possible - Test in both portrait and landscape orientations - Verify with different rule configurations - Ensure AI players function correctly

Making Changes

  1. Write Good Commit Messages ``` Short summary (50 chars or less)

More detailed explanation if necessary. Wrap at 72 characters.

# Run tests ./gradlew test

# Install and test on device/emulator ./gradlew installDebug ```

Submitting a Pull Request

  1. Update Your Fork bash git fetch upstream git rebase upstream/main

  2. Push Your Changes bash git push origin feature/your-feature-name

  3. Create Pull Request

  4. Go to your fork on GitHub
  5. Click "New Pull Request"
  6. Fill out the PR template completely
  7. Link related issues
  8. Add screenshots for UI changes
  9. Request review from maintainers

  10. PR Review Process

  11. Maintainers will review your code
  12. Address feedback and requested changes
  13. Push updates to the same branch
  14. Be patient and respectful

Contributing Documentation

Documentation contributions are highly valued:

Documentation is in: - README.md - Main project readme - wiki/ folder - Wiki articles - Code comments - Inline documentation - docs/ folder - Additional docs

Project Structure

match-mania/
├── app/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/matchmania/
│   │   │   │   ├── activities/      # UI screens
│   │   │   │   ├── models/          # Data models
│   │   │   │   ├── views/           # Custom views
│   │   │   │   └── utils/           # Helper classes
│   │   │   ├── res/                 # Resources
│   │   │   └── AndroidManifest.xml
│   │   └── test/                    # Unit tests
│   └── build.gradle                 # App build config
├── .github/                         # GitHub configs
│   ├── workflows/                   # CI/CD workflows
│   └── ISSUE_TEMPLATE/              # Issue templates
├── wiki/                            # Wiki articles
└── README.md

Style Guide

Java Style

XML Style

Git Commit Messages

Release Process

Releases are managed by maintainers:

  1. Version bump in build.gradle
  2. Update CHANGELOG.md
  3. Create release branch
  4. Build and test release candidate
  5. Create GitHub release with APKs
  6. Update documentation

Recognition

Contributors will be: - Listed in release notes - Credited in the About section - Mentioned in significant contributions

Questions?

License

By contributing, you agree that your contributions will be licensed under the Apache License 2.0, the same license as the project.


Thank you for contributing to Match Mania! 🎮🎉

Related: Building from Source | Architecture