Welcome to edX's open source initiative – Open edX – where developers around the globe are working to create a next-generation online learning platform to bring quality education to students around the world.

EdX is a not-for-profit enterprise composed of dozens of leading global institutions, the xConsortium. Since our founding in May 2012, edX has been committed to an open source vision. We believe in pursuing non-profit, open-source opportunities for expanding education both online and on-campus.

Open edX is already receiving code contributions from around the world. We would like to recognize Stanford University, Google, MIT, The University of Queensland, Tsinghua University, UC Berkeley, and Harvard University for their significant contributions, staff support, and overall passion for the Open edX initiative. Together, we are accelerating the future of learning.

The Open edX Platform

Open edX is implemented mostly in Python for the server, and of course Javascript for the browser. The code is being made available under an AGPL license.

The main repository is edx-platform which includes both the LMS and the authoring tool, Studio. We have a number of other repositories outlined below, some of which may be useful even outside of the main platform.

If you are interested in writing components for our next-generation component architecture, take a look at XBlock. For our deployment and configuration tools, see configuration.

You can find release notes and documentation for developers, researchers, and course staff at docs.edx.org.

How to Get Involved

We are particularly interested in people working on new XBlocks as well as people who can assist with internationalization and localization.

Some projects have their own mailing list but there is also edx-code, for discussion about the Open edX code in general. Regardless of your particular interests, you should consider joining that mailing list.

Server administration, installation, and other operations discussion happens on the openedx-ops mailing list, and translation issues are covered on the openedx-translation list.

We also hang out in the #edx-code IRC channel on Freenode.


Current Projects

  1. edx-platform

    edx-platform is the main repository covering both the LMS and the authoring tool, Studio.

    It also includes XModules (the courseware components that are being upgraded to the new XBlock architecture in the coming months) and various checkers.

  2. Configuration

    Configuration provides a simple, but flexible, way for anyone to stand up an instance of the Open edX platform that is fully configured and ready-to-go.

    The reference platform is provisioned using an Amazon CloudFormation template. When the stack has been fully created you will have a new AWS Virtual Private Cloud with hosts for the core edX services. This template will build quite a number of AWS resources that cost money, so please consider this before you start.

    The configuration phase is managed by Ansible. We have provided a number of playbooks that will configure each of the edX service.

  3. XBlock

    XBlock is our component architecture standard for building courseware.

    Open edX courses are built of XBlock learning components. XBlocks can be created by third parties to extend the functionality of Open edX and other learning platforms.

    There are two repos: one contains the core code for implementing XBlocks, the other is the SDK with tools for building XBlocks, including a simple workbench application for running XBlocks in a small testing environment.

  4. edx-ora2 (Open Response Assessor)

    The Open Response Assessor is a problem type that allows authors to ask open-ended questions that have long-form text responses, with the option to attach an image to the response. These problems include peer assessments and self assessments, in which students grade each other and themselves, as well as example-based artificial intelligence assessments, in which an algorithm grades responses based on example responses that professors provide. Because humans grade responses in peer assessments and self assessments, professors can ask questions that have more complex answers than other problem types. ORA also includes an optional student training section in which authors provide sample responses that help teach students how to grade responses.

  5. CS Comments Service

    CS Comments Service is an independent comment system which supports voting and nested comments. It also supports features including instructor endorsement for education-aimed discussion platforms.

  6. CodeJail

    CodeJail manages execution of untrusted code in secure sandboxes. It is designed primarily for Python execution, but can be used for other languages as well.

    Security is enforced with AppArmor. If your operating system doesn't support AppArmor, then CodeJail won't protect the execution.

  7. XQueue

    XQueue defines an interface for the LMS to communicate with external checker services. For example, when a student submits a problem in the LMS, it gets sent to the XQueue. The XQueue then has the problem graded by an external service and sends the response back to the LMS.

  8. XServer

    XServer accepts student code submissions from the LMS and runs the code using courseware checkers. This repo does not include the checker code.

  9. notifier

    notifier sends daily digests of new content to subscribed forums users, with a goal of eventually supporting real-time and batched notifications of various types of content across various channels (e.g. SMS).


Questions & Feedback

  • Open edX Feedback

    We welcome any questions or feedback about this site on the edx-code mailing list.

  • Security Concerns/Questions

    Security issues should be reported privately to security@edx.org.

  • General edX Questions

    If you have questions about edX in general, beyond our open source code, please write to info@edx.org.