This is the frontend Ruby on Rails application for DPLA platform.
We welcome pull requests for bug fixes and new features. Please use a separate feature branch for each pull request.
Quickstart for hacking on the DPLA front end
Here's what you need to do if you want to get set up to, for example, fix a bug or add a feature -- and submit a pull request, of course.
This will also allow you to build a whitebox version of the dpla.org web site.
NOTE: Because the current dependencies include native Gems, it may be difficult to install them on Windows. Two known extensions include Rmagic & debug_inspector.
- Ruby - ruby, ruby-dev, build-essential
- RMagic gem prereqs - imagemagick and libmagickwand-dev
- Postgresql - postgresql-common, postgresql, pgadmin3
This procedure was tested on Ubuntu. It may need to be adapted for other operating systems.
sudo apt-get install git
Install Ruby & related dependencies
sudo apt-get install imagemagick libmagickwand-dev```
Install necessary Ruby Gems
bundle install --deployment
sudo apt-get postgresql-common, postgresql, pgadmin3
Configure PostgreSQL & create development database
psql (9.1.10) Type "help" for help. postgres=# pwd postgres-# \password postgres```
ie enter the command
\password postgres at the
After entering the new password twice, press ctrl/D to exit.
Now create the development database:
sudo -u postgres createdb dpla_development
config/database.yml and edit
it to provide your username, password, and database for the
development: adapter: postgresql host: localhost encoding: unicode database: dpla_development username: postgres password: <postgres password>
config/environments/development.yml, and edit it to provide your DPLA API key
Build the front end assets
Run the database migrations
Start the local Rails server
You should now be able to point your browser at
see your local copy of the DPLA front end.
This application is released under an AGPLv3 license.
- Copyright Digital Public Library of America, 2015 -- 2017
We use BrowserStack to test this code in as many different devices and platforms as we can.