...
The MVP will introduce two new key concepts for authors, each with an anticipated behavior change:
1.
Libraries are designed to enable generalized content reuse, and are not limited to the randomized reuse case.
This is a radical shift away from the way users utilize legacy Libraries, where the only supported use case support is for the randomized content block. Instead, Libraries are authoring spaces that function independently from the course, where authors can create content independently of the prescriptive course outline, reuse that content in any/many courses, and sync updates centrally.
The UX/UI optimizes for this shift, with a new delineation in the course outline between “new content” and “reusable content”, a new Library page within the course to track and sync updates, and improvements to the workflow for pulling content from a library into a course.
2.
Libraries are designed to hold and manage large, diverse sets of content.
This is also a radical shift away from the way users utilize legacy Libraries, where users must create a new Library each time they wish to create a new pool of problems to randomize. This results in dozens or even hundreds of Libraries for a single exam or course. Rather, Libraries should be akin to a library in real life, where there’s a shelf for the fiction section, a shelf for the history section, etc, with all the books under one roof.
The UX/UI optimizes for this shift, with new features like collections, tagging, search, filter and content cards.
What does success look like?
Trend of fewer libraries created and more collections created
Increased usage of the referenced library content AND the Problem Bank block
Functional requirements
The MVP includes user stories that bridge workflows in Libraries and workflows in courses. On the Library side, the MVP must make it easy for authors to create and manage large amounts of content within a single Library. On the Course side, the MVP must make it easy for authors to reuse content from Libraries and to sync with updates from the Library. Additionally, we must preserve the current use case for legacy Libraries, which is the use of randomized content pools, while updating that workflow to make it easier to create and randomize subsets of problems.
Functional requirements: Library Side
Users can create new components (text, video, problems, advanced) in a Library
Users can create new collections in a Library and add and remove components
User can add tags to Library content and to collections
Users can search, filter and sort Library content with free-text keyword searches, by tags and by content type, and refine searches
Users can publish libraries and publish components
Users can track key metadata on Library content, including which courses it’s used in
Functional requirements: Course Side
Users can search Libraries for course content from within the course outline
Users receive notifications about content updates
Users can review and accept/deny content updates
Users can add and configure problem banks (randomized content)
Users are warned adequately when making edits locally
...