Tool for collaboratively building interactive lessons.
Switch branches/tags
Clone or download
ctao5660 and seanlip Added comment to Image Uploader fix (#5895)
* Fixed it for Chrome, other browsers I still need to test

* made comment explaining what it does

* added comment

* realized there was a space in twice

* addressed review comments
Latest commit bd3668b Nov 21, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update (#5866) Nov 12, 2018
assets Add sitemap and remove i18n from title. (#5647) Sep 23, 2018
core Added comment to Image Uploader fix (#5895) Nov 21, 2018
data Fix broken image region #5765 (#5768) Oct 24, 2018
export pre_commit_linter: Swapped if blocks for _check_docstrings (#5752) Nov 19, 2018
extensions Fix part of #4374: Add docstrings to python files (#5871) Nov 18, 2018
scripts pre_commit_linter: Swapped if blocks for _check_docstrings (#5752) Nov 19, 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 Rename to (#5715) Sep 30, 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 credits and changelog for v2.6.9. (#5807) Oct 30, 2018
CHANGELOG Update credits and changelog for v2.6.9. (#5807) Oct 30, 2018
CONTRIBUTORS Add missing name to CONTRIBUTORS (#5811) Nov 1, 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 Add audio translation schema for concept card (#5677) Oct 22, 2018
gulpfile.js Fix #5623 Move server launch to python (#5657) Sep 17, 2018
index.yaml Generalised Review System: Common suggestion view (#5419) Aug 15, 2018 Fix part of #4374: Add docstrings to python files (#5871) Nov 18, 2018 Fix #5663: Use pylint-quotes to enforce quote rule for Python code (#… Sep 24, 2018 Consolidate image and audio handlers to use one AssetDevHandler that … ( Nov 17, 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 Suggestions for questions part 1: Backend domain class and controllers ( Aug 6, 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 and get 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!