Reading List Application Requirements Document

Target releaseGo live
Document status
DRAFT
Document owner
DesignerDavid Walker
Developers
QA

Goals

  • Create a reading list application to better support reserves and learning management system integration with Alma / Primo.

Background and strategic fit

Alma's reading list functionality – mostly used in support of reserves – is pretty limited and clumsy.  This application will provide a better interface to that capability within Alma, as well as integration points into campus learning management systems in an effort to increase usage of library resources for instructional material.

This integration will make it easier for instructors to adopt library resources in favor of course packs and expensive text books, reducing costs to students (in support of the AL$ initiative).  Developing this as an open source application will save the CSU money.

Assumptions

  • Chancellor's Office will lead development and host the application
  • We will build application in PHP 5.6 (or maybe PHP 7.1?)
    • Will use Symfony 3.1 as framework
    • Will use Twig as the templating language
    • Will use Bootstrap 4 (or maybe Foundation 6?) for CSS, front-end framework
    • We will use APIs to interact with Alma and Primo
      • Saving all data to Alma's reading lists
  • Will use Shibboleth for authentication (perhaps some alternative for San Diego)
  • Will use LTI as the primary method of integration to the learning management system
  • Taskforce member institutions will provide initial testing, QA, feedback from faculty.

Requirements

#TitleUser StoryImportanceNotes
1Add resources to list from Primo searchInstructor can search Primo to find books and articles to make part of the reading list.Primary
  • Physical materials discovered via this search will need to alert library staff to place item on reserve or purchase item.
  • Links to e-resources that expire will need to directed to library staff to place item on e-reserve or else users will wind-up at dead-end or ILL.
2Add resources to list from manual entryInstructor can manually add resources through a web formPrimary
  • Metadata should be sufficient to identify the resource via an openURL or with a direct link
  • Instructor may enter a direct link to a subscription resources, so will need to add proxy link
  • Should support databases as well as typical book, article, video, etc.
3Add resource to list from already saved resourcesInstructor may elect to copy an existing list or add resources they have previously discovered to a new list.Primary
  • This is relatively simple by-product of the above requirements.
4Add resources by exporting from PrimoInstructor may already have items saved or discovered via Primo. This feature would allow them to export the item to the reading list.Secondary
  • Not critical for initial release
  • Will likely have to hack this into Primo using AngularJS
5Organize and manage listInstructor should be able to organize the list into sections (e.g., by week or assignment) and add, order, and delete resources within each section. Instructor will also need to annotate each item.Primary
  • This should be drag-and-drop
  • Accessibility alternative a must
6Add same list to multiple coursesInstructor may elect to use the same reading list in multiple courses, and so we need to distinguish users from each courseSecondary
  • Could get away with a single course to list assignment in the beginning
7Instructor and co-instructor rolesInstructor has ability to invite co-instructor or librarian(s) to be able to edit the reading listSecondary
  • Not critical for initial release
  • Secondary roles should be able to recommend resources, which may be primary purpose of librarian role.
8SharingInstructor can elect to make their list public, allowing other users of the system to see and adopt their listSecondary
  • Not critical for initial release


9Usage reportsInstructor can view how many and which users have viewed each item in the reading listSecondary
  • Not critical for initial release
  • Export stats in CSV
  • Secondary roles (librarian, co-instructor) should be able to view this too
  • Overview of all usage

User interaction and design

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome
What should we call this application?
Should the instructor start their interaction with the system outside the LMS?
How best to expire, roll-over courses from term to term?
How much local branding should we support?
Can we create tasks in Alma for reserves and purchase?

Not Doing

  • Will not support uploading files, due to legal and security concerns