Contributing to OppiaMobile

To get started and help contribute to OppiaMobile, the first steps will be:

  1. Clone the server and get a local version running on your machine
  2. Clone the app and have it compiling and deploying to your mobile device
  3. Set up Moodle installation and the OppiaMobile Moodle export block
  4. Create a course in Moodle and deploy this to your server and then on to your device (using your new locally installed platform components)
  5. Change your app name and theme and have this compiling and installing

Note that we’ve deliberately left out the specifics of these steps here - since they should already be elsewhere in these docs (if not, then see below…)

Once you have the basic platform running locally, there are a lot of different ways you can start contributing, even before getting fully submerged in the whole code base:

  • Provide feedback and recommendations on the documentation (both the processes/descriptions and the overall navigation of how these doc pages are structured)
  • Provide feedback and input on the overall user interface and process to publish a course, navigate the server dashboard and use the app

Submitting code contributions

If you have made updates (new functionality, bug fixes etc) that you’d like to contribute back to the core version of OppiaMobile, then please issue a “pull request”.

You can find info here on how to issue a pull request: https://help.github.com/articles/using-pull-requests/

Creating small, specific pull requests (matched to an issue in GitHub issue tracker), will make it much easier and quicker (and also more likely) that your changes can be incorporated into the core version.

We’re keen to acknowledge those who have contributed to the development of OppiaMobile, so please also send us your attribution information (name, organisation etc), so we can include you in the about/acknowledgements section of the app.

Other ways to contribute

Whilst the GitHub issue lists provide the core of the issues, bug fixes and enhancements - these can be a little impenetrable to anyone who is unfamiliar with the detail of how the platform components work, so here are some suggestions for how you could contribute (in no particular order, and some may depend on your experience and interest):

  • how we could set up continuous integration for both app and server code (esp when code is checked in to Github)
  • how we could integrate with a crowd-sourced translation service (or if you’re already able to provide translations)
  • code improvements & refactoring, eg items under https://sonarcloud.io/dashboard?id=org.digitalcampus.mobile.learning and https://sonarcloud.io/dashboard?id=django_oppia
  • improve testing coverage
  • keeping code up to date with latest Django and Android frameworks - eg, refactoring for any deprecated functions
  • ideas to improve gamification beyond points & badges, although…
  • … we would like to integrate with Mozilla Open Badges
  • improve media embedding in Moodle and subsequent publishing to Oppia
  • integration with xAPI (https://xapi.com/ - ‘programmable elearning and experience tracking’)
  • allowing login with users existing Google, Facebook, Twitter accounts

Another area that we are very much interested in, but needs some research and planning is around personalised/adaptive learning - so being able to tailor course content based on users existing knowledge & experience or responses to pre-tests.

All of the above are improvements and enhancements that we’ve wanted to do for a long time, but any contributions (on the list above or not) will help us keep OppiaMobile running and improving for its users.