...
This expansion will enable Libraries to support the full range of use cases identified in initial product discovery phases. Most importantly, it will enable course authors to create units, subsections and sections - in other words, full learning sequences - independently of the course outline, and reuse these learning sequences freely.
Quick Read - What’s in Teak?
Library support for units:
Units can be created in Libraries
Units are searchable and discoverable in Libraries
Units can be reused in courses
Units in courses can be synced with Library updates
Library support for subsections and sections
Subsections and sections can be viewed as read-only content in Libraries
Subsections and sections are searchable and discoverable in Libraries (feasible?)
Library support for import
Full courses can be imported into Libraries and content can be disaggregated at the unit, subsection or section level
Content can be imported into Libraries from external sources, starting with Common Cartridge conversion support
Content from third party sources can be synced so updates carry through into the Libraries (feasible?)
Functional Requirements
Similar to the Libraries MVP, this phase of work includes user stories that bridge workflows in both Libraries and in courses, more specifically the Course Outline page.
...
Units can be created from scratch in the +New workflow. When a new Unit is created, components can be added, rearranged or removed to the Unit.
Units can be edited, meaning components within them can be added, rearranged or removed
There are 3 pathways for adding components to a unit from within the unit editor
New components can be created
Existing components can be added
Components copied in the clipboard
Components must have some visual reference to the unit where it’s being edited, and all the units where it’s being referenced.(breadcrumbs?)
Expected behavior of Components in relation to Units
...
Units can be published. Once published, units are available for reuse.
Publishing can happen at the Unit level. When a unit is published, all components within it are published. If a component in a unit also exists independently of a unit, it will also be published.
Quick publish concept for reused components: If a component is published, it will auto-publish in any unit where it is referenced, unless there has been an override of that component in a unit, in which case authors will be prompted manually to accept the changes.
When a Unit has been published, it is available for reuse in a library. If some individual components in a unit are published but not all components, the unit is not available for reuse yet.
Units can be tagged
Units can be copied
Units can be pasted
Units can be added to, and removed from, collections
Collections can contain a mix of both components and units
View-only and Edit modes/Managed vs externally managed vs unmanaged [we need to clarify what the expected behaviors, permissions etc are for each of these?]
Requirements TBD
Managed content item - any level of content (section, subsection, unit, component) that exists in a library.
Externally managed content item - any level of content that exists in a library that is ‘connected’ to an external CMS.
- Unmanaged content item - any course content not from a library
Subsection and Section support
Subsections and sections can be imported into Libraries (see import requirements below)
Subsections and sections are read only, to start. They cannot be edited, nor created from scratch in libraries.
Each subsection/section in a Library has a tile representation with a title and description
Subsections/sections populate among the components and collections on the library home
Subsections/sections turn up in search results and can be sorted and filtered
There is a Subsection tab and a Section tab, which is a filter on each respective as a content type
Functional requirements: Course Side
...
Course authors can add content, in the course, to library-managed content items. For example, a course author can add an LTI component to a unit that is contained in a subsection that is managed by a library.
Locally, components within a unit can be rearranged into different orders (parity with current experience with units in courses.)
Import requirements
Import from Open edX Course to Open edX Library
Units can be copied from a course and pasted into a library
Full courses can be imported into a Library. Authors can decide at the time of import what level they want to disaggregate the content in the library - unit level or component level. (Later, section level )
Subsections and sections will be read-only, to start
On import, content get added as published components, but there is no sync to the original course, the content in the library does not reference the course, it becomes the defacto source of truth version
Import from external source to Open edX Library
Libraries will support ingestion of content from third-party sources, starting with Common Cartridge.
When content is ingested into a Library from a non-native source (not natively authored on an Open edX platform), there may be a need to maintain a reference/connection between the original source and the Library versions, such that if the original source is updated, the Library versions can be synced.
FEASIBILITY QUESTION: What capabilities does Studio have to maintain references/connections between non-natively authored content and the Library versions of that same content?
There is no expectation that Library versions of content authored non-natively and used in a course would maintain a sync between the original source content and the course versions.
UX/UI Needs
Library-side
Libraries must support a creation workflow for creating new units, subsections and sections
Libraries must support an editing workflow/editor environment for units, subsections and sections
In-context sidebars must be expanded such that each unit, subsection and section has a sidebar.
Needs discovery: Are previews necessary? Even possible?
Library Home must contain one tab each for units, subsections and sections, where users see a filtered view by content type
All of the searching, sorts and filters that apply to components must be extended to units, subsections and sections.
...