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 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.
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.
We also hang out in the #edx-code IRC channel on Freenode.
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.
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.
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.
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.
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.
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.
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.
XServer accepts student code submissions from the LMS and runs the code using courseware checkers. This repo does not include the checker code.
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).
edx-analytics-dashboard displays key metrics to instructors about the enrollment, engagement, and performance of students in their courses.
edx-analytics-pipeline analyzes data from tracking logs and edX databases and stores the results in a database that is exposed to consumers by the edx-analytics-data-api.
We welcome any questions or feedback about this site on the edx-code mailing list.
Security issues should be reported privately to firstname.lastname@example.org.
If you have questions about edX in general, beyond our open source code, please write to email@example.com.