MFE Rewrite Tracker

meSee also: this initiative and its child tickets.

Table of contents:

Replacement Statuses

More than one can apply!

  • Not started

  • needs improvement

  • in development

  • parity achieved

  • Live on edx.org

  • Default in Open edX

  • LEGACY REMOVED!

The Big List: All Known Legacy Pages, With and Without MFEs Replacements

Page

Old (Backend Service & Path)

New (MFE & Path)

Toggle (Waffle Flag)

Status, DEPR Link, Repo Links, Product Review Links, Other Notes

Page

Old (Backend Service & Path)

New (MFE & Path)

Toggle (Waffle Flag)

Status, DEPR Link, Repo Links, Product Review Links, Other Notes

Studio: Logged-out Landing Page

CMS

/

frontend-app-course-authoring

/

TBD

Not started

Studio: Preview

LMS-Preview

/???

frontend-app-learning OR

frontend-app-authoring

/TBD

TBD

Not started

https://github.com/openedx/frontend-app-learning/issues/1455

This is the only thing blocking the removal of legacy Courseware Sequence view. But to remove this, we would need to one of several things, none of which would be trivial:

  • Deprecate the Preview feature

    • (improve Studio enough so that it is a sufficient preview?)

    • what features would we lose here?

      • testing masquerading

      • testing nav as a student

  • Change the read-optimized LMS data (block structure, learning_sequences, edx-when, course overviews) so that they expose Draft data for the Learning MFE to consume.

  • Migrate courses over to Learning Core, which provides a better view of Draft content which the Learning MFE could consume.

Studio: Course Custom Pages

CMS

/tabs/{course_id}

frontend-app-course-authoring

/{course_id}/custom-pages

contentstore.new_studio_mfe.use_new_custom_pages

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

  • 2024-09-05: Kyle confirmed parity, this should be good to drop.

Studio: Course advanced settings

CMS

/settings/advanced/{course_id]

frontend-app-course-authoring

/{course_id}

contentstore.new_studio_mfe.use_new_advanced_settings_page

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course Schedule & Details

CMS

/settings/details/{course_id}

frontend-app-course-authoring

/course/{course_id}/settings/details

contentstore.new_studio_mfe.use_new_schedule_details_page

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course grading

CMS

/settings/grading/{course_id}

frontend-app-course-authoring

/course/{course_id}/settings/grading

contentstore.new_studio_mfe.use_new_grading_page

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course updates

CMS

/course_info/{course_id}

frontend-app-course-authoring

/course/{course_id}/course_info

contentstore.new_studio_mfe.use_new_updates_page

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course Import

CMS

/import/{course_id}

frontend-app-course-authoring

/course/{course_id}/import

contentstore.new_studio_mfe.use_new_import_page

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course Export

CMS

/export/{course_id}

frontend-app-course-authoring

/course/{course_id}/export

contentstore.new_studio_mfe.use_new_export_page

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course Video Uploads

CMS

/videos/{course_id}

frontend-app-course-authoring

/course/{course_id}/videos

contentstore.new_studio_mfe.use_new_video_uploads_page

EXTRA CONFIG IN .env

ENABLE_VIDEO_UPLOAD_PAGE_LINK_IN_CONTENT_DROPDOWN=true

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course Files & Uploads

CMS

/assets/{course_id}

frontend-app-course-authoring

/course/{course_id}/assets

contentstore.new_studio_mfe.use_new_files_uploads_page

parity achievedLive on edx.orgDefault in Open edX

https://github.com/openedx/studio-frontend/issues/381

Should also be part of 2Us DEPR around Studio Frontend MFE

Studio: Logged-in Home Page

CMS

/home/

frontend-app-course-authoring

/home

new_studio_mfe.use_new_home_page

parity achievedLive on edx.orgDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course content outline editor

CMS

/course/{course_id}

frontend-app-course-authoring

contentstore.new_studio_mfe.use_new_course_outline_page

parity achievedDefault in Open edX

As of May-2024:

  • in Beta Testing on edx.org

  • Not live on edge.edx.org

Studio: Unit editor

CMS

/container/{usage_key_string}

frontend-app-course-authoring

/course/{course_id}/container/{usage_key_string}

contentstore.new_studio_mfe.use_new_unit_page

in development

https://github.com/openedx/edx-platform/issues/35261

Studio: Course Team

CMS

/course_team/{course_id}

frontend-app-course-authoring

/course/{course_id}/course_team

contentstore.new_studio_mfe.use_new_course_team_page

parity achievedLive on edx.org

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course Textbooks

