Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Abstract

This community proposal aims to establish a global Open edX extensions marketplace. The marketplace will enhance the Open edX platform's visibility by attracting new operators seeking customizable and modular LMS solutions. It will also expand the platform's capabilities and foster community growth

In this proposal, we analyze existing marketplace solutions and identify key features that could serve as prototypes for the Open edX marketplace. We also outline a process for maintaining and supporting the marketplace through community working groups.

Additionally, we evaluate a technical approach for integrating new solutions into the marketplace using Tutor plugins, along with centralized and third-party Tutor Plugin Indexes. Extensions may include but not limited to Python and ReactJS extensions of the platform core, infrastructure extension using Tutor plugins mechanism, Mobile plugins for Open edX mobile apps, xBlocks, integrations with 3rd party systems in the form of Tutor plugin.

The work on this proposal was started as Marketing-wg initiative and can be tracked using this GitHub issue.

Context & Background

According to the core product strategy, the Open edX platform aims to be the leading open-source online learning management system for adult education, growing the community around it, and encouraging more contributions to the platform. To support this strategy, marketing-wg proposes to reimagine and create a centralized directory for Open edX plugins and extensions — Open edX Extensions Marketplace.

The main objectives for this new centralized marketplace are:

  1. Improve the overall user experience and boost platform adoption by

    1. providing the ability for current and potential Open edX operators and developers to explore third-party tools and services available in Open edX community

    2. simplifying the process of integrating plugins, making it easier for operators to build comprehensive educational solutions without significant custom development efforts

    3. standardizing support and documentation approaches for plugins, making it easier for users to find help and resources for plugins integration

  2. Contribute to the development and advancement of the OeX platform by

    1. encourage Open edX community developers to follow pluginization pattern extending Open edX, therefore including more extension points to Open edX platform over time.

    2. creating a centralized place for OeX community developers and OeX providers to share and showcase their solutions, indirectly highlight their services.

  3. Enable data-driven decision making by

    1. providing analytics and insights on plugin usage, helping the Open edX community make informed decisions about future development priorities.

This proposal is inspired by a range of market-leading platforms that offer users the possibility to easily adjust the main solution according to their needs by integrating extensions developed and maintained by platform developers as well as by third parties. Examples of the existing marketplaces include: Shopify, WordPress, Odoo, Atlassian, Google Workspace, Salesforce, and Moodle. In addition, several simpler community plugin sharing options were evaluated - https://backstage.io/plugins/ (https://github.com/backstage/community-plugins/tree/main), https://github.com/apache/superset/wiki/Superset-Third%E2%80%90Party-Plugins-Directory.

The Open edX community has developed and enhanced tools, technologies, and approaches that focus on extending Open edX. By utilizing them, the effort required to establish the Open edX Extensions Marketplace may be significantly lower than it was previously.

Scope & Approach

What existing Open edX solutions that might contribute to the launch of Open edX Extensions Marketplace?

Open edX extensions directory

The existing Open edX extensions directory is the second iteration of the XBlocks Directory, it lists many available extenstions, xBlocks, and plugins to Open edX, with categorization and serach. But it also has a few problems that make it hard to reach the goals set for this initiative.

  • The lack of detailed descriptions for extensions results in limited SEO capabilities and a poor user experience.

  • There is no indication as to whether the extension is maintained or which Open edX named releases are supported, resulting in a significant number of extensions being outdated.

  • There is no information about how to integrate the extension to the Open edX instance.

  • Direct feedback, ratings, and support options are not available.

  • Unspecific instructions for community developers on how to publish extensions on the marketplace.

Edly Tutor Plugins & Themes

The list of official Tutor plugins and themes available at https://edly.io/tutor/plugins-and-themes/ providing much better interface, providing detailed descriptions about the plugin, links to the source code and indication of the supported version, solwing much user experience challenges. However, the lack of clarity about publication of tutor plugins from the community developers, no feedback and rating options and focus only on officially supported plugins, sets apart this plugins index from the proposed Extensions Marketplace.

Tutor plugins

Tutor provides an extensible and convienient way to deploy Open edX installations, it is well supported and documented. In addition to that Tutor comes with a plugin system that ease deployment of the Open edX drastically.

Also tutor plugins are convienient way to describe programatically and share Open edX extensions in the community, most of the 3rd-party Tutor plugins follow the naming convention tutor-contrib-*, and can be searched in GitHub https://github.com/search?q=%22tutor-contrib-%22&type=repositories&s=stars&o=desc&p=1.

