Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Overview

It’s critical to arrive at a unified understanding of the purpose and function of Content Libraries, because Content Libraries intersect multiple short- and medium-term projects, many of which are key strategic investments for the platform, including content reuse, content modularity, and content sharing. The purpose of this Brief is to outline the high-level requirements that Content Libraries will need in order to support these major initiatives. This document builds on the functionality that will be included in the upcoming release (January 2024?) of Content Libraries V2, and will inform how we plan to deliver incremental value with Content Libraries over the next 18-24 months.

Current State: What’s included in Content Libraries V2? 

What’s the plan for Content Libraries after the V2 launch?

While the V2 launch moves Content Libraries closer toward supporting more robust content reuse and modularity use cases, there are still many feature enhancements needed to bring Content Libraries to their full potential. Content Libraries intersect the following use cases around content reuse and modularity at the junction of: Where the content needed for these initiatives is created, organized, accessed, managed and stored. Thus, additional features and enhancements will be needed to make Content Libraries more robust and functional spaces for creating, organizing and managing large and diverse types of course content for reuse and modular delivery.

Community Use Cases

Community use cases for content reuse and modularity that will rely on Content Libraries:

...

Western Governors University is looking for ways to create modularized content at scale, more quickly and efficiently. They want authors to be able to create content templates at the unit level that can be copied and quickly populated with component xblocks.

User Stories

The above use cases can be distilled into the following high-level user stories for Content Libraries:

...

  • I want to create a unit or a section independently from the course, so that I can reuse the unit or section in many different courses, [or future state: deliver it as a stand-alone learning objective, or sequence it into a custom learning pathway.]

  • I want to be able to extract units or sections from courses that already exist and put them into a Library for reuse later. I may want to do this with individual units or sections, or pull all the sections from a course into a library. 

  • I want to be able to reuse any content that I create in a Library - whether a component xblock, a unit or a section -  in any course, as many times as I want to. 

  • I want to be able to update Library content in the Library and push out updates to courses using the content. Course teams can make the decision to accept or reject updates.

  • I want to be able to search and find units, sections, components and any other content in my Library easily with tools like keyword searches, sorts and filters.

  • I want to be able to add tags to content in my Libraries, so that I can align my content to learning competencies, or subjects, or skills. This will help me to find the right content for reuse later.

  • When I am ready to use content from my Library in a course, I want an easy way to search the content in my library while I’m in the course authoring environment. 

  • I want to be able to organize or categorize content in my library, maybe into playlists, or into folders, or by tags, so that I can easily find what I need later. 

  • I want to be able to create a template for a unit or a section, then copy that template and quickly populate it with the right component content.

Features and Requirements

(Epic level, need further refinement and incremental delivery planning)

...

Feature

Requirements

More robust authoring environment in Content Libraries

  • Create a unit or a section in a Library

  • Authoring environment that leverages the same authoring tools that exist for authoring a unit or a section in a course, such as component selection on the Unit Editor page

  • Ability to add component xblocks to units by creating them from scratch or choosing from pre-existing components in a library

  • Ability to add units to subsections or sections by creating them from scratch or choosing from pre-existing units

  • No configuration capabilities (such as grading schema, schedule or release date, etc) would be possible within the Library.

Enhancements to the randomization tool

UX/UI enhancements

  • Improvements to randomize toggle

  • Improvements to the experience of choosing content from a library in the course outline

Enhancements to Library Reference block/content selection tool in courses

  • An easier-to-use interface within the course editing pages that authors can use to search for content in a Content Library and pull content from a library into a course.

  • When choosing content from a library to use in a course, the ability to search for content in a library by keyword and with facets, filters directly from the course authoring environment

Expand content syncing options to units and sections

  • A syncing function that enables an author to make a change to content in a Library and push that change out to all courses where the content is being used, and an option for course teams to accept or reject the changes within the course.

Export from course to library

  • A feature that allows an author to extract content from a course and put it into a Content Library for later reuse

  • Extract individual units or sections

  • Extract all the units or sections in a course

Expand content tagging feature to all content in a Library

  • Ability to tag any component, unit or section in a library, with tags from a taxonomy enabled at the organization or instance level, or a free-form tag

  • The same taxonomies that are enabled at the org or instance level for use in a course would be extended for use in Content Libraries

  • When content is pulled from a library into a course, any tags that were added in the library remain with the content when it is used in a course

Using tags to create subsets of content to randomize

  • Ability to group subsets of content within a library by tag that can be used with the randomized content block (so authors don’t have to create a new library every time they want to use the randomized content block)

Better content management tools

  • Ability to group/categorize content by tag

  • Ability to create playlists or put content into folders

Search function

  • Ability to search content in a library by keywords with a free-text keyword search, and to sort, filter and facet

Content templates feature

  • An authoring environment that enables authors to create a unit or a section template (eg, a unit template is comprised of a text block, a video block and a problem block)

  • The ability to copy that template and populate it with content

  • Each copy would be housed in the Library and have all of the above functionality applied to it - reuse it in courses, add tags to it, put it into a playlist or folder, etc

At-a-glance information about library-course relationship

  • Information at the component/unit/section level in a library that tells authors where/in which course the content is used

  • Information at the library-level that tells authors which courses are referencing content from that library

Upload of static assets

Open Product Questions

  • What’s the strategy for Files & Uploads? Do course-level files and uploads continue to live at the course level, or do we leverage Content Libraries as the home for them? This could enable authors to easily reuse external content across many courses and to take advantage of the content organization tools available in Libraries to manage their external content.

  • When the Content Tagging MVP launches and authors have the ability to add tags to components in Libraries, what additional enhancements do we need to add to make it possible for authors to group subsets of components in a Library by tag to use with the randomized content block?

Open Process Questions

  • How can we leverage the V2 release to create user feedback mechanisms that can inform how we prioritize from the above list of user stories and Features & Requirements? And to identify gaps or incorrect assumptions in the V2 functionality?

  • How do we pull edX partner voices into the mix to check where their expectations for Content Libraries may or may not align?

Open Technical Questions

  • In terms of implementation: should this be built on Blockstore, Learning Core, or ?

  • How do we represent structures larger than a unit within libraries? (Both in terms of UX and technically)

  • At what point in the editing/publishing process do we need to make this decision [the decision to break links or sync between shared content] when reusing a content object?

    • Does the original content author get any say here, or is it only the reusing content author?

    • With automated updates, do we still need a UI to show the upstream changes made over time?

  • Do content libraries become the defacto way for all content to be stored, even if it’s created first in a course rather than a library?

  • If someone creates a structure, call it a section, and that structure contains 5 units, are those units  imprisoned in that structure, the section?  I understand that what a unit is is fuzzy.  It might, for example, be learning content, plus a formative assessment, because they are seen as inextricably bound together.  But if there were 5 pairs of content + formative assessment -- units -- in a section and all that was shareable was the section, that feels sub-optimal.

...