CMS

/textbooks/{course_id}

frontend-app-course-authoring

/course/{course_id}/textbooks

contentstore.new_studio_mfe.use_new_textbooks_page

parity achievedDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Course Group Configurations

CMS

/group_configurations/{course_id}

frontend-app-course-authoring

/course/{course_id}/group_configurations

contentstore.new_studio_mfe.use_new_group_configurations_page

parity achievedDefault in Open edX

Should be part of 2Us DEPR around Studio Frontend MFE

Studio: Page & Resources

CMS

/???

frontend-app-course-authoring

/course/{course_id}/pages-and-resources

discussions.pages_and_resources_mfe

parity achievedLive on edx.orgDefault in Open edX

https://github.com/openedx/edx-platform/issues/35254

Studio: Text (HTML) Editor

CMS

/???

frontend-app-course-authoring

/???

new_core_editors.use_new_text_editor

needs improvementLive on edx.org

https://github.com/openedx/edx-platform/issues/34692

Studio: Problem (CAPA) Editor

/???

frontend-app-course-authoring

/???

new_core_editors.use_new_problem_editor

needs improvementLive on edx.org

https://github.com/openedx/edx-platform/issues/35256

Studio: Video Editor

/???

frontend-app-course-authoring

/???

new_core_editors.use_new_video_editor

parity achievedLive on edx.org

https://github.com/openedx/edx-platform/issues/35257

Studio: Library Authoring

(all pages)

CMS

/home_library

