Tool for collaboratively building interactive lessons.
Switch branches/tags
2.6.8-credits Milestone_2.4 add-error-log answer-audit-job answer-group-factory ckeditor code-eval-travis-tests codeowners collection-isolate-scope collection-skills-migration-part-1 collection-skills-migration ct-branch develop document_back_utils_test e2e-on-travis editor-states-sequence exp-img-alt-tag experiment-front-page export-schedule fix-4094 fix-answer-plus-ones fix-charat-error fix-console-error-for-private-exploration fix-floating-point fix-linter fix-ng-src fix-translations fixing-dashboard-issue get-suggestions https-emails image-path-fix issue-3192 issue_4470 item-selection-formatting lint-5730 linting logic-short-answer modal-directive-names new-code-suite-widget number-with-unit-interaction numpy obsolete-adventures obsolete-chess obsolete-code-with-tests obsolete-emails obsolete-list-interaction one-more-migration overview-tab-no-state-map overview-tab parents-page pencilcode-apr-2016 pencilcode-learner-view-and-video pencilcode pr-template recompute-models-fixes reduce-prod-files release-2.4.1-hotfix release-2.4.2-hotfix-1 release-2.5.0 release-2.5.1-hotfix-1 release-2.5.1 release-2.5.2 release-2.5.3 release-2.5.4 release-2.5.5 release-2.5.6 release-2.5.7-hotfix-1 release-2.5.7 release-2.6.0-hotfix-1 release-2.6.0-hotfix-2 release-2.6.0-hotfix-3 release-2.6.0-hotfix-4 release-2.6.0-hotfix-5 release-2.6.0-hotfix-6 release-2.6.0-hotfix-7 release-2.6.0 release-2.6.1 release-2.6.2 release-2.6.3 release-2.6.4-hotfix-1 release-2.6.4 release-2.6.5-hotfix-1 release-2.6.5 release-2.6.6-hotfix-1 release-2.6.6 release-2.6.7-hotfix-1 release-2.6.7 release-2.6.8-hotfix-1 release-2.6.8 release-2.6.9-hotfix-1 release-2.6.9 release-2.7.0 release-2.7.1 remove-automatic-backups-script remove-gadgets remove-jinja-exploration-player remove-mobile-feedback remove-shadow remove-test-util-jobs revert-4783 revert-5810 rights-refactoring rights_manager_2394 rule-editor-templates sanitize-job simple-editor simplify-promises speech-recognition split_exploration_handler srikar0896-patch-1 sriker2 ssr96 stats-job-state-id stats_one_off_docs subtopic-page-audio-schema subtopic-viewer-2 teach-form test-util-jobs translatewiki travis-email travis-release travis-update typed-params update-readme upgrade-jasmine widget-answer-views-rebased3
Nothing to show
Clone or download
ankita240796 and bansalnitish Fix #5039: Added continue button in preview mode (#5962)
* Added continue button in preview mode

