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.

How to Get Involved

We are particularly interested in people working on new XBlocks and new Checkers 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.

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 a component architecture for building courseware.

    This is a pre-alpha release of the XBlock API, to gather input from potential users of the API. We like what is here, but are open to suggestions for changes. We will be implementing this shortly in the edX LMS.

    This repo contains the core code for implementing XBlocks as well as a simple workbench application for running XBlocks in a small simple environment.

  4. edx-ora (Open Response Assessor)

    The Open Response Assessor will take a submission from an XQueue installation, pass it through machine learning grading, peer grading, and staff grading as appropriate, and return a result to LMS. This is to be used with the edx-platform and XQueue. It allows for the assessment of open response problems on the edX platform.

  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.