7. Ways to Extend Open edX (Updated, May 2016)

An Xblock is an extensible system written in Python that processes user input, stores course content, displays it, etc. Learn more by reading Chapter 8 as well as at https://github.com/edx/XBlock .

2. LTI components

Open edX supports LTI 1.1, and LTI 2.0 is in development. It is the external standard and applicable to platforms such as Canvas. See the available apps at eduappcenter.com.

The following is an overview of how to integrate LTI (Learning Tools Interoperability) components. Once we have the required authentication parameters such as the consumer key and consumer secret, in addition to the launch URL and possibly context and resource link IDs (depending on the LTI tool), we may do so by logging into “Advanced Settings” under “Settings” on Studio. Enter “[“lti”]” as a Policy Value under the “advanced_modules” Policy Key.

Under “lti_passports”, add the ID, key and secret following this format: [“<id>:<key>:<secret>”]. Additional authentication parameters will depend on your LTI tool provider’s needs. Piazza’s integration provides a great example.

Set its visibility to public and start using it by clicking on “View resource in a new window”.

This extension is good to grade and display new types of problems. Unlike XBlocks, JSinput runs on the browser which means that instructors can take advantage of it without modifying the platform on the server.

You can change anything, although it is not easy. As stated in “4. Open Source Initiative”, you must keep Open edX’s AGPL license in mind. However, the XBlock API works under a more permissive license, Apache 2.0.

5. Open edX REST APIs

Open edX includes a suite of APIs that allow you to build applications that interact with the edX platform.

These REST APIs, which use OAuth 2.0 for authentication, are rapidly growing and evolving.

Currently the Open edX Platform includes the following APIs: course structure, enrollment, mobile, profile images, user and data analytics.

6. Custom grader

Grading does not necessarily have to take place on the main server. This allows the instructors to return and render elaborate dynamically created HTML blocks as answers as opposed to just letters or numbers.

Depending on the extension points used, difficulties and costs will appear.

UC Berkeley offers a good example of what adding extensions to edX is like. Their instructors and students use HTML5, JavaScript and Python to add new functionalities to courses. Berkeley’s wiki has more information.

Top 10 Features Released to Open edX in the Last Year

These are Open edX’s Top 10 features released in the last year, according to Beth Porter, Vice President of Product at edX.

Teams & Profiles
Enable learners to discover and participate in small group collaboration with others in a larger course.

Notes
Allow learners to annotate in courses for easy reference and retention.

Bookmarks
Allow learners to easily refer back to content that is interesting and relevant to their learning.

Cohorts
Instructors can create cohorts of similar people to target content and discussions.