Updating Content

Whilst a course for an Oppia implementation is being developed, and before the app in launched, course content can be updated and published to the server as often as is necessary.

However, once a course has been launched, and is being used by learners, publishing updates should be well planned and coordinated. Firstly to reduce the burden and potential confusion to users for having a lot of small, regular updates and secondly, to ensure a good review can be made of the content before it is made live for learners.

For updating a course once it has been made live, there are 3 potential options, each with their own pros/cons and considerations:

Option A: Edit in-place in Moodle

You can just edit the original version of the course directly in Moodle, then:

  1. Export the course via the Oppia export block
  2. Do not publish the course to the Oppia server, even as a draft version
  3. Instead, directly download the course zip file, and ‘sideload’ this onto your device (see: Testing your course on your mobile)


  • This will preserve any user progress for unchanged activities when the course is finally made live.
  • Reviewers/Testers for the course do not need to be given staff/admin permissions on the Oppia server.


  • The course zip files need to be shared ‘manually’ to those who will be reviewing/testing.
  • If any urgent changes are needed to the content, before the final version is complete, this will not be possible without pushing out the unfinished version of the course.


  • In this option, publishing the course as a draft version will remove the option for learners to download the original/currently live version of the course.

Option B: Clone the course in Moodle

The process for this option would be:

  1. Create a copy of the course in Moodle (with a new course shortname, eg ‘course-v2’)
  2. Edit the new version of the course
  3. Export and publish this new version as a draft to the Oppia server
  4. Reviewers/Testers (with staff or admin permissions) will be able to directly download the new version into their Oppia app (without the new for ‘sideloading’). Although the sideloading option is still a possibility if you don’t want to give all the reviewers staff/admin permissions on the server
  5. Once the new version is ready, update the shortname of the old version, eg ‘course-v1’, then update the shortname of the new version to be the original
  6. The course can then be published live via the Oppia export block


  • Interim/urgent updates can be made to the original version of the course.
  • No need to distribute the course zip file manually and ask reviewers/testers to sideload


  • When published live, all activities will appear to the user as new activities, even those that haven’t been updated (since the id numbers in Moodle will have changed)
  • Reviewers and testers need to have staff/admin permissions

What happens to learner progress when a course is updated?

When a course is updated, any activities that have been changed (in any way, from a minor typo, to a rewrite), the old version of the activity is essentially ‘detached’ from the new version of the course. Although note that if option B above is used for updating, then all activities will be seen as new.

Any deleted activities are also just detached, and any new activities are just added. The tracker and quiz scores etc are retained.

From a user perspective on their device, when they download the new version:

  • if they haven’t yet completed the old version of the activity, there’s no real difference to them
  • if they completed the old version of the activity, but not completed the course, the updated version of the activity will now show as no longer completed
  • if they have already completed the course and got the badge, then they will keep the badge, but the updated version of the activity will now show as no longer completed