FC-0007 - Piral Prototype Documentation and Notes

This document provides an overview of the Open edX Piral Shell Application, which is an implementation of the Piral Framework that addresses the requirements outlined in FC-0007. The complete prototype showcasing the use of piral-core to federate open edX MFEs is available at the following GitHub repository: GitHub - hammerlabs-net/frontend-app-shell: A Piral shell application for use with Open edX MFEs.

Overview:

The prototype comprises a simple Piral shell instance which includes two Piral plugins that extend the Piral API, and a mock pilet feed service as defined in the Piral Specification. The shell implements the lifecycle methods of the open edX frontend-platform library and exposes the endpoints of the library to Pilets (microfront ends - MFEs) loaded by the shell.

Additionally, the prototype includes modified versions of the Open edX Learning and Account MFEs, refactored to build packages according to the Pilet Specification. It also features modified versions of the Open edX Header and Footer components, now built as pilets.

Minor modifications were made to frontend-build, paragon, and frontend-platform for compatibility purposes. As we explore further, it is worth discussing how these existing projects can best align with the Piral model moving forward.

Open edX Piral Shell

The open edX Piral shell is a container application that relies on the piral-core@1.0.1 libraries. The shell fulfills several requirements for the proposed solution, including:

  • MFE composition for domain-specific applications like LMS and Studio.

  • Universal routing between loaded MFEs.

  • Common user experience elements and components such as headers, footers, and navigation.

  • A streamlined developer experience.

  • Common management of dependencies (e.g., React).

  • Common ru