Skip to content
The administrative discovery interface for Stanford's Digital Object Registry
Branch: master
Clone or download
Latest commit d85c041 Mar 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bin
config
db
fedora_conf/data
lib
log
public
solr_conf
spec
tmp
vendor/plugins
.gitignore
.hound.yml
.jshintignore
.jshintrc
.rspec
.rubocop.yml
.rubocop_todo.yml
.scss-lint.yml
.travis.yml
Capfile
Dockerfile
Gemfile
Gemfile.lock
INDEXING.md
LICENSE
PROFILING.md
README.md
Rakefile
VERSION
config.ru
docker-compose.yml

README.md

Build Status Code Climate Code Climate Test Coverage GitHub version

Argo

Argo is the administrative interface to the Stanford Digital Repository.

Installation

System Requirements

  1. Install Docker
  2. Install Ruby 2.5.3

Check Out the Code

git clone https://github.com/sul-dlss/argo.git
cd argo

Run bundler to install the Gem dependencies

bundle install

Note that bundle install may complain if MySQL isn't installed. You can either comment out the mysql2 inclusion in Gemfile and come back to it later (you can develop using sqlite3), or you can install MySQL.

Install components

This will setup the database:

rake argo:install

Run the servers

docker-compose up -d

Need to emulate an administrator role in your browser? Edit docker-compose.yml, and under services:web:environment change the value of ROLES to sdr:administrator-role

If you want to use the rails console use:

docker-compose run --rm web rails console

If you want to run background jobs, which are necessary for spreadsheet bulk uploads and indexing run:

docker-compose run web bin/delayed_job start

Note, if you update the Gemfile or Gemfile.lock, you will need to rebuild the web docker container and reload the data:

docker-compose build web
docker-compose run --rm web rake argo:repo:load

Load and index records

docker-compose run --rm web rake argo:repo:load

Common tasks

Run the tests

To run the test suite, invoke rspec from the Argo app root. Note that the docker containers need to be running already for this work.

# docker-compose up -d # (if not already running)
rspec

Run the continuous integration build

Important Note: Running rake ci will reload fixtures for the test environment only.

The continuous integration build can be run by:

RAILS_ENV=test bundle exec rake ci

Delete records

You cannot just load records twice and overwrite. The repo namespace has been provisioned and you need to remove the old record first.

For example, using rails console to target one ID, or five:

Dor.find("druid:pv820dk6668").destroy
%w[pv820dk6668 rn653dy9317 xb482bw3979 hj185vb7593 hv992ry2431].each{ |pid| Dor.find("druid:#{pid}").destroy }

Internals

Argo uses Blacklight and ActiveFedora to expose the repository contents, and dor-services to enable editing and updating. Its key components include:

  • Rails 5.1
  • Blacklight 6
  • dor-services
    • ActiveFedora
    • dor-workflow-service
  • RSolr
  • DelayedJob
  • Bootstrap
  • JQuery

and in development or testing mode:

  • RSpec
  • Capybara
  • Chrome

Further reading

Indexing (including bulk reindexing)

For further reading on how indexing from Fedora to Solr works in Argo, see INDEXING.md. This explains how single object reindexing works, how the bulk reindexing mechanism works, and how to build custom reindexing runs.

Profiling

For information on how to profile the app in the event of performance issues, see PROFILING.md. This explains how to collect profiling info, how to analyze it, how to approach the issue generally, and alternatives/complements to Argo's main built-in profiling tool.

You can’t perform that action at this time.