This article was written by team member Fox Piacenti.
The parts of the Open edx platform are numerous and can be confusing. Newcomers lose themselves in the project's size. Getting your bearings can be a challenge, as we covered in our article on the DevStack. However, a quick overview can go a long way in understanding the Open edX platform's Components. We shall see how they work to bring together the full learning experience.
Not all components are used on every installation of the Open edX platform, and there are some less common components that are not listed here. However, this should be more than enough to orient you.
If you like, you can also watch this community meetup video where Ned from edX explains the difference between edX and Open edX and I walk through several components of the platform:
The Learning Management System (LMS)
The Learning Management System is the Open edX Component that everyone knows and most thinks of when thinking of the platform. It’s the site where learners go to learn. It also keeps track of users, grades, course progress and tools for instructors to manage their students.
Special among all the other Open edX Components, it handles authentication across other services and also contains the most code. If you’re working on the Open edX platform, you will work with the LMS in some fashion.
Many other entries in this list are actually part of the LMS’s codebase, but are so noteworthy as to require their own entries.
The Course Creation Tool, or ‘Studio’
The course creation tool, commonly called the ‘Studio’, is the platform's course authoring tool. It allows you to build courses for learners and customize the settings for them. You can upload handouts, create libraries of content for reuse, and work with XBlocks to compose your ideal online course.
The course construction tool is a CMS. You can see all of the sections and units of your course at a glance, drill into every piece of information your learners need, and update them with ease. You can publish updated versions of your course at any time, and even specify when your courses will run.
As a bonus, you can even set up a ‘new run’ of a course, allowing you to use the courses you’ve built again and again for new students.
XBlocks: The Parts of the Open edX Platform that Keep on Giving
XBlocks are the ‘killer app’ of the Open edX platform. They are the small pieces of content-- videos, text, or special interactive tools course authors build with. They’re easy to use, easy to plug in, and friendly for developers. In fact, you can create your own XBlock and test it without setting up a full copy of the Open edX software. The library of XBlocks continues to grow and covers a wider set of use cases than anyone anticipated.
In fact, some cool blocks include a block to poll students, a block to create an automated chat bot, a block to show survey results from learners on a world map, For nearly every case you can think of, there’s a block. And if there isn’t, the XBlock development tutorial can help you make one to your needs!
Authors build courses out of XBlocks, so you’ll want to know them well. There are a few different implementations of the XBlock runtime– one in the Studio, one in the LMS, one in the SDK, and a couple in different Micro FrontEnds (MFEs).
Course Discovery: A Search Engine for Course Content
Course Discovery is an ‘Independently Deployed Application’. We'll cover a few in this article. Independently Deployable Applications are applications that run alongside the LMS, and usually interoperate with it using APIs. They usually use the LMS to authenticate users as needed.
Course Discovery doesn’t have pretty front-end, but it indexes information about courses to help make searching them easier. Discovery works with other tools for cataloging and fetching information about courses.
Publisher: A Tool for Managing New Courses
For example, the Publisher tool is used to approve and annotate courses for the Discovery service. Large organizations use publisher to review courses provided by client authors. It makes the workflow of reviewing and approving these courses easy by providing a streamlined workflow.
Search tools use the information provided by Publisher. There’s not an official search tool that uses this information and other information from Course Discovery yet, but we’re working on one which may help.
In fact, we recently published a full article on Publisher--go and read it!
XQueue: Grading Outsourced
XQueue takes information from problems submitted to it, and either sends it to other services (pushing) or lets those services retrieve problems as needed (pulling). This flexibility is key for some of the most advanced problems the platform supports.
The “Comments Service,” also known as the Discussion Forum
Each course has its own forum, and learners are able to communicate through it. This is a great way to keep them engaged. Did you know that most of the code for the forums is actually its own project? Well, it is, and it’s another one of those Independently Deployed Applications we mentioned earlier. The LMS communicates with the comments service via API, and renders the results on screen.
Blockstore: The Next Generation of Learning Content Storage
You may have heard of Blockstore, the new technology that’s driving the newest Open edX’s Components. Launching LabXChange required the development of Blockstore. Blockstore simplifies storage for reusable learning content. Eventually, all new courses will be built on it.
Most Open edX installations don't use Blockstore, but as time goes on, most will.
E-Commerce: Monetize Your Learning Content
While many courses on edX.org are free, you can pay to get a certificate on most of them. The code that drives the checkout experience is the Open edX E-commerce project. The Open edX community developed it to take a wide range of payment providers. Among them are Apple Pay, Paypal, Stripe, and Cybersource. It’s another Independently Deployable Application, and if your institution wants to take payment for courses or certificates, it’s worth checking out!
The Analytics Dashboard, or “edX Insights”
With a powerful online learning platform like the Open edX platform, you need metrics. The standard tools available in the instructor dashboard can give you basic information about your students, but you may need more. With knowledge of how your students interact with your course, where they get stuck, when they drop off, you can improve the learning experience.
Thankfully, the platform provides a solution custom-built for understanding the behavior of learners. The Analytics Dashboard will break the data down for you, and give you some pretty graphs for it, too! You need special knowledge to install the dashboard, and the platform does not include it by default. However once it’s running, it can pay for itself by teaching you how your courses are actually used.
We’ve gone over several Independently Deployable Applications, some Micro Frontends, and some little-known parts of the Open edX Platform. There are more pieces to the Open edX architcture than we've shown here, and we have the expertise to deploy any of them. If you’re looking to get your Open edX installation set up with the best tools, drop us a line!