Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Document owners: Glib Glugovskiy Mariia Moskalenko

Approvers:

Context

This project initiative aims to improve the video playback experience within the Open edX platform. It's driven by a need for substantial enhancements to the existing video player, addressing multiple issues:

...

  1. Complex Integration Challenges: Difficulties arose in integrating the video player across various legacy sections (CMS, LMS views), posing substantial technical hurdles.

    1. The analysis of places where the new player needs to be displayed is here.

  2. Consideration for User Experience: Concerns about potential adverse impacts on user experience for learners and course creators if the new React XBlock's assets were are bundled inadequately. If the size of a single bundle is excessively large, or if it's not feasible to divide the bundle into smaller chunks, this could lead to the page's initial load time for users being longer than what is considered acceptable.

  3. Prioritization of Other Projects: Prioritizing the completion of the Studio MFE project and investigating alternative methods for rendering XBlocks in the LMS took precedence over the React Player initiative. We need to finish these projects to reduce efforts for the React video player integration in the Platform.

    1. Course Unit page transition into course authoring frontend app - WBS for Course Unit Page

    2. General Solution for ReactJS frontend in xBlocks - Brainstorm, Concept diagram

  4. Need for a Refined Implementation Strategy: Recognizing the necessity for a more effective implementation approach.

    1. Options are presented here.

...

  1. Update and extend the ADR according to our decision for the solution.

  2. Create ADRs for other needed scopes (such as feature parity with Video.js and deprecation, and migration).

  3. Make changes to the Decomposition of the implementation.

  4. Change the Roadmap and agree on valuable and independent deliverables.

  5. Change the backlog according to the implementation strategy, and estimate work.

  6. Proceed with the projects implementation

The decisions that

...

we aggreed on

  1. ReactJS and Video.js Integration

...

  • To address the requirement for the gradual rollout of the new Video Player, a new feature toggle will be introduced using Django Waffle flags. This allows for a manual rollout and the ability to quickly revert to the old player if issues arise.

  • There will be a possibility to manage a feature toggle on a course level or organization level by applying `WaffleFlagCourseOverrideModel` and `WaffleFlagOrgOverrideModel`.

  • The Feature toggle will be used to determine which frontend for the Video Block should be used, whether it is legacy or the new one.

List of

...

artifacts collected before and during the technical discovery