/library/*

frontend-app-course-authoring

/???

In Django settings:

MFE_CONFIG_OVERRIDES.setdefault('course-authoring', {})['LIBRARY_MODE'] = 'mixed'

 

in development

In development: Schema, OpenCraft, and Axim.

(Slack: #content-libraries-relaunch-dev)

https://github.com/openedx/edx-platform/issues/32457

Course Dashboard

aka Learner Dashboard

aka Learner Home

LMS

/dashboard

frontend-app-learner-dashboard

/???

 

learner_home_mfe.enabled

Live on edx.orgDefault in Open edX

[BD-08] B2C Learner Dashboard MFE Conversion

https://github.com/openedx/edx-platform/issues/35326

Note: This is only the learner course dashboard. The learner programs dashboard does not have an MFE replacement yet.

 

Login/Registration

LMS

/login

/register

/password_assistance

frontend-app-authn

/login

/register

/reset

FEATURES['ENABLE_AUTHN_MICROFRONTEND']

needs improvementLive on edx.orgDefault in Open edX

https://github.com/openedx/public-engineering/issues/81

https://github.com/openedx/edx-platform/blob/38320f8433427111c6cfb2bfaaa70aec5b989053/lms/templates/student_account/login_and_register.html

MISSING FEATURE IN MFE: Custom registration fields.

Also works with .underscore files

Profile

LMS

/u/{username}

frontend-app-profile

/u/{username}

???

Live on edx.orgDefault in Open edX

https://github.com/openedx/public-engineering/issues/71

Account Settings

LMS

/???

frontend-app-account

/

???

Live on edx.orgDefault in Open edX

https://github.com/openedx/public-engineering/issues/71

ID Verification

LMS

/???

frontend-app-???

/???

???

parity achievedLive on edx.org

Unclear whether live in named release.

Needs DEPR.

Course Home: Dates

LMS

/???

frontend-app-learning

/course/{course_id}/dates

N/A

Legacy removed!parity achievedLive on edx.orgDefault in Open edX

https://github.com/openedx/public-engineering/issues/50

Course Home: Outline

`LMS

/???

frontend-app-learning

/course/{course_id}/home

N/A

Legacy removed! parity achievedLive on edx.orgDefault in Open edX


https://github.com/openedx/public-engineering/issues/50

Course Home: Progress

LMS

/courses/{course_id}/progress

frontend-app-learning

/course/{course_id}/progress

course_home_mfe.course_home_mfe_progress_tab

parity achievedLive on edx.orgDefault in Open edX

Needs a DEPR

The MFE displays grades under some circumstances where the old progress page did not. MIT is using the course waffle flag to disable the MFE for some courses on edx.org.

Course Home:

Custom Pages

LMS

/courses/{course_id}/{customtab_block_id}

frontend-app-learning

/course/{course_id}/{tabs}/{customtab_block_id}

TBD

Not started

This is low hanging fruit! We just need to make a course home tab view that iframes in the CustomTabBlock, which is just an HtmlBlock subclass!

This could be done at parity quickly. I don’t think it warrants a DEPR. We should ticket this up with the help wanted label.

Courseware: Sequence

LMS

/???

frontend-app-learning

/???

N/A

parity achievedLive on edx.orgDefault in Open edX

Legacy is partially removed. Full removal is blocked by studio course preview, which doesn’t yet work in learning mfe.

https://github.com/openedx/public-engineering/issues/53

Courseware: render_xblock

LMS

/xblock/{usage_key}

LMS

/xblock/{usage_key}

N/A

Not started

This is the endpoint that renders a “chromeless” (nav-free) xblock.

This will never be removed entirely but, eventually, we can seriously simplify it to the point where it’s just a thin wrapper around the next item (built-in XBlock views).

Courseware: Built-in XBlock Views

edx-platform

(called by Python, not accessed directly by URLs)

xblocks-contrib

(called by Python, not accessed directly by URLs)

xmodule.use_extracted_block.{block_tag}

in development

https://github.com/openedx/edx-platform/issues/34827

These views will not be turned into MFE pages, but they will be extracted out of edx-platform and into: https://github.com/openedx/xblocks-contrib/

Courseware: Proctored Exam

LMS

/???

frontend-app-learning

(via frontend-lib-special-exams)

/???

 

needs improvementLive on edx.org

https://github.com/openedx/edx-proctoring/issues/1226

Replacement repo:

https://github.com/edx/frontend-lib-special-exams

Courseware: Search

LMS

Dave: I don’t think this is actually reachable any longer, since we force you into the MFE experience for that courseware page view.

frontend-app-learning

/course/{course-key}/home?q=search-term

courseware.mfe_courseware_search

NEED DISCOVERY: is this at parity? is it live for edx.org, open edx?

Link to usage in edx-platform

 

Program Dashboard

LMS

/dashboard/programs

TBD

/TBD

 

Not started

Course Certificates

LMS

/certificates/{cert_id}

TBD

/TBD

 

Not started

Program Certificates

Credentials

/credentials/{cert_id}

TBD

/TBD

 

Not started

Track Selection

LMS

/???

TBD

/TBD

course_modes.use_new_track_selection ?

NEEDS DISCOVERY: What is the status? Do we rewrite or DEPR?

Course Messaging

LMS

/???

TBD

/TBD

 

NEEDS DISCOVERY: What is the status?

Basket / Payment

Ecommerce

/???

frontend-app-order-history

/???

 

Live on edx.org

NEEDS DISCOVERY: Is replacement enabled in open edx? Is it at parity?

https://github.com/openedx/public-engineering/issues/68

Order History

Ecommerce

/???

frontend-app-ecommerce

/???

 

Live on edx.org

NEEDS DISCOVERY: Is replacement enabled in open edx? Is it at parity?

https://github.com/openedx/public-engineering/issues/71

Discussions

LMS

/???

frontend-app-discussions

/???

 

Live on edx.orgDefault in Open edX

NEEDS DEPR

NEEDS DISCOVERY: Is this sufficiently at parity?

Learner Record

Credentials

/???

frontend-app-learner-record

/TBD

 

Live on edx.orgDefault in Open edX

Replacement:

Instructor Dashboard (all pages)

LMS

/???

frontend-app-gradebook (should be renamed to frontend-app-instruction, or something)

 

Not started

Should subsume

Discover New Courses

LMS

/???

frontend-app-catalog?

/TBD

 

Not started

Course About

LMS

/???

frontend-app-catalog?

/TBD

 

Not started

Reference: What MFEs are there?

The full list of Open edX MFEs, including ones that are experimental or under development, can be found by searching “frontend-app-” in the openedx GitHub org: https://github.com/orgs/openedx/repositories?q=frontend-app-

The list of Open edX MFEs that run out-of-the-box in Tutor can be found by looking at the CORE_MFE_APPS variable in the tutor-mfe plugin’s plugin.py file:

Reference: MFE Base URLs

MFEs follow a simple naming pattern. Given some lowercase hyphen based name{APPNAME} (for example, learning)….

  • The repo is https://github.com/openedx/frontend-app-{APPNAME}

    • Example: https://github.com/openedx/frontend-app-learning

  • The base URL in Tutor is https://apps.{LMS}/{APPNAME}

    • Example: https://apps.myopenedx.site/learning

  • The base URL on edX is https://{APPNAME}.edx.org

    • Example: https://learning.edx.org

    • EXCEPTION: For learner-dashboard, the URL is not https://learner-dashboard.edx.org. Instead, it’s https://home.edx.org.

More References