Tutor plugins can be discovered using https://docs.tutor.edly.io/reference/indexes.html

Tutor plugins can eventually enable “one-click” installation of the extensions for Open edX operators.

Hooks&Filters framework

Introduced in https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0050-hooks-extension-framework.html this framework received a little adoption before, mostly due to limited number of implemented events and filters. However, now hooks extension framework has enough extension points in edx-platform to support plugin development following Open-Closed principle.

Frontend Plugin Framework

Recently introduced in Redwood Frontend Plugin Framework, provides much needed mechanism to extend MFEs in Open edX via external NPM and React.js modules, or by adding iframe plugins into extension points called plugin slots.

This technology is not fully ready to support the plugin experience integrating it without additional MFE development.

The caveats for using frontend-plugin-framework that were discussed during frontend-wg meeting are:

  • There is a very little number of plugin slots exist in MFE as of Redwood release.

  • Operators should configure usage of plugins directly in MFE with JS Env Configuration.

  • MFE application should be rebuild to install or update plugins.

Even though this limitations doesn’t allow us to create complete e2e solutions without additional configuration and setup, the work on frontend-plugin-framework continues and as soon this issues are solved, it might be much easier for community to create one-click installable “full-package” solutions using Marketplace.

Comparison of the existing marketplace solutions on the market

During preparation of the proposal common marketplace solutions were analyzed to cover all necessary functionality that marketplace should include.

Marketplaces that were included into analysis are: Shopify, WordPress, Odoo, Atlassian, Google Workspace, Salesforce, and Moodle.

In the following image, you can see a matrix comparison of the functionality between marketplaces, as well as categorization of attributes every marketplace entry should include.

OeX Marketplace Brainstorm Space.png

Link to the whiteboard with analysis - Analysis Matrix

More details about each marketplace solution with screenshots - Marketplaces screenshots

Prototypes for Open edX Extensions marketplace

Based on the preliminary analysis of the marketplace solutions, figma mockups for the future marketplace UI/UX were prepared. These mockups include all necessary elements that marketplace should have, with mapping general ideas to Open edX context and presenting each marketplace entry as a tutor plugin.

Figma mockups can be found there:https://www.figma.com/design/EtOhGYUsv9E2Sm68oGJcCU/Open-edX-Marketplace?node-id=0-1&t=lJ4fASw8D7T3bE6E-1

What extensions will be available on the marketplace?

Extensions on the marketplace may include but not limited to Python and ReactJS extensions of the platform core, infrastructure extension using Tutor plugins mechanism, Mobile plugins for Open edX mobile apps, xBlocks, integrations with 3rd party systems in the form of Tutor plugin. Additionally, Open edX themes for platform and Paragon design system can be published on the marketplace under separate category themes.

Catalog page mockup

The marketplace catalog should include a search field and filters.

Each entry includes title, description, and a set of additional attributes described below.

It is proposed for the Marketplace catalog page to include the following categories:

  • Official Plugins

  • Official xBlocks

  • 3rd-Party Plugins

  • 3rd-Party xBlocks

  • Themes

Each plugin should have additional attributes for filtering:

  • Compatible versions - named release from All Open edX releases

  • Supported Languages

  • Maintainer / Vendor / Author

  • Rating / reviews

Other named attributes are considered to be added to enhance user experience, e.g., attr - Solution Type with values Python extension, MFE extension, Mobile extensions, etc., or attr - Domain with values Micro-credentials, Learning, Teaching, etc.

 Open Catalog page preview (please see figma for the latest design)
image-20240815-131427.png

Extension details / overview page

Plugin should be downloadable from the site and/or include View Source button with a direct link to GitHub repository.

Each catalog entry should include all the necessary attributes that are used for the filtering of the content. We propose to use a tabbed layout on the details page, including the following tabs:

  • Overview - Main information about the plugin, the idea is to either use Readme.md parsed directly from the repository or additional markdown document that can be put into docs directory in the repository.

  • More details - Include all the extension attributes in the table form

  • Reviews - Functionality for leaving comments and reviews

  • Versions - Table view of all available versions for package in relation to named release with View Source and Download buttons

  • Installation - Detailed instructions on how to install and configure plugin

 Open Overview page preview (please see figma for the latest design)
Product-Overview-1920.png

Installation details

 Open Installation page preview (please see figma for the latest design)
Product-Installation-1920.png

Plugin reviews

 Open Reviews page preview (please see figma for the latest design)
Product-Reviews-1920.png

Utilizing Tutor Plugins Index to add new extensions to marketplace

