...
This community proposal aims to establish a global Open edX extensions marketplace. The marketplace will enhance increase 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 strengthen community growthengagement.
In this proposal, we analyze existing marketplace solutions and identify key features that could can 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 propose a technical approach for integrating new solutions into the marketplace using Tutor plugins, along with centralized and third-party Tutor Plugin Indexes. Extensions These extensions may include, but are not limited to, Python and ReactJS extensions of the platform core, infrastructure extension using extensions via Tutor plugins mechanism, Mobile mobile plugins for Open edX mobile apps, xBlocks, and integrations with 3rd third-party systems in the form of Tutor pluginthrough Tutor plugins.
The work on this proposal was started as Marketing-wg initiative and can be tracked using this GitHub issue.
...
According to the core product strategy, the Open edX platform aims to be become the leading open-source online learning management system for adult education , by growing the its community around it, and encouraging more greater contributions to the platform. To support this strategy, marketing-wg the Marketing Working Group (marketing-wg) proposes to reimagine and create a centralized directory for Open edX plugins and extensions — : the Open edX Extensions Marketplace.
The main objectives for this new centralized marketplace are:
Improve the overall user experience and boost platform adoption by
providing the ability forUser Experience and Boost Platform Adoption:
Provide current and potential Open edX operators and developers with an easy way to explore third-party tools and services
within the Open edX community.
Simplify the
integration of
plugins,
enabling operators to build comprehensive educational solutions without
extensive custom development
.
Standardize support and documentation
for plugins, making it easier for users to find
the resources they need for
successful integration.
Contribute to the development Development and advancement Growth of the OeX platform by
encourageOpen edX Platform:
Encourage developers within the Open edX community
to
adopt pluginization
patterns, extending the platform with more extension points
over time.
Create a centralized
hub where community developers and
Open edX providers
can share and showcase their solutions, indirectly
promoting their services.
Enable data-driven decision making by
providingData-Driven Decision-Making:
Provide 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 a range of tools, technologies, and approaches that focus on extending Open edX. By utilizing themdesigned to extend the platform. By leveraging these existing resources, the effort required to establish the Open edX Extensions Marketplace may can be significantly lower than it was previouslyreduced compared to previous attempts.
Scope & Approach
What existing Open edX solutions that might contribute to the launch of Open edX Extensions Marketplace?
...
The existing Open edX extensions directory is the second iteration of the XBlocks Directory, . While it lists many available extenstionsextensions, xBlocks, and plugins to for Open edX, along with categorization and serach. But it also has a few problems that make it hard to reach the goals set for search features, it faces several issues that hinder its effectiveness in achieving the goals of 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.
...
The list of official Tutor plugins and themes available at https://edly.io/tutor/plugins-and-themes/ providing offers a much better user interface, providing detailed plugin descriptions about the plugin, links to the source code, and indication of the supported version, solwing much information about supported versions, addressing many user experience challenges. However, the lack of clarity about publication of tutor plugins from the regarding the publication process for Tutor plugins by community developers, no the absence of feedback and rating options, and the focus only solely on officially supported plugins , sets apart distinguish this plugins plugin index from the proposed Extensions Marketplace.
Tutor plugins (infrastructure and deployment plugins)
Tutor provides an extensible and convienient easy-to-use and flexible way to deploy Open edX installations, it . It is well-supported and thoroughly documented. In addition to that Tutor comes with Additionally, Tutor includes a plugin system that ease deployment of the significantly simplifies the deployment process for Open edX drastically.
Also tutor plugins are convienient way to describe programatically Tutor plugins offer a convenient method to programmatically describe and share Open edX extensions in within the community, most of the 3rd. Many third-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 found on GitHub by searching here.
These plugins can also be discovered through the Tutor plugin indexes.
In the future, Tutor plugins could enable "one-click" installation of extensions for Open edX operators, further streamlining the setup process.
Hooks&Filters framework
Introduced in the 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 , the Hooks Extension Framework initially saw limited adoption, primarily due to the small number of implemented events and filters. However, now hooks extension framework has the framework now offers enough extension points in the edx-platform, as seen in the openedx-filters repository, to support plugin development while following the Open-Closed principlePrinciple.
Frontend Plugin Framework
Recently The recently introduced in Redwood - Frontend Plugin Framework, provides a much-needed mechanism to extend MFEs Micro-Frontends (MFEs) in Open edX via using external NPM and React.js modules , or by adding iframe plugins into extension points called plugin slots.
This However, this technology is not yet fully ready to support the a seamless plugin experience integrating it without additional MFE development.
The Some caveats for using the frontend-plugin-framework that were , as discussed during a frontend-wg meeting are, include:
There is a very little number of Very few plugin slots exist are available in MFE MFEs as of the Redwood release.
Operators should must configure usage the use of plugins directly in MFE with JS Env Configurationthe MFE via JavaScript environment configuration.
The MFE application should must be rebuild rebuilt to install or update plugins.
Even though this limitations doesn’t allow us to create complete e2e solutions without additional Although these limitations prevent us from creating complete end-to-end solutions without extra configuration and setup, the work on the frontend-plugin-framework continues and as soon this is ongoing. Once these issues are solvedresolved, it might be may become much easier for the community to create one-click installable “full"full-package” package" solutions using the Marketplace.
Comparison of the existing marketplace solutions on the market
During the preparation of the proposal, common marketplace solutions were analyzed to cover all the necessary functionality functionalities that the marketplace should include.
Marketplaces that were included into The marketplaces included in the 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 functionalities across these marketplaces, as well as a categorization of attributes that every marketplace entry should include.
...
Based on the preliminary analysis of the marketplace solutions, figma Figma mockups for the future marketplace UI/UX were prepared. These mockups include incorporate all the necessary elements that a marketplace should have, with mapping general ideas to the Open edX context and presenting each marketplace entry as a tutor Tutor plugin.
Figma mockups can be found there:
...
What extensions will be available on the marketplace?
Extensions on the The marketplace may include, but is not limited to, Python and ReactJS extensions of the platform core, infrastructure extension extensions using the Tutor plugins mechanism, Mobile mobile plugins for Open edX mobile apps, xBlocks, and integrations with 3rd third-party systems in the form of a Tutor plugin. Additionally, Open edX themes for the platform and the Paragon design system can be published on the marketplace under the separate category themes"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:
...
Extension details / overview page
Plugin Plugins should be downloadable from the site and/or include a "View Source" button with a direct link to the GitHub repository.
Each catalog entry should include all the necessary attributes that are used for the filtering of the content. We propose to use using a tabbed layout on the details page, including the following tabs:
Overview - : Main information about the plugin, the . The idea is to either use
Readme.md
parsed directly from the repository or an additional markdown document that can be put into placed in the repository’s docs directory in the repository.More details - 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 of the package in relation to the named release, with "View Source" and "Download" buttons.
Installation - : Detailed instructions on how to install and configure the plugin.
Additional options such as privacy, security, or support can be considered for future additions. However, for the initial milestones, they might include just generic text.
Expand | ||
---|---|---|
| ||
...
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 growingTo enhance maintenance tooling and streamline the community flow for publishing plugins on the marketplace, the Tutor Plugin Indexes concept is planned for implementation. More information on plugin indexes can be found in the official documentation.
It is proposed to create a centralized Plugin Indexes repository within the Open edX GitHub organization. This will involve transferring official Tutor plugins maintained by AXIM and Open edX CCs from the original overhang.io repository (https://github.com/overhangio/tpi/). The repository will be managed by the Maintenance Working Group (maintenance-wg) and will be updated with new plugins as they are officially released.
Additionally, the centralized Tutor indexes repository may include an index file for third-party extensions (similar to the contrib plugin index in https://github.com/overhangio/tpi/). Community developers can add their extensions by opening a pull request.
In later phases, it will be necessary to evaluate the possibility of including vendor-managed Tutor indexes (e.g., Edly, OpenCraft, eduNEXT, RG) to provide even more marketplace entries that should not be centrally managed.
It is likely that the Tutor plugin index needs to be enhanced with additional attributes to provide more relevant metadata for the Open edX Marketplace.
As of August 2024, there is a requirement to create a separate plugin index for each Open edX version, which may not be suitable for the marketplace concept. Therefore, it is proposed to evaluate whether it is feasible to create multi-version plugin indexes, incorporating a support matrix attribute or something similar.
Process for maintaining Open edX Extensions Marketplace
The context diagram for the Open edX Extensions Marketplace identifies five key stakeholder roles: Marketing Working Group, Maintenance Working Group, OeX Community Developers, Entities using OeX, and Entities looking for LMS solutions. Although this list of stakeholders is considered comprehensive for the initial phases, additional stakeholders such as the Product Working Group can be added as the OeX Marketplace continues to grow.
...
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. |
|
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. |
| |
Review extension application | Marketing Working Group review plugins descriptions and visual materials before publishing |
| |
Promote marketplace | The Marketing Working Group undertakes search engine optimization of the marketplace and promotes it through its various channels. |
| |
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. |
| |
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. |
|
OeX Community Developers | Develop extensions | OeX Community Developers constantly develop new extensions for Open edX |
|
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 |
| |
Maintain extension | OeX Community Developers update their extensions to keep it up to date with new releases of OeX |
| |
Integrate plugins from marketplace | OeX Community Developers incorporate extensions from the Marketplace into their instances |
| |
Leave feedback | OeX Community Developers provide feedback on enhancements or issues of extensions |
| |
Entities using OeX | Discover additional OeX capabilities | Entities using OeX discover further capabilities of OeX LMS available through extensions on OeX Extensions Marketplace |
|
Integrate plugins from marketplace | Entities using OeX incorporate extensions from the Marketplace into their instances |
| |
Use extensions & leave feedback | Entities using OeX provide feedback on enhancements or issues of extensions |
| |
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 |
|
Open questions
...
Maintenance cost for keeping marketplace up to date
...
questions
Maintenance cost for keeping marketplace up to date?
How to scale the process without losing quality overtime?
Changes to named release preparation process, how to allow operators to update versions for their plugins in repo swiftly with ease?
Juan Camilo Montoya's question: How to showcase 3rd party plugins that didn’t meet criteria set for publishing on the marketplace, can it be included in the marketplace with some specific markings or similar?
Milestones
We suggest splitting the implementation for new marketplace into several milestones, assessing results and gathering more feedback in between.
Discovery: Jun 2024 - September 2024Milestone #1: Marketplace pilot development for official and selected plugins
Creation of the proposal
Community feedback gathering
Enhancements to the proposal
Milestone #1: Marketplace pilot development for official and selected plugins
WP development of the marketplace according to UI mockups
Creation of the Tutor Plugin index with official plugins in the openedx GitHub organization.
Documenting and onboarding community in the process
Milestone #2: Establishing process for using Tutor plugin indexes as the mechanism to discover and include extensions on the marketplace
TBD
Milestone #3: Include OeX extension marketplace as part of tutor tooling (Web frontend for Tutor plugin indexes)
TBD
Milestone #4: One-click installations from marketplace
TBD
Timeline
Discovery: Jun 2024 - September 2024 (in progress)
Milestone #1: Marketplace pilot development for official and selected plugins - Q3 - Q4 2024
Milestone #2: TBD-4: Q4 2024 - Q2 2025
Future opportunities for OeX Marketplace
Include marketplace into each Tutor-based Open edX installation
LTI Tools catalog
Paid extensions
AI recommendation
...
Proposal prepared by Glib Glugovskiy and Mykhailo Marshalok