fbpx
Request a Demo
Open edX Technology Stack: What's Inside?

Open edX Technology Stack: What’s Inside?

Open edX is a platform for creating, delivering, and managing training courses of varying complexity. This article will look closely at the Open edX platform and what technologies it is based on. So without further ado, let’s get started.

Table of Contents
Member of the Board, Raccoon Gang

Sergiy has 18 years of experience in eLearning and management. Creating educational programs, career paths, online and offline courses he is making the educational world better as a co-founder of RG.

Open edX Technology Stack: What’s Inside?

Open edX: Main Technologies Behind the Scenes

Before delving into the main Open edX technology stack, it is worth going through the basics of the platform itself and explaining exactly what an Open edX is.

Global Overview

Thanks to the Open Edx Learning management system, teachers and editors have the opportunity to conduct full-fledged classes regardless of their location and the location of learners. Open Edx consists of several components interconnected by exchanging data (where possible) through various APIs. The entire Open edX platform is built in Python using the Django framework for web applications.

The cornerstone of the entire Open edX technology stack is edx-platform, which contains all the necessary functionality for creating, delivering, and managing online courses (LMS and Studio). The platform stores student data in MySQL tables. All data on courses LMS stores in MongoDB, a document-oriented database management system.

Open edX technology stack

Open edX technology stack

Front-End Side

The Front-end Open edX technology stack is supported by Django that uses Mako (a Python-based template library) to generate front-end templates. The front-end part of the platform is written in JavaScript, while the developers also implemented some parts of the code written in CoffeeScript. However, the developers are currently working on the complete porting of all code to JavaScript. On the client-side, the Backbone framework is used. Do not forget about the CSS, which Sass and the Bourbon framework supplement.

Courses

Any course on the Open edX platform consists of modules called XBlocks that allow writing new XBlocks that will expand the existing set of course components.

Discussions

Open edX technology stack supports discussions between students in the course, and they work using autonomous web services called independently deployed applications (or simply IDA). In this case, these IDAs are called comments. The same comment service includes a notification process explicitly added to implement the ability to send notifications to students about updates to topics of interest. This component is written in Ruby instead of Python using the Sinatra framework.

Back-End Side

Even though most of the background tasks are performed using web applications, some processes are pretty extensive for them, and in such situations, dedicated background workers come to the rescue. Such operations are assigned to a queue going to one of the tools: Celery and RabbitMQ. RabbitMQ is a queue broker, while Celery is a system for managing task queues. In simple terms, tasks are put in a row, and then Celery workers take them from there and execute them.

Tasks are listed as follows:

  • Evaluation of the entire course
  • Mailing of letters
  • Creation of certificates and so on

In addition, the Open edX technology stack includes a separate XQueue tool that is responsible for the heavy processes for assessing student performance. For example, a student submits a task to the LMS, therefore it is added to the XQueue. The XQueue tool then evaluates the problem with an external service and sends the response back to the LMS.

Search

The developers have implemented the popular Elasticsearch tool, a free software search engine, to create a convenient and functional search within the LMS.

Additional Technologies

This section will look at an additional Open edX technology stack integral to the Open edX LMS.

  • EASE (Enhanced AI Scoring Engine). This tool (a repository with functions) based on machine learning is implemented for a more convenient and faster classification of textual content (essays, etc.).
  • CS comments service. This separate system is implemented for full commenting, nested comments, and polls to work.
  • Codejail. It is a standalone library that helps you run untrusted code in a safe environment. The primary execution language is Python, but it can be adapted for other programming languages.
  • Xserver. This tool accepts student code submissions from the LMS and runs the code using separate courseware graders.

Wrapping Up

This Open edX technology stack forms the backbone of the entire LMS platform. Separately, these technologies represent highly specialized tools. Still, in synergy, they allow Open Edx to help thousands of educators create thousands of courses every day.

In addition, this architecture allows you to modernize the LMS, implementing various ideas designed to improve the learning experience. And if you need a custom Open edX solution, the Raccoon Gang experts are ready to provide you with expertise.

We have years of experience with the Open edX platform and have implemented the online learning requirements for clients from various industries. All you need is to drop us a line, and our representative will contact you to discuss all the details of your project.

Back to Blog

Rate this article!

Average 5 / 5. Ratings: 1

No ratings yet. Be the first to rate.

Follow us on social media

Recommended Articles:

  • 2090 02/Feb/2021
  • 1485 24/May/2021
Table of Contents
    Schedule a Demo Schedule a Demo
    Please proceed to the next page for the most convenient date and time for a demo What do we mean by «demo»? How long would the demo take?
    Request demo