Problem: Authors don't have enough options to create the content they would like
Overview
In the context of the collaborative project with Spanish universities, we have identified that non-technical authors face a limitation in creating content to improve the learning experience because they do not have enough options or the ones that exist are very complex. In this post, we will present the problem and propose concrete solutions that would benefit the entire community.
If you have other use cases related to this problem or other solutions, do not hesitate to share them.
Problem
Open edX course authors face several limitations when creating engaging and effective content:
They can't easily embed videos from other platforms, such as Vimeo.
Creating iframes for custom content is difficult for those without technical skills.
The lack of an interface to add jumps to other sections of the course makes it difficult to navigate and organize the content.
Key Use Cases
To better understand the issue, here are some examples of common situations where course authors are affected:
As an instructor I want to enrich my course with videos hosted on Vimeo or other services to improve the quality of the content.
As an author I want to embed a custom survey form using an iframe, but I have not been able to generate it correctly.
As an author, I want to create a smoother flow of content by adding internal links that allow students to easily jump between related sections of the course, but I haven't figured out how to achieve this.
Solution
Solution 1: We propose the creation and integration of the following plugins in the Tinymce text editor:
Embed Video Plugin: This plugin will allow course authors to easily embed videos from external platforms. ( Because the React video player project has been taken up, we are discarding this improvement and will wait for its completion.)
Plugin to Create an Iframe: It will facilitate the creation of custom iframes for rich content without the need for technical knowledge.
Plugin to Create Jumps to Other Sections: It will provide an intuitive interface that shows a navigable tree of the course and allows you to select the unit to which you want to make the jump. The following prototype was proposed by 2U:
https://www.figma.com/proto/cS42BX4OUsR8lOw6ppZHoz/Content-Libraries?type=design&node-id=1860-103852&t=6CUXwSKvDLmPMM61-0&scaling=min-zoom&page-id=1833%3A94107&starting-point-node-id=1860%3A103852&show-proto-sidebar=1
Discarded alternatives
We considered using existing plugins (https://www.tiny.cloud/docs/plugins/premium/mediaembed/ , https://www.tiny.cloud/docs/plugins/premium/pageembed/#tryourpageembedplugindemo ) but they are paid so we prefer to make our version open source.
We considered the possibility of extending the capabilities of TinyMCE without interfering with the core. However, there are no extensibility points in TinyMCE that allow us to do so, we must make modifications to the following repositories:
It is important to note that there is an ongoing project aimed at expanding these extensibility points, but it is in an early discussion phase. Once this project has progressed and it is possible to extend TinyMCE, we will be able to relocate the plugins that we consider to be independent extensions.
We have considered that a New Video Player project exists, however, since it is in an early phase and will take time to develop, we propose to implement the video embedding plugin in TinyMCE. Later, when the main project is ready, we can remove this plugin. This way, teachers will have a partial solution for sharing their desired content while we work on a more complete solution.
Plan for long-term ownership/maintainership
eduNEXT is commited to build and contribute this work as part of the unidigital (spanish government) project. As part of that commitment, edunext would commit to maintain the feature for a minimum of 2 years and after that, either find a suitable maintainer to hand it over to, or to follow the deprecation procedure in case the feature has any inconvenience or its maintenance is a burden that no one can carry.