LafayetteCollegeLibraries / lafayette-preserve

The Lafayette College Libraries implementation of Sufia
0 stars 2 forks source link

LafayettePreserve

Build Status Coverage Status Stories in Ready

A Sufia implementation for curating and preserving digital resources for the Lafayette College Libraries.

Prerequisites

As it is based upon Sufia, LafayettePreserve requires the following software to work:

  1. Solr version >= 5.x
  2. Fedora Commons digital repository version >= 4.5.1
  3. A SQL RDBMS (MySQL, PostgreSQL), though note that SQLite will be used by default if you're looking to get up and running quickly
  4. Redis, a key-value store
  5. ImageMagick with JPEG-2000 support
  6. FITS version 0.8.x (0.8.5 is known to be good)
  7. LibreOffice

NOTE: If you do not already have Solr and Fedora instances you can use in your development environment, you may use hydra-jetty (instructions are provided below to get you up and running quickly and with minimal hassle).

Support for Controlled Vocabulary Management

In addition to extending the standard support for the Sufia feature set, we currently only support Blazegraph in order to manage controlled vocabularies and terms as linked data.

Architecture and Implementation

Currently, LafayettePreserve borrows heavily from the functionality supported by the Controlled Vocabulary Manager from Oregon Digital.

Characterization

  1. Go to http://projects.iq.harvard.edu/fits/downloads and download a copy of FITS (see above to pick a known working version) & unpack it somewhere on your machine.
  2. Mark fits.sh as executable: chmod a+x fits.sh
  3. Run fits.sh -h from the command line and see a help message to ensure FITS is properly installed
  4. Give your Sufia app access to FITS by:
    1. Adding the full fits.sh path to your PATH (e.g., in your .bash_profile), OR
    2. Changing config/initializers/sufia.rb to point to your FITS location: config.fits_path = "/<your full path>/fits.sh"

Derivatives

Install LibreOffice. If which soffice returns a path, you're done. Otherwise, add the full path to soffice to your PATH (in your .bash_profile, for instance). On OSX, soffice is inside LibreOffice.app. Your path may look like "//LibreOffice.app/Contents/MacOS/"

You may also require ghostscript if it does not come with your compiled version LibreOffice. brew install ghostscript should resolve the dependency on a mac.

NOTE: derivatives are served from the filesystem in Sufia 7, which is a difference from earlier versions of Sufia.

Environments

Note here that the following commands assume you're setting up Sufia in a development environment (using the Rails built-in development environment). If you're setting up a production or production-like environment, you may wish to tell Rails that by prepending RAILS_ENV=production to the commands that follow, e.g., rails, rake, bundle, and so on.

Ruby

First, you'll need a working Ruby installation. You can install this via your operating system's package manager -- you are likely to get farther with OSX, Linux, or UNIX than Windows but your mileage may vary -- but we recommend using a Ruby version manager such as RVM or rbenv.

We recommend either Ruby 2.3 or the latest 2.2 version.

Running LafayettePreserve

Clone the Git Repository

git clone https://github.com/LafayetteCollegeLibraries/lafayette-preserve.git

Install the Gem Dependencies

bundle install

Migrate the Rails Database Schema

rake db:migrate

Testing LafayettePreserve

Currently, one must perform the following steps manually using separate terminals:

Start Solr

solr_wrapper -p 8985 -d solr/config/ --collection_name hydra-test

Start fcrepo4

fcrepo_wrapper -p 8986 --no-jms

Start Blazegraph

rake triplestore_adapter:blazegraph:reset

Execute the Test Suites

TRIPLESTORE_URL='http://localhost:9999/blazegraph/namespace/test/sparql' rake spec

Acknowledgments

This software has been developed by Digital Scholarship Services of the Lafayette College Libraries, building heavily upon the collaborative efforts of all members within the Project Hydra community.

License

GPL-3.0