Skip to content

Contributing to Oppia Android

Adhiambo Peres edited this page Mar 26, 2025 · 6 revisions

These instructions are for developers who'd like to contribute code to improve the Oppia platform. If you'd prefer to help out with other things, please see our general contribution guidelines.

Thanks for your interest in contributing to the Oppia Android project, and making it easier for students to learn online in an effective and enjoyable way!

If you run into any problems along the way, we're here to help! Check out our wiki page on getting help for the communication channels you can use. If you find any bugs, you can also file an issue on our issue tracker. There are also lots of helpful resources in the sidebar, check that out too!

Important! Please read this page in its entirety before making any code changes. It contains lots of really important information. You should also read through our guide to making pull requests.

Table of Contents

How to find information on this wiki

Please see the animated image below for guidance:

Screenshot wiki preview

Onboarding instructions

If you'd like to help out with the Android project, please follow the following steps to get started:

1. Complete the preliminaries

  • Sign the CLA, so that we can accept your contributions. If you're contributing as an individual, use the individual CLA. If your company owns the copyright to your contributions, a company representative should sign the corporate CLA.

  • Fill in the Oppia contributor survey to let us know your interests. (You can always change your responses later.) Make sure to indicate prominently that you are interested in helping out with Android.

  • Say hi and introduce yourself on GitHub Discussions!

2. Set up your development environment

  • Follow the instructions on Installing Oppia Android to prepare your developer environment and install Oppia Android. Note: Make sure you have good Internet connectivity when developing on Oppia Android, since this project uses third party libraries which are needed to build the app.

  • Familiarize yourself with the resources linked to from the wiki sidebar, especially the overview of the codebase, the coding style guide, and the Frequent Errors and Solutions. (You don't have to read everything else right now, but it's a good idea to be aware of what's available, so that you can refer to it later if needed.)

3. Pick your first starter issue!

We suggest choosing your first issue from the list of good first issues. These issues are hand-picked to ensure that you don't run into unexpected roadblocks while working on them, and each of them should have clear instructions for new contributors. (If not, please let us know via GitHub Discussions and we'll try to fix it.)

When you've found an issue you'd like to tackle:

  • Leave a comment that describes in detail how you'll tackle it (e.g. explain which file(s) you would modify and what changes you would make), and @-mention the team lead (typically @BenHenning). If your explanation makes sense, we'll assign the issue to you.
  • Submit a PR, following the guidance on submitting a PR. (Consider bookmarking this guide in your browser for easy reference. We also suggest bookmarking the "my issues" page so that you can keep track of the issues assigned to you.)

You are also welcome to tackle non-starter issues, but for those, you might need to be more independent, because we might not know how to solve them either!

Once you've merged PRs that correspond to two different pre-existing GitHub issues, please fill in this form to be considered for a place on a team at Oppia Android! A team lead will evaluate your contributions and give you access to the repository so that you can assign yourself to issues. (But please don't create your own issues and then make PRs for them -- that won't count.)

Notes

  • Our central development branch is develop, which should be clean and ready for release at any time. All changes should be done in feature branches based off of develop.

  • To find the author of a particular change in a file, run this command:

    git blame file-name
    

    The output will show the latest commit SHA, author, date, and time of commit for each line.

    To confine the search of an author between particular lines in a file, you can use:

    git blame -L 40,60 file-name
    

    The output will then show lines 40 to 60 of the particular file.

    For more git blame options, you can visit the git blame documentation.

  • If your PR includes changing the location of the file, if you simply move the file by cut and paste method, then the git will track it as a new file. So to prevent this, use:

    git mv old_file_path new_file_path
    

    By using this command git will detect the file as a renamed file.

  • We don't allow force-pushing at Oppia, so once you push your commits, you can't change them. Instead, submit a new commit with the desired changes. If you find that you have force-pushed your branch, please close the PR and submit a new one in its place.

Communication channels

If you run into any problems (including non-coding ones), you can ask questions on GitHub Discussions. You can use this avenue for asking anything -- questions about any issue, who to contact for specific things, etc.

Clone this wiki locally