Worthwhile: A tour
Justin Coyne
Data Curation Experts
What is Worthwhile?
- Rails engine stand up a fully functioning repository
- Evolution of Curate/Sufia
Q: Why leave Curate?
A: Complexity
- DOI
- Several pre-built models
- Linked-creators
Q: Why leave Curate?
A: Tests were too slow
Q: Why leave Curate?
A: Community is too conservative for rapid change.
- Too many parties with an investment in the software
- Too few people with the power to review/merge pull requests
- Lack of communication about the boundaries
- We didn't take the time to get very involved in steering
- Our velocity on the Case project was too low
Q: Why leave Curate?
A: Old versions of dependencies
- Based on Hydra 6, Blacklight 4, Bootstrap 2
Solutions
- Borrow heavily from Curate
- Cut out all the different work types, DOI, Linked Contributors
- Get out of the community process until we have something stable
- Upgrade all the dependencies
- Utilize Sufia better
Demo Case Digital Library
Now it's your turn
Prerequisites
$ rails --version
Rails 4.1.6
Installing
$ rails new worthwhile_demo
$ cd worthwhile_demo
Add the gem
Open Gemfile and add these lines
gem 'worthwhile'
Uncomment this line:
gem 'therubyracer'
Save the file and quit the editor.
Install Dependencies
On the command line type:
$ bundle install
When this is complete you should see:
...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
Run the generator
$ rails generate worthwhile:install
Setup a test Jetty with Fedora/Solr
If you've already downloaded jettywrapper move the v7.0.0.zip file into tmp/
cp /home/vagrant/v7.0.0.zip tmp/
$ rake jetty:unzip jetty:config
Start Jetty
$ rake jetty:start
You should see jetty started at http://localhost:8983/fedora/describe within 1 minute.
Run the database migrations
$ rake db:migrate
Start the server
$ rails server
Start the background workers
$ TERM_CHILD=1 QUEUE=* rake environment resque:work
* This may only work if you have Redis and the Hydra::Derivatives prerequisites installed
Make a custom work type
$ rails generate worthwhile:work ScholarlyPaper
Custom Work
- Model - app/repository_models/scholarly_paper.rb
- Actor - app/actors/curation_concern/scholarly_paper_actor.rb
- Controller - app/controllers/curation_concern/scholarly_papers_controller.rb
- Views - app/views/curation_concern/scholarly_papers/ (empty)
- Registered in config/initializers/worthwhile_config.rb