UX/UI Requirements

Epic 1: UI Improvements to the Library Authoring Environment
Epic 2: Libraries support Collections (subsets of components)
Epic 3: Simplifying the “Use Existing Content” Workflow in Courses (formerly the “Library Block”)

Epic 1: UI Improvements to the Library Authoring Environment

Key user stories:

  • I want my Library to contain all of the text, video and problem blocks that I may want to reuse in other courses later, so that I have a readily available content bank to draw from which will make it easier, quicker and more efficient to create new courses.

  • I want it to be easy to manage and navigate a Library that has hundreds or thousands of text, video and problem blocks.

  • I want to be able to track where/which courses content is being used.


Search and Discoverability


  • List/grid views of all content in the Library


  • I want options to sort all of the content in my library by:

    • A-Z, Z-A

    • Newest/Oldest

    • Most recently modified

    • Most recently published

    • All Collections (see Collections epic below)


  • I want options to filter all of the content in my library by:

    • Type: Video, text, problem



  • I want to search in my Library using free-form keyword/text search.

  • I want to search in my Library using tags. Give me all the components that are tagged for “accounting”. Give me all the components that are tagged for “accounting” and let me refine by “type: video”.

  • I want to conduct basic boolean searches. Give me all the multiple-choice problems that are tagged with “accounting” AND “easy”.


  • I want to refine my search results by tags

  • I want to refine my search results of Type: video, text, problem

At-a-glance content data

  • Which courses are using this content?

  • When was it last updated?

  • How many times has it been used?



Epic 2: Libraries support Collections (subsets of components)

Superseded by https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4113006597 !!!

I’m preserving this in case there are comment-related followups that should be preserved, but new discussion should happen in the new doc.

Key user stories:

  • As a content author, I don’t want to have to create a new Library every time I need to create a different pool of content for randomization.

  • As a content author, I want to be able to create subsets of content within a Library with any media type (videos, text blocks, problem blocks, or any combination thereof) as a means of organizing my content, and without the expectation that I would ever need to randomize from it. For example, I want to organize a subset of videos on the same topic so that it’s easier for me to find them later when I want to use them.

  • As a content author, I don’t want to lose the ability to create a subset of content (problems) to randomize from. I still use randomized problem sets for my exams and assignments. But I need an easier way to create these subsets and use them in one or multiple courses, because the current workflow is cumbersome.

Requirements for Collections within the Library Authoring Environment:


General requirements:

  • Authors can create subsets of components for the sake of grouping like components together as a method of content organization and management. 

    • For example, I want to create a subset of evergreen videos about how to do peer-reviews.

  • Authors can create as many Collections in a Library as they wish.

  • Authors can add as many components to a collection as they wish.

  • Components can live in multiple collections.

  • Collections can contain mixed media types (for example, a collection may contain video components, text blocks and problems all within the same collection).

  • Basic keyword search within a collection

  • Basic sort and filter

    • Sort alphabetical

    • Filter by tag

  • [FUTURE STATE] When Libraries support units, subsections and section, collections may also contain any combination of components, units, sections and subsections. Note that a single unit or a single section is not considered a Collection. Rather, a Collection is comprised of multiple sections, multiple units, etc.

Do Libraries need to display publish status?

Library publish options:

  • Publish all library

  • Publish collection

  • Publish component


How authors create Collections:

  • When authors create new components in a Library or edit them, they can choose to “add to a new Collection” or “add to a pre-existing Collection”.

  • Authors can create a collection and add components to it. I know I need a collection of all my ‘how-to videos’, I go to my library > create new collection > title it > save. Now I can go ahead and add content to the existing library.

  • Authors can use tag queries to create Collections, based on tags that have already been added to components. For example, create a Collection, or add, with all components that have been tagged with “algebra”, “easy” and “multiple choice”. [live updates/sync option]

  • Authors can give Collections titles and brief descriptions. These can be edited later.

  • Authors can add tags to Collections, in the same way that they can add tags to components.


How Collections function within Libraries:

  • Authors can view all of their Collections in one place within the Library.

  • Authors can search for Collections in the same way they search for content. Collections turn up in search results, and authors can refine search results by collection.

    • Search results indicate whether the result is a component or a collection.

    • Eg, I conduct a free-text search for “algebra” and 239 results display, including individual components and collections. I can further refine my search for “collections only”.

  • OUT OF SCOPE FOR NOW: Searching or refining searches within a collection. The assumption is that Collections will be small enough that complex search functionality within a Collection probably isn’t necessary.


Epic 3: Simplifying the “Use Existing Content” Workflow in Courses (formerly the “Library Block”)

Key User Stories:

As a content author/instructional designer:

  • I want to pull existing content from my Library into my Course, without having to navigate away from my course.

  • I need a quick way to find the content I need and want to use from my Library.

  • I might just want to use a single text, video or problem. (“one and done”)

  • I might also want to choose a problem bank, or a set of questions with a set of parameters (eg, give me all the questions that are tagged with “accounting” and “easy”) and configure a set of randomization parameters so that each learner receives a different subset of questions from the bank during their exam.

  • I want the workflow to “use existing content” to be as simple, efficient and streamlined as the current workflow to create new content. I don’t want to have to think about a separate Library block, separate workflows, etc.


General Requirements:

  • Authors can opt to connect one or multiple Libraries to a Course. Two pathways to connect a Library to a Course:

    • At the course level (ie, somewhere at the Course Outline page, etc)

    • At the unit level, particularly the first time an author wants to “use existing content”

      • [Note: This assumes that Libraries are a feature enabled in the “out of the box” Open edX experience and don’t require to be enabled via Advanced Settings.]

  • Once a Library is connected, Authors do not have to choose which Library(ies) to pull from, every time they want to use existing content.

  • Authors can disconnect Libraries at any time.

  • Authors can add new Libraries at any time.

  • What metadata needs to be displayed in the course view of Library content?

    • [Support of thumbnails in course view of Library content]

    • At a glance info?

Requirements for reuse:

  • Authors can pull any particular component from their connected Libraries into their Course

  • Authors can use/leverage the same search and discovery functionality (Epic 1) that exists within the Libraries in order to find the content they wish to use.

  • If multiple Libraries are connected to the course, the default search experience encompasses all connected Libraries, with an option to refine a search to a single particular Library.

  • When components are pulled into a course, if tags had been added to the Component in the Library, those tags carry over with the Component and display in the course

    • Authors can add new tags to the Course version of the component, but they cannot delete tags that were added in the Library.

  • Requirement for content edits in the course - mirrors current behavior

  • Updates do apply/notifications

Requirements for randomized reuse:

  • Authors have four options for creating pools of content to randomize:

    • Authors can choose a Collection that already exists from a Library. All of the content in that Collection will become part of the randomized pool.

    • Authors can query tags to choose which components they want to become part of a randomized pool/collection:

      • Give me all the problems with Tag: Accounting

      • Give me all problems with Tag: Accounting and Tag:Easy

      • Give me all the problems with one of the following tags: Tag: Accounting, Tag:Section1

    • Authors can query tags with refinement

    • Authors can select a Collection and then search and refine within the Collection


Requirements for updating content:

  • If content is updated in a Library, authors receive a notification in the Courses where that content is being used, with an option to view the updates and either to accept or reject them.

  • Authors can pro-actively query Libraries for updated content, view the updates, and opt to update any existing content in their courses.

    • Option to pull all updates from a Library.

    • Option to update individual components.

Do updates from a library override any changes that had been previously made locally? Could see the edit history?

Define requirements for whether library content has any settings/configurations/policy attached to it at the library level, or just the course level?