CommCare Open Source Bounty Program

Welcome to the CommCare Open Source Bounty Program!

Dimagi invites developers from around the world to collaborate with us in enhancing our open-source software. We run the CommCare Open Source Bounty Program as part of our efforts to engage our diverse and talented developer community.

Through this program, we seek to catalyze our developer community in resolving issues and enhancing the functionality of CommCare which our standing development teams may not be able to prioritize. By participating, you’ll help us improve CommCare for adopters and users worldwide and receive rewards for your valuable contributions.

Why Participate

  • Earn Rewards: Get monetary rewards for your expertise and efforts in improving the CommCare platform.

  • Develop and Showcase Your Skills: Sharpen your development skills by tackling real-world challenges and collaborating with a diverse community. Gain recognition within the CommCare community.

  • Contribute to Social Impact:  Improve the value and experience of a tool used by hundreds of thousands of critical Frontline Workers each day, who are creating a positive impact on communities worldwide.

Who’s Eligible

Anyone worldwide can contribute to CommCare’s open-source codebases, but you will need to meet a few requirements to be able to earn rewards for your contributions:

  1. Platform availability: We use the Algora platform to drive our Bounty program and payments. In order to be eligible to participate, you must be able to use the platform and be able to receive payment through its payment processors.

    1. Algora Account: You must have an active account on Algora. If you don’t have one, please sign up here.

    2. GitHub Integration: Your GitHub account must be connected with Algora. This integration is essential for tracking your contributions and processing bounties.

    3. Payment Method Setup: You need to have a Stripe Connect account set up for receiving payments. Ensure your payment method is configured before claiming any bounties. Make sure that you are in a supported country for payment disbursement. Please refer to the list of supported countries here.

  2. Open Source Guidelines: CommCare’s code is maintained to a professional, compliance-audited standard, and adherence to our open source contribution guidelines is required. This includes following best practices for documentation, code quality, and community standards.

  3. License Attribution and Agreement: You need to be able to provide your contributions under the terms and licenses of the open-source project, and be able to sign a Contributor License Agreement (CLA)

    1. The bounty program provides rewards to recognize open source contributions to open source projects and doesn’t create a contracted relationship with Dimagi or any other entity for labor, assets, or intellectual property. You are independently responsible for determining and faithfully following all laws, regulations, and contracted implications associated with receiving such an award.

    2. Your contributions must be provided as per the terms of the related code repositories and signed agreement. You must be legally able to grant the appropriate license for your contributions free of conflict. 

  4. CommCare Developer Forum Participation: You should be a registered member of the CommCare Developers Forum. Stay updated with the latest bounties and announcements through the forum.

  5. Legal Compliance: By participating in the bounty program, you are responsible for ensuring that you can do so legally, without conflict with local laws, and without conflicts with contractual obligations to your employer or to Dimagi. 

How It Works

Our team identifies issues which are a good fit for the program and will create bounties in our Alogra Project. We will periodically update the CommCare Forum with announcements about new eligible issues that come with bounties, and highlighting related issues which may be easy to solve together. For a detailed list of current bounties and their statuses, please see the Current CommCare Bounty List.

Ready to get started? Follow these steps:

  1. Meet the Eligibility Criteria: Ensure you have met the above eligibility criteria and are all set.

  2. Pick an Issue: Check the latest bounties and choose an issue to work on.

  3. Provide a signed CLA: Sign the Contributor License Agreement. Note: Contributions will not be considered without a signed agreement.

  4. Set up your developer environment: Check the repository README and Getting Started pages to get 

    1. You can reach out on the Developer Section of the community forum if you need help or advice on getting started. We recommend that developers working with CommCare subscribe to the forum to be kept up to date. 

  5. Announce Your Start: Declare that you started working using slash commands on the corresponding GitHub issue. Here's a list of all slash commands you can use.

    1. Please keep in mind that announcing your work on an issue won’t prevent others from also working towards the same bounty. You are welcome to begin work on an issue that others have announced working on, but we encourage friendly coordination rather than competition. 

  6. Address the Issue:

    1. Based on the details in the GitHub issue, replicate the issue in your local environment and code up a solution. 

    2. We plan on collaborating on Bounty-eligible issues in the same manner as other open-source issues, so if you need more input or have questions about the Issue itself, please make comments directly on the issue page. 

  7. After implementing the fix, submit a Pull Request (PR) on GitHub. Ensuring that your Pull Request is as comprehensive and clear as possible will improve the likelihood that it is reviewed.  We encourage providing detailed notes in understanding the replication conditions and steps, and including information on how you addressed or fixed the issue.

  8. Claim Bounty: After fixing the issue claim the bounty in the PR

    1. Reminder: You will need an active CLA for your account in the Algora project before you can be eligible to claim bounty rewards!

  9. Feedback & Approval: Our team will provide feedback, validate the fix, and approve PRs that meet our standards and processes, including platform-specific standards.

    1. Disclaimer: While we aim to provide helpful feedback, please understand that we may not be able to respond to every submission. During the review, feedback, and approval process, our team won’t be able to provide special treatment to PRs associated with bounties. 

  10. Get Rewarded: Once we merge the PR, the payment for the bounty will be disbursed through Algora. If interested, here's a quick demo, of how this works.

  11. Get Recognized: CommCare Forum members who have completed a code contribution (whether bounty-related or not) can message the Moderator group in the forum with a link to your contribution to have a Badge added to your Forum account profile. 

    1. Before making this request, please make sure to add a link to your Forum Profile page in your GitHub Social Accounts, so we can confirm your account

Current CommCare Bounty List

You can find an up-to-date list of our active and historical bounties on our Algora project homepage.