TBD

Process for maintaining Open edX Extensions Marketplace

The context diagram for the Open edX Extensions Marketplace includes five stakeholder roles Marketing Working Group, Maintenance Working Group, OeX Community Developers, Entities using OeX, Entities looking for LMS. Although, this list of stakeholders considered comprehensive for the first phases, additional stakeholders as Product-WG can be added with additional purpose as OeX Marketplace is growing.

OeX Marketplace Brainstorm Space (1).png

The selected activities in the OeX Marketplace context are described in the table below

Stakeholder

Activity

Process Description

Outcome

Marketing Working Group

Develop Marketplace that is available on http://openedx.org

Create and continually enhance the OeX Extension Marketplace, both in terms of technical capabilities and operational procedures.

  • Improved Open edX Market postion

  • Developed Marketplace

Maintain Process and operate OeX Extensions Marketplace

The Marketing Working Group will continuously review and and update processes within the Marketplace of Open edX Extensions including moderation extenstions that were reported by users.

  • The extensions on marketplace are up to date

  • It is clear of OeX community how to publish extensions on the marketplace

  • Marketplace is actively used by OeX stakeholders

Review extension application

Marketing Working Group review plugins descriptions and visual materials before publishing

  • All extensions on the marketplace are well described

Promote marketplace

The Marketing Working Group undertakes search engine optimization of the marketplace and promotes it through its various channels.

  • OeX website has visits growth

Collect analytics

The marketing team conducts an analysis of extension popularity, user feedback, and platform visit changes to gain insights into user and market requirements.

  • Data-driven decision making on OeX strategy

Maintenance Working Group

Maintain official plugins

The maintenance working group updates versions and maintains official plugins so that they correspond to the declared criteria for publishing on marketplace.

  • Official extensions on the marketplace are functional and operational with the latest versions and supported versions of Open edX

OeX Community Developers

Develop extensions

OeX Community Developers constantly develop new extensions for Open edX

  • New features and capabilities are included in OeX

Apply to publish extension

OeX Community Developers have a clear guidance how to publish the extensions on Marketplace.

After development extensions are applied to be shared on OeX Extension Marketplace

  • All existing functional and operational extensions to Open edX will be published in the OeX

  • After publishing, the extension indirectly promotes developer’s service

Maintain extension

OeX Community Developers update their extensions to keep it up to date with new releases of OeX

  • All extensions on the marketplace are functional and operational

Integrate plugins from marketplace

OeX Community Developers incorporate extensions from the Marketplace into their instances

  • Less custom development is needed for OeX instances

Leave feedback

OeX Community Developers provide feedback on enhancements or issues of extensions

  • All extensions on the marketplace are functional and operational

  • Extensions are constantly improved

Entities using OeX

Discover additional OeX capabilities

Entities using OeX discover further capabilities of OeX LMS available through extensions on OeX Extensions Marketplace

  • Less custom development is needed for OeX instances

  • All capabilities of OeX LMS are used

Integrate plugins from marketplace

Entities using OeX incorporate extensions from the Marketplace into their instances

  • Less custom development is needed for OeX instances

Use extensions & leave feedback

Entities using OeX provide feedback on enhancements or issues of extensions

  • All extensions on the marketplace are functional and operational

  • Extensions are constantly improved

Entities looking for LMS

Discover OeX capabilities

Entities looking for LMS discover further capabilities of OeX LMS available through extensions on OeX Extensions Marketplace and take this into considiration

  • More entities choose OeX as their LMS. Number of OeX instances is growing.

Open questions

  • Maintenance cost for keeping marketplace up to date

  • How to scale the process without losing quality overtime

Milestones

We suggest splitting the implementation for new marketplace into several milestones, assessing results and gathering more feedback in between.

Discovery: Jun 2024 - September 2024

Milestone #1: Marketplace pilot development for official and selected plugins

Milestone #2: Establishing process for using Tutor plugin indexes as the mechanism to discover and include extensions on the marketplace

Milestone #3: Include OeX extension marketplace as part of tutor tooling (Web frontend for Tutor plugin indexes)

Milestone #4: One-click installations from marketplace

Timeline

Milestone #1: Marketplace pilot development for official and selected plugins - Q3 - Q4 2024

Milestone #2: TBD

Future opportunities

  • Include marketplace into each Tutor-based Open edX installation

  • Paid extensions

  • AI recommendation

Authors

Proposal prepared by Glib Glugovskiy and Mykhailo Marshalok

  • No labels