* Fix minor nit
Latest commit c9adae1 Dec 11, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update (#5952) Dec 6, 2018
assets Updates to the text on the stewards page. (#5912) Nov 28, 2018
core Implement editing of questions (#5614) Dec 10, 2018
data Fix #5933: Changed Code Editor Prompt in Test Exploration to be More … Dec 4, 2018
export pre_commit_linter: Swapped if blocks for _check_docstrings (#5752) Nov 19, 2018
extensions Fix #5039: Added continue button in preview mode (#5962) Dec 10, 2018
scripts Upgrade pylint to 1.9.3 and fix some docstrings issues. (#5935) Dec 2, 2018
.eslintignore Group-2 Change, Rename files and services names (#3867) Sep 18, 2017
.eslintrc Improving the dev workflow: Setup browserstack, add necessary configu… Aug 4, 2018
.gitattributes Fix #1836: Add gitattributes file to set proper EOL (#1837) May 20, 2016
.gitignore Build process refactorization + increasing coverage for (#5580) Aug 26, 2018
.htmllintrc Modify _lint_html_files function and enable rules (#4910) May 14, 2018
.isort.cfg Fix #5243: Set ignore_whitespace to true in .isort.cfg (#5789) Oct 26, 2018
.pylintrc Upgrade pylint to 1.9.3 and fix some docstrings issues. (#5935) Dec 2, 2018
.stylelintrc Add CSS lint rules: Space before curly braces for HTML files (#5732) Oct 5, 2018
.travis.yml Remove mobile tests env var for PR builds and add a job for it (#5835) Nov 8, 2018
AUTHORS Update changelog and authors/contributors for v2.7.0. (#5922) Nov 30, 2018
CHANGELOG Update changelog and authors/contributors for v2.7.0. (#5922) Nov 30, 2018
CONTRIBUTORS Update changelog and authors/contributors for v2.7.0. (#5922) Nov 30, 2018
Makefile Fix part of #5002: Move user related variables form GLOBALS (#5659) Nov 4, 2018
Vagrantfile Fix #3455 (#3460) May 24, 2017 Move the oppia directories one level down, so that Django runfiles ca… Jul 13, 2013
app.yaml Add sitemap and remove i18n from title. (#5647) Sep 23, 2018 removed the ENABLE_GCS_STORAGE_FLAG, and add develop condition for PI… Aug 13, 2018 Fixes #5843 Changes _check_comment to check for spaces and capitals (#… Nov 15, 2018 Fix part of #5002: Moved some constants from GLOBALS to other places. ( Jul 13, 2018
cron.yaml Add deployment of export service to (#5773) Oct 28, 2018
dispatch.yaml Export schedule dispatch (#5643) Sep 21, 2018 Fix #5466: Added check to enforce that all name of controllers end wi… Nov 28, 2018
gulpfile.js Fix #5623 Move server launch to python (#5657) Sep 17, 2018
index.yaml Add paging for questions in topic editor and story editor modificatio… Nov 28, 2018 Fix part of #4374: Add docstrings to python files (#5871) Nov 18, 2018 Upgrade pylint to 1.9.3 and fix some docstrings issues. (#5935) Dec 2, 2018 Fix #5466: Added check to enforce that all name of controllers end wi… Nov 28, 2018 Generalised Review System, complete email functionality (#5387) Aug 14, 2018 Fix part of #3905: Add lint checks for alphabetical import order (#4343) Jan 6, 2018 Fix part of #3905: Add lint checks for alphabetical import order (#4343) Jan 6, 2018
manifest.json Milestone 2.5: Lesson Translation Dashboard (#5279) Aug 7, 2018
queue.yaml Return queue.yaml rates to normal Dec 3, 2017 Fix part of #4374: Add docstrings to the python files. (#5849) Nov 12, 2018 Add one-off job to validate customization args for rich text componen… Aug 9, 2018
tox.ini Improving the dev workflow: Milestone 1.1.1 Enable Pycodestyle rules … May 15, 2018 Fix part of #5002: Remove DEV_MODE from GLOBALS. (#5618) Sep 13, 2018 Upgrade pylint to 1.9.3 and fix some docstrings issues. (#5935) Dec 2, 2018

Oppia Build Status Code Coverage Join the chat at

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, making it possible for students to learn by doing while getting feedback.

In addition to developing the Oppia platform, the team is also developing and piloting a set of free and effective lessons on basic mathematics. These lessons are targeted at learners who lack access to educational resources.

Oppia is written using Python and AngularJS, and is built on top of Google App Engine.


Please refer to the developer wiki for full installation instructions. This is just a short summary for developers who would like to contribute:

  1. Create a new, empty folder called opensource/ within your home folder. Navigate to it (cd opensource), then fork and clone the Oppia repo. This will create a new folder named opensource/oppia.

  2. Navigate to opensource/oppia/ and run:

  git checkout develop
  bash scripts/
  1. To run tests:
  bash scripts/


The Oppia project is built by the community for the community. We welcome contributions from everyone, especially new contributors.

You can help with Oppia's development in many ways, including art, coding, design and documentation.


If you have any feature requests or bug reports, please log them on our issue tracker.

Please report security issues directly to


The Oppia code is released under the Apache v2 license.

Keeping in touch

We also have public chat rooms on Gitter: and the #oppia channel on Freenode IRC. Drop by and say hello!