Skip to content
Django web application to display, annotate, and export digitized books.
JavaScript CSS Python HTML Other
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
apps Readding manifest validation test. Aug 22, 2019
config searching volume annotations on page template - still needs filter Aug 13, 2019
docs Reorganized apps. Createed IIIF models and serializers. Nov 6, 2018
locale Reorganized apps. Createed IIIF models and serializers. Nov 6, 2018
requirements updated wagtail-autocomplete to install from fork Jul 31, 2019
utility added ingest scripts Aug 6, 2019
.travis.yml adding slack notifications to travis. Apr 16, 2019 update changelog Oct 19, 2018 Merge pull request #14 from jpkarlsberg/patch-2 Apr 16, 2019
Gemfile.lock Use iiif bundle annotation gem Jul 31, 2019
LICENSE Reorganized apps. Createed IIIF models and serializers. Nov 6, 2018
data.dump Mirador fixes Mar 11, 2019
data.json put data.json back in Mar 21, 2019
gulpfile.js Reorganized apps. Createed IIIF models and serializers. Nov 6, 2018 Reorganized apps. Createed IIIF models and serializers. Nov 6, 2018
pytest.ini Setting up travix and pytest. Apr 15, 2019
setup.cfg Reorganized apps. Createed IIIF models and serializers. Nov 6, 2018


Readux is a platform developed by the Emory Center for Digital Scholarship which allows users to read, take notes on, and publish with digitized texts from libraries’ archival collections. With Readux, users are able to:

  • browse digitized page images,
  • search and select the texts of these digitized books,
  • annotate text or illustrations in these works, and then
  • publish digital copies of the texts with their annotations. Administrators can organize digitized books into collections, facilitating user access to digitized books available through the platform. Since its release, Readux has proved to be an innovative research and pedagogy tool for scholars and faculty at Emory University and beyond, with an array of use-cases ranging from teaching to publishing.





Build status

Build Status

Installation (development)


  1. Python 3
  2. PostgreSQL

Set up development environment

  1. Clone this repository.
  2. Navigate to the readux directory.
  3. Create virtual environment and activate it.
python3 -m venv venv
source venv/bin/activate
  1. Install the dependencies.
pip install -r requirements/local.txt
bundle install
  1. Copy and set up your local settings.
cp config/settings/local.dst config/settings/
  1. Add your database settings to the file or set an environment variable. For example:
export DATABASE_URL=postgres://<database user>:<database password>@<database name>
  1. Run the migrations and load the example data.
python migrate
python loaddata apps/fixtures/dump.json

Running local development server

Run the development under https to avoid mix content errors. Note: this will generate a self-signed certificate. There are ways to tell your browser to trust these certs, but that is beyond the scope of this README.

python runserver_plus --cert-file cert.crt

Running the tests

Coverage Status

Readux uses Django's default test framework, but is configured to use pytest.

Your database user will need to be able to create a database:

alter user readux createdb;

To run the tests, simply run:


Readux is configured to use Travis CI. Any push will trigger build.


We use the Git-Flow branching model. Please submit pull requests against the develop branch.

Code of conduct

Code of Conduct

Tech/framework used

Build with Cookiecutter Django

Mirador for displaying and annotating IIIF images.

??? for exporting.


This software is distributed under the Apache 2.0 License.


Use the fork of Wagtail Autocomplete because of UUID.

When importing with Import-Export

Import Collections, then Manifests, then I Servers, then Canvases. Annotations will populate based on Canvases. When importing collections, images for the "Original" field must already be in the apps/media/originals/ folder. List originals/filename.jpg in the column for original.

You can’t perform that action at this time.