Contributing Guidelines

Thank you for your interest in contributing to TEAMMATES. To maintain the quality of the project, we ask that you read this guide in full before making any contribution. Contributions that do not follow the outlined process will be closed without review.

Code of Conduct

By participating in this project, you agree to uphold the TEAMMATES Code of Conduct, which is adopted from the Contributor Covenant.

How to Contribute

Submitting an Issue

We use the GitHub issue tracker for bug reports and feature requests.

Before opening a new issue:

  • Search the issue tracker to ensure a similar issue does not already exist.
  • Use the provided templates when opening a new issue.

Manual Testing

We welcome contributors who want to test the product and report bugs without contributing code. To do so, request an instructor account and mention the purpose of your request in the comments.

Submitting a Pull Request

We accept contributions in the form of pull requests (PRs).

Before submitting a PR:

  • Ensure it addresses an open issue in the issue tracker. If one does not exist, open an issue first and wait for the team to triage it before starting work.
  • Follow the Development Workflow.
  • Do not skip steps because you think they are unimportant — we value contributors who are systematic and detail-oriented over those who are fast but careless.

By submitting a PR, you agree to license your work under the GNU GPL v2 License.

First-Time Contributors

If this is your first time contributing, we recommend working through these steps before opening a PR:

  1. Set up your development environment and get all tests passing.
  2. Familiarise yourself with the Development Guide.
  3. Start with a good first issue. If none are available, pick a help wanted issue instead.
Do not take more than one good first issue as these are reserved for other first-time contibutors.

Larger Contributions

If you are looking for a larger project, check out our project ideas page.

Before starting work, please start a GitHub Discussion to let us know. This ensures the project is still available and prevents you from investing time in something that may not be accepted.