Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A data curation Ruby on Rails engine built on Hydra and Sufia
Ruby HTML CSS JavaScript CoffeeScript
Pull request Compare This branch is 335 commits ahead, 20 commits behind projecthydra-labs:develop.
Failed to load latest commit information.
app Do not escape HTML entites in advisor and creator
config ETD department and degree acronym mappers
db/migrate DLTP-36 adding controlled vocabulary for etd degree_name, level and d…
lib Corrected - Mismatch of DOI in ETD
spec fix travis build
tasks fix travis build
tmp Squashed commit of the following:
vendor/assets DLTP-331 Show view refinements
.coveralls.yml Adding support for coveralls
.gitignore fix travis build
.hound.yml Adding documentation on how to run rubocop
.mailmap Adding CONTRIBUTORS document
.node-version Group permissions for work
.phantom-version Explicily set phantomjs version
.rspec Enabling execution time profiling of examples
.ruby-gemset Adding flash message when curation concern is created
.ruby-version Fixing rspec
.travis.yml Fixing rspec build for WorkPermission Adding documentation on how to run rubocop Adding CONTRIBUTORS document
Gemfile fix travis build
LICENSE Adding Northwestern and Data Curation Experts Fixing failing Rspec tests
Rakefile Replacing spec:show_matchers with yenta Works around UI bug causing multiple delete confirmation dialogues
curate.gemspec Locking gems to have the tests passing
dump.rdb Resolves Rubydora reload and API problem with deletes (soft and hard).
engine_plan.rb Adding Zeus support
run-tests.txt Adding file to trigger tests
zeus.json Adding Zeus support

Curate Version Build Status Coverage Status

Curate is a Rails engine leveraging ProjectHydra and ProjectBlacklight components to deliver a foundation for an Institutional Repositories. It is released under the Apache 2 License

Starting a New Curate Based Application

When you generate your new Rails application, you can use Curate's application template:

$ rails new my_curate_application -m

Or Install By Hand

Add the following line to your application's Gemfile:

gem 'curate'

And then execute:

$ bundle
$ rails generate curate

Developing and Contributing for the Curate gem


You may need to have the following installed ‡

‡ - Why "you may need"? Some of these are only optionally used in development and tests; But production will need it.

Clone the Curate repository

From the command line:

git clone ./path/to/local


Curate uses Jetty for development and testing. You could configure it to use an alternate Fedora and SOLR location, but that is an exercise for the reader. The hydra-jetty package should not be use for secure production installations

Install Jetty

Install jetty, you should only need to do this once (unless you remove the ./jetty directory)

$ rake jetty:unzip

Running the Specs

Inside the Curate directory (i.e. ./path/to/local):

All of Them

  1. Make sure jetty is running (rake jetty:start); It will take a bit to spin up jetty.
  2. Make sure you have a dummy app ‡
    1. Run rake regenerate to build a clean app in ./spec/dummy
  3. Then run rake spec; The tests will take quite a while ‡‡

‡ - A Rails engine requires a Rails application to run. The dummy app is a generated application inside Curate in the ./spec/internal directory ‡‡ - Slow tests are a big problem and we are working on speeding them up, but its complicated.

Some of Them

In some cases you want to know the results of a single test. Here's how you do it.

  1. Make sure jetty is running (rake jetty:start); It will take a bit to spin up jetty.
  2. Make sure you have a dummy app ‡
    1. Run rake regenerate to build a clean app in ./spec/dummy
  3. Then run BUNDLE_GEMFILE=spec/internal/Gemfile bundle exec rspec path/to/spec.rb:LINE

‡ - With Curate being an Engine we need to point to the Dummy Application's Gemfile. In full Rails applications you can normally run the following rspec path/to/spec.rb:LINE

With Zeus

Zeus pre-loads your Rails app so that your normal development tasks such as console, server, generate, and specs/tests take less than one second. ‡

  1. In terminal window #1 run zeus start
  2. In terminal window #2, once Zeus is started: run zeus rake spec for all tests; or zeus test path/to/spec.rb:LINE for one

‡ - Loading the environment to run your tests takes less than a second. So running an individual test will take less time.

Contributing Back

If you are interested in helping us make Curate better, please take a look at our Contributing resources and guidelines.

Working on Curate while working on my Application

Assuming you are wanting to work on your Curate-based application and make modifications to the Curate gem, follow these instructions.

Replace the following line in the Gemfile of your Curate-based application (see Starting a New Curate Based Application):

gem 'curate' ...


gem 'curate', path: './path/to/my/clone/of/curate'

More information about Gemfile management at

You can then do concurrent development on both your clone of the Curate gem and your Curate-based application.

NOTE: Any changes you make in the Curate gem will likely require you to restart your web-server.

Integration with CAS, LDAP, Shibboleth

For integration with CAS, refer:

For integration with LDAP, refer:

For integration with Shibboleth, refer:

For integration with multiple authentication systems (and for twitter, facebook, etc.), consider using OmniAuth:

Something went wrong with that request. Please try again.