sul-dlss/stacks

Name: stacks

Owner: Stanford University Digital Library

Description: Delivering digital resources to patrons.

Created: 2015-08-28 20:54:33.0

Updated: 2018-05-22 20:29:10.0

Pushed: 2018-05-22 20:29:11.0

Homepage: http://stacks.stanford.edu

Size: 684

Language: Ruby

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Build Status Coverage Status

Code Climate GitHub version

Digital Stacks

The Digital Stacks are the Stanford University Libraries' online systems that house and deliver digital resources to patrons. They work together with discovery systems (such as the catalog, library search engine, finding aids, etc.) to make up the Libraries' digital access services. Digital “stacks” is a convenient metaphor echoing the physical housing of books and other library material. For digital resources it manifests itself to users through the stacks.stanford.edu host name used for access URLs, identifying the virtual location where digital resources can be accessed.

Capabilities

Stacks is responsible for providing 6 endpoints

  1. The stacks welcome page https://stacks.stanford.edu/
  2. A IIIF endpoint https://stacks.stanford.edu/image/iiif/:id
  3. A legacy image service https://stacks.stanford.edu/image/:id/:file_name (this issues redirects to the IIIF endpoint)
  4. A streaming media authentication endpoint that issues and verifies tokens from the media server
  5. File downloads https://stacks.stanford.edu/file/:id/:file_name
  6. Web authentication
IIIF Endpoint

Stacks acts as a proxy to an image server. The proxy is responsible for ensuring the client has the proper permissions to send the request to the image server. This work is done by querying the rights metadata from PURL. Additionally it mutates the info.json response to provide appropriate tile sizes for the users current access level.

Stacks started out as a proxy for the Djatoka server, but in Fall 2017, we added the capability for Stacks to proxy to any IIIF compatible image server. We switched to Canteloupe at that time. Had RIIIF been our preferred choice at that time, we could have instead pointed Stacks at a server running https://github.com/sul-dlss/image-server/.

Requirements
Installation

Clone the repository

$ git clone git@github.com:sul-dlss/stacks.git

Change directories into the app and install dependencies

$ bundle install

Start the development server

$ rails s
Configuring

Configuration is handled through the RailsConfig settings.yml files.

Testing

The test suite (with RuboCop style inforcement) will be run with the default rake task (also run on travis)

$ rake

The specs can be run without RuboCop enforcement

$ rake spec

The RuboCop style enforcement can be run without running the tests

$ rake rubocop

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.