A Hydra-based Rails Engine that extends an application, adding the ability to Create, Read, Update and Destroy (CRUD) objects (based on Hydra::Works) and providing a generator for defining object types with custom workflows, views, access controls, etc.
Ruby HTML JavaScript XSLT CSS CoffeeScript
Latest commit b2f32cf Feb 21, 2017 @jcoyne jcoyne committed on GitHub Merge pull request #1153 from projecthydra/backport-proxy-for-id-cast
Cast proxy_for_id to integer before joining on an integer field

README.md

CurationConcerns

Code: Version Build Status Coverage Status Code Climate

Docs: Apache 2.0 License Contribution Guidelines API Docs

Join in: Slack Status Ready

A Hydra-based Rails Engine that extends an application, adding the ability to Create, Read, Update and Destroy (CRUD) objects (based on Hydra::Works) and providing a generator for defining object types with custom workflows, views, access controls, etc.

Prerequisites

Curation Concerns requires the following software to work:

  1. Solr
  2. Fedora Commons digital repository
  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. The redlock gem requires Redis >= 2.6.
  5. ImageMagick with JPEG-2000 support.
  6. LibreOffice
  7. FITS version 0.8.5.
  8. FFMPEG

Installation

Add this line to your application's Gemfile:

gem 'curation_concerns'

Then execute:

bundle install

Then run the install generator. You will be prompted if you want to overwrite the default app/controllers/catalog_controller.rb, to which you should type Y (yes). If you don't want to be prompted on overwrite, you may run the generator with the -f (force) option.

rails generate curation_concerns:install
rake db:migrate

FITS

To install FITS 0.8.5:

  • Download fits-0.8.5.zip or possibly newer from the project page. Unpack it somewhere on your machine. Alternatively, use homebrew on OSX: brew install fits (you may also have to create a symlink from fits.sh -> fits in the next step).
  • Mark fits.sh as executable (chmod a+x fits.sh)
  • Run fits.sh -h from the command line and see a help message to ensure FITS is properly installed
  • Give your app access to FITS by:
    • Adding the full fits.sh path to your PATH (e.g., in your .bash_profile), OR
    • Changing config/initializers/sufia.rb to point to your FITS location: config.fits_path = "/<your full path>/fits.sh"

FFMPEG

Curation Concerns includes support for transcoding audio and video files with ffmpeg > 1.0 installed.

On OSX, you can use homebrew:

brew install ffmpeg --with-fdk-aac --with-libvpx --with-libvorbis

Otherwise, to compile ffmpeg yourself, see the CompilationGuide.

Usage

Generator

To generate a new object type, use the curation_concerns:work Rails generator. Follow the usage instructions provided on the command line when you run:

rails generate curation_concerns:work

Virus Detection

To turn on virus detection, install clamav on your system and add the clamav gem to your Gemfile:

gem 'clamav'

Testing

If you are modifying the curation_concerns gem and want to run the test suite, follow these steps to set up the test environment.

rake ci

Or you can do all the steps manually:

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

# in another window
fcrepo_wrapper -p 8986 --no-jms

# in another window
rake engine_cart:generate
rake curation_concerns:spec

Workflow

Load the workflows, workflow states, transitions and user roles:

$ rails curation_concerns:workflow:load

Now that the Roles are loaded, grant the appropriate roles to the users by visiting the "Workflow Roles" section of the admin dashboard

Further documentation for defining and customizing workflows.

Something about notification should go here.

Adding Sample Data to Test Application

Sometimes when working with the test application, it can be helpful to have a repository populated with some number of objects. Rather than having to create them all through the user interface, which can be timely, the test application bundled with CurationConcerns provides a rake task that automatically creates 24 objects in the test application repository with different titles, levels of visibility, embargoes, and leases:

cd .internal_test_app
rake db:seed

Configuring the Administration Panel

To configure the Administration Pane see Admin Menu Guide

Help

If you have questions or need help, please email the Hydra community tech list or stop by the Hydra community IRC channel.