Skip to main content

How to Contribute

First of all, thank you for the interest in contributing to the Mentorship System!

Any issue labeled as Status: Available or First Timers Only can be worked by any contributor.

Issues labeled as First Timers Only are more oriented towards newcomers, with the exception of Quality Assurance issues that can be worked by any contributor because there can always be some bug and these issues are always available.

There are many ways you can contribute to this project.

  • Test the backend for Quality Assurance purposes and report bugs (if any);
  • Give feedback on what is shared with the community (UI prototype, suggesting new features);
  • Participate in discussions on Slack;
  • Solving the available issues, implement features, fix bugs, develop tests, etc...;
  • Helping others understand the project on Slack;
  • Review pull requests (PRs), even if you're a newcomer.

Code#

You can help on the development. You can check the contribution guidelines for this, CONTRIBUTING.md file inside .github folder.

Before starting to contribute make sure to check our Commit Message Style Guide.

You can check existing issues that are available and not assigned to anyone. You can filter also issues with labels such as Category: Coding which are available Status: Available.

You can find a bugs while testing and submit an issue to solve them.

You can find more about Tech Stack here.

Quality Assurance#

You can test the backend for bugs. We have a set of Quality Assurance Test Cases to help you with test the backend to lookup these bugs.

If you find any bug you can report by creating an issue, using the Bug report template. Here's a nice example of a Bug Report issue. These types of reports are very important because we can detect bugs in the backend and then create issues that fix these bugs. Also if you're not comfortable with the code you can just report a bugs you find, without having to suggest a solution on it, and thats a valuable contribution to the project.

Tools you can use to do this:

  • Create disposable emails with https://temp-mail.org/ to create accounts and verify them, throught this temporary emails;
  • Swagger UI provided in root of the deployed server. You can check the deployed server link in the the README.md file of the project. You can learn more about how to use Swagger here.
  • Postman to make your HTTP requests to the backend without being limited by Swagger API. E.g.: With this you can see the results of not sending an autorization token, which with the Swagger UI you're not allowed to do it.

Documentation#

Documnetation is a very important part of Open Source. These is what new contributors use to learn about the project before starting to contribute. You can always suggest improvements on the existing documentation and even help developing it.

You may check issues labeled with Category: Documentation/Training This documentation can be related with code, quality assurance test cases, the application features, anything related with this project. Here're some examples of documentation:

Outreach/Training/Research#

For this you can promote the project in whatever way you feel comfortable with. Here's some examples:

  • You can write blog posts about the project, something you learned from it, or you want to share with others;
  • Research about ways to improve the project and discuss it with the Community on the Slack;
  • Participate on the project's discussion on the #mentorship-system channel;
  • Help other contributors or newcomers learn and understand the project;
  • etc ...

Here's a post written about the project idea and mission, "Mentorship System by Systers" on Medium.

User Interface#

In this backend we don't have a User interface but we have a mobile application, you can suggestion improvements for the UI and present UI/UX designs for the Mentorship System Android application.

One last thing...#

If you have any doubts about the project or how to contribute do not hesitate to ask questions on GitHub or on Zulip. The community will do their best to help you out :)