POD Aggregator
The POD Aggregator project is a Ruby on Rails application that receives and transmits MARC bibliographic and holdings data from multiple institutions.
Developing
Pre-requisites
This project is tested on ruby 3 and nodeJS 16. Other versions may work but are unsupported. JavaScript package management is done via yarn.
Getting started
Pull down the code and enter the project directory:
git clone https://github.com/ivplus/aggregator.git
cd aggregator
Install dependencies and prepare the database:
bin/setupCreate a local admin user for development:
bin/rails agg:create_adminConfigurations
POD Aggregator has several configuration settings many of which are available using the config gem at config/settings.yml.
Adding data
While adding MARC data locally is perfectly fine for many development use cases, you may want to more broadly populate the database. You can do this using the configurable db:seed task.
bundle exec rake db:seedTesting
The continuous integration tests for POD aggregator can be run using:
bundle exec rakeEmulating production
While using a standard development setup locally, developers may experience some issues with read/write concurrency in Sqlite and job processing using the ActiveJob AsyncAdapter.
One solution to this is to temporarily switch to using PostgreSQL and Sidekiq with Redis locally for a more "production like" development environment. Assuming you have PostgreSQL and Redis running on your local machine, you can set environment variables prior to invoking the server:
export REDIS_HOST=localhost
export REDIS_PORT=6379
export DATABASE_URL=postgresql://user:password@localhost:5432/dbname
bundle exec rails server # or other commandsDeployment
Deployment is setup using Capistrano using standard Stanford Digital Library Systems and Services practices.