How are Community-theme-tutor and MFEs working in Open edX®?

A technical article about working with the Community-theme-tutor and MFEs in Open edX® projects.

Article banner

WHAT IS TUTOR?

Tutor will help you set up an Open edX® platform for your university, school, or company. Open edX® is feature-packed, modular, and highly scalable, but you don't have to be an Open edX® expert to keep track of all the bug fixes, security announcements, and new releases. Leave that job to us!

Tutor comes with state-of-the-art documentation, an intuitive plugin-driven system, and a transparent, Docker-based deployment environment that makes it easy to install, debug, customize, and upgrade Open edX platforms.

Tutor is a piece of software that takes care of exactly three things:

  • Project configuration: User-specific settings (such as secrets) are stored in a single config.yml file.
  • Template rendering: All the files necessary to run your platform are generated from a set of templates and user-specific settings.
  • Command-line interface (CLI): Frequently used administration commands are gathered in a convenient, unified CLI.

WHAT IS IN COMMUNITY-THEME-TUTOR AND MFES?

We are using Tutor version 15.3.0 along Olive release in community-theme, but MFEs are derived from the master branch. The project is mostly using default Tutor settings, and all customizations are for the sake of MFEs.

HOW IS OUR ENVIRONMENT WORKING?

As mentioned, we haven’t customized Tutor much, but we are using customized MFEs. We have created separate repos for Tutor-config and MFEs as follows:

Community-theme-tutor (contains Tutor configuration and customized MFEs repos configurations as shown in the following screenshot).

This repo also has a pipeline with Ansible roles to deploy Tutor to "community.abzt.de", rated as the Parent repository.

How is the pipeline working at the Parent repo?

  • Build Open edX docker image
  • Build MFE docker image by fetching configuration from all MFEs repositories
  • Push these images to Docker registry
  • Deploy to Babilonia server using Ansible Roles

Below are the MFEs repositories:

  • Community-theme-Home
  • Community-theme-learning
  • Community-theme-account
  • Community-theme-course-about
  • Community-theme-profile
  • Community-theme-gradebook

All these MFEs contain our customized configuration, and the Home and Course-about MFEs are purely built by us.

Apart from configuration, we have also customized the MFEs for customized APIs.