Note: Plum was retired on 2018-04-16. Please see Figgy for current development.
Plum. A Hydra head to support digitization workflows
Plum is a Hydra head based on Hyrax, with two types of works:
- ScannedResource: a book or other resource composed of one or more scanned pages
- MultiVolumeWork: a book set, sammelband or other resource composed of multiple ScannedResources
Features
- Drag-and-drop tools for reordering FileSets and editing structure
- Generating IIIF manifests for Collections and Works based on that structure
- Building PDFs of Works based on their IIIF manifests
- Performing OCR with Tesseract
- Simple state-based workflow
- Retrieving external metadata from our finding aids and catalog web services
Dependencies
- Redis
- Start Redis with
redis-server
or if you're on certain Linuxes, you can do this via sudo service redis-server start
.
- Kakadu
- On a mac, extract the file and run the pkg installer therein (don't get distracted by the files called kdu_show)
- Tesseract
- Version 3.04 is required. You can install it on Mac OSX with
brew install tesseract --with-all-languages
For Ubuntu you'll have to
compile it.
- RabbitMQ (Optional)
- Start with rabbitmq-server
- Used for publishing create/update/delete events for systems such as
Pomegranate
Initial Setup
After cloning the Plum repository:
- Install dependencies:
bundle install
- Setup the database:
rake db:migrate
- Setup ActiveFedora::Noid minter:
rails g active_fedora:noid:seed
- Create the default admin set:
rake hyrax:default_admin_set:create
- Load the workflows in
config/workflows
: rake hyrax:workflow:load
Running the Tests
Run the test suite:
$ rake ci
You may also want to run the Fedora and Solr servers in one window with:
$ rake hydra:test_server
And run the test suite in another window:
$ rake spec
Javascript tests
To run the Javascript test suite, run:
$ rake spec:javascript
You can then open the file tmp/jasmine/runner.html
in a browser to run the tests in that browser.
You may need to pass options to allow access to local files, e.g., on MacOSX, you can quit Chrome
and then open it with the Javascript tests:
$ open -a "Google Chrome" tmp/jasmine/runner.html --args --allow-file-access-from-files
Adding an Admin user and assigning workflow roles
- Run the development servers with
rake hydra:server
(or run Rails and Solr/Fedora separately with rails s
and rake server:development
).
- Go to http://localhost:3000/users/auth/cas and login with CAS
- $ rake add_admin_role
- Go to http://localhost:3000/admin/workflow_roles and grant workflow roles
Configuring Loris for Development
- Install Docker Toolbox https://www.docker.com/toolbox
- Only necessary for mac or windows machines. For unix boxes install via
wget -qO- https://get.docker.com/ | sh
- Start a docker VM:
docker-machine start default
- Setup your docker environment:
eval "$(docker-machine env default)"
- Retrieve the loris image:
docker pull lorisimageserver/loris
- Start the container:
docker run --name loris -v /path/to/plum/tmp/derivatives:/usr/local/share/images -d -p 5004:5004 lorisimageserver/loris
- Find the docker IP address with
docker-machine ls
- Export config variable for IIIF url:
export PLUM_IIIF_URL="http://<docker-ip>:5004"
- Images should be available at
http://<docker-ip>:5004/
based on the FileSet id. e.g., if your docker IP address is 192.168.99.100, the full view of FileSet 70795765b
would be at http://192.168.99.100:5004/70%2F79%2F%2F57%2F65%2Fb-intermediate_file.jp2/full/full/0/default.jpg