The OppiaMobile platform is open source (released under a GNU GPL v3 license) and we’d really welcome any input to the development of the platform by other programmers. The developer pages here give an overview of the architecture, workflow and components which make up the OppiaMobile platform. See here for further information about the different components and links to the source code etc.

The platform is under constant development and there are many features we’d like to add, plus many areas where the platform could be improved.


As well as the information on these pages, you may also find the following resources useful:

  • Developer documentation – full info on how to install and create customised versions of the OppiaMobile server and client applications
  • Discussion forum – for posting questions and queries about OppiaMobile

Platform components

The OppiaMobile platform consists of the following components:

OppiaMobile Android App

An Android app for learners to access their courses on their Android smartphones. The app is compatible with Android API level 14+ (i.e. Android version 4+).
Source codeGitHub repo
Bug/issue trackerOpen issues
Get the app on Google Play

OppiaMobile Server

Provides the core server-side, using the Django framework. It is where all the courses are hosted, and contains all the logic of the system: users management, activity tracking, points and badges system, as well as other utilities for content development. Full installation and upgrade instructions can be found at Read the docs
Source codeGitHub repo
Bug/issue trackerOpen issues

OppiaMobile Moodle block

A Moodle block (script) to export the course from Moodle into the right format for installing in the OppiaMobile Android app. This block has been developed and tested for Moodle v2.4+.
Source code: GitHub repo
Bug/issue trackerOpen issues

Basic System Architecture/Workflow

  1. Courses are authored in Moodle.
  2. When the course is exported from Moodle, the quizzes are automatically exported to the OppiaMobile server.
  3. After export from Moodle, the module zip package can be downloaded and then uploaded into the learning modules app in the OppiaMobile server. The reason for leaving this as a manual upload (rather than automatically published) is to allow content authors the option to test out the content on their devices before it is pushed out as an automatic update to learners.
  4. Our OppiaMobile server provides the core of the server side, dealing with all user accounts, modules, quiz result submission and tracking activity.
  5. When users install the OppiaMobile Android app, their accounts are created on the OppiaMobile server. All quiz attempts and results are submitted from the OppiaMobile Android app to the OppiaMobile engine (when the user has an internet connection available).
  6. All learning modules are downloaded from the OppiaMobile server and all tracking activity by the user (pages viewed, videos watched and quiz attempts) is submitted to the OppiaMobile server by the OppiaMobile Android app. The OppiaMobile also deals with all the points and badges awarded.
  7. The OppiaMobile Android app delivers the learning content on the users phone.
  8. Media and video content can be hosted on any website, providing it allows a direct download of the video file. Currently all the media content is hosted in a static directory structure on our demo OppiaMobile website ( – but this is only for convenience, rather than a requirement.
  9. The OppiaMobile Android app can download the videos from the media hosting (if a wifi connection is available). Alternatively the media files may be directly copied onto the phone SD card (into /sdcard/digitalcampus/media/directory).
Scroll to top