We welcome contributions from anyone, in particular, students (see here for a list of our contributors). One of the main objectives of TEAMMATES is to help students get experience in a OSS production environment. Here are some information that might be useful to would-be contributors.
Although TEAMMATES uses many tools and technologies, you need not know all of them before you can contribute. The diagram below shows which technologies you need to learn to contribute in different roles. As you can see, some roles don't need learning any technologies at all. Note that these role aren't fixed or formally assigned. It is simply for guidance only.
Roles:
- Tester: Tests the App manually and reports bugs or suggestions for enhancements in the issue tracker.
- Copy editor: Helps in improving documentation.
- Web page developer: Works on static web pages, such as those used in the TEAMMATES web site
- Test developer: Works on automating system tests.
- Frontend developer: Works on the frontend of the App that is generated dynamically from the server side.
- Backend developer: Works on the backend logic of the App, including data storage.
TEAMMATES community has three tiers, defined based on the level of involvement.
- Contributor: Small but noteworthy contribution to the project.
- Committer: Significant contributions sustained over a long period of time.
- Core member: Significant and sustained contributions in recent times. Core members can progress through the levels: Snr Developer, Area Lead, Project Lead, and Project Manager.
Contributing to an OSS project requires you to figure out things on your own when you can, and seek help from the right resource when you cannot. To become a TEAMMATES contributor, you need to start honing those skills. To help you with that, we have created a sequence of tasks you can try to complete. Try to complete as many of them as you can, in the order they are listed. Of course we are happy to guide you if you encounter any difficulties when doing these tasks; just post your question in our issue tracker. If you are seeking help on project setup, remember to include the following in your post.
-
Step in the setting up guide that you are in
-
What measures you took to address the issue
-
Operating system
-
Screenshots (if any)
Note: The task descriptions are brief by intention. We want you to try to figure out how to do those things by yourself.
Phase A: Know the project
-
Understand what TEAMMATES is about.
-
product intro page shown to potential users
-
feature overview (users’ point of view)
-
-
Decide in which role(s) you want to contribute. i.e., tester, copy-editor, etc. as specified earlier in this document.
-
If you are aiming for tech writer or tester roles, get an instructor account using the link in the TEAMMATES home page. Remember to mention the purpose of your request under any other comments.If you are sure you want to become a contributor, you can skip this step. In Phase B, you get to set up TEAMMATES on your own machine and use that instance to try the functionality.
-
If you plan to contribute code, continue with the tasks below.
-
Phase B: Set up locally
- Set up TEAMMATES development environment on your computer.
Important:- Follow instructions to the letter. Install the specified versions of the tool stack, not the latest versions.
- If you encounter any problems, refer to the Developer Troubleshooting Guide.
- Get dev green. It is OK to proceed to the next phase if you have fewer than 5 failing test cases.
Phase C: Deploy
Deploy your own copy of TEAMMATES to your staging server.
Phase D: Tinker with the code
- Fork our repo at GitHub
- Create a branch named ‘tinker’
- In that branch, do a small change to the code that makes a visible change to TEAMMATES UI. Preferably, your change should improve the UI in some way, or at least not make it worse.
- Deploy the changed version to your staging server.
- Push your changes to your fork.
- Create a new issue in our issue tracker with the following info
Issue title: ‘New contributor self intro [your name]’
a) the link to your app
b) link to your fork
c) a screenshot of the change you did (as seen on the UI)
d) your real name and a short self-intro
Phase E: Start contributing
After you complete the above tasks, you are ready to become a contributor. Steps for fixing an issue is explained in the process document. New contributors are advised to start doing an issue labeled d.FirstTimers (but do not do more than one of those), move to other issues labeled as d.Contributors.
Fixing an issue quickly is not the important thing. In fact, issues given to new contributors are ones we already know how to fix. We are more interested to see how you go about fixing the issue. We want to know whether you are systematic and detail-oriented.
Take your time to learn and follow the workflow to the letter. Do not skip any steps because you think that step is 'not important'. We are more impressed when you finish an issue in fewer attempts than when you finish it in a shorter time but take many attempts because you were not meticulous enough along the way.
The best way to contact us is to post a message in our issue tracker. Our issue tracker doubles as a discussion forum. You can use it for things like asking questions about the project or requesting technical help.
Alternatively (less preferred), you can email us at [email protected]