Prism is a tool for collective interpretation. It's an ongoing experiment by the Praxis Program at the University of Virginia Scholars' Lab
Clone or download
Latest commit b9ff50f Jul 5, 2018
Failed to load latest commit information.
app refactors slightly the visualization page to remove some variables th… Dec 2, 2016
config Update devise for facebook api Jun 26, 2017
db Comments out migration line that was causing problems in the Heroku d… Aug 14, 2014
doc Initial generation of Rails files Oct 19, 2011
features integration tests are a go Mar 14, 2012
lib Rails Best Practices fixes May 13, 2014
log Added a pages controller to have a default page to view Oct 20, 2011
public Added my information to humans.txt. May 8, 2013
script generated cucumber folder structure Mar 14, 2012
spec remove stale routes May 2, 2014
sql Added script to deduplicate word markings. May 6, 2014
test Initial generation of Rails files Oct 19, 2011
vendor Initial generation of Rails files Oct 19, 2011
.gitignore Update Gemfile and .gitignore for parsing database. Jun 12, 2017
.rails_footnotes Adds rails_footnotes to show debugging info in development mode Mar 14, 2012
.rspec Added nyancat formatter Dec 1, 2011
.ruby-gemset Updates for rvm and heroku Feb 19, 2014
.travis.yml updates .travis.yml Jul 18, 2016
Gemfile Update Gemfile to account for sqlite3 in more than environment Jun 26, 2017
Gemfile.lock Update Gemfile and .gitignore for parsing database. Jun 12, 2017
Guardfile Security Updates Nov 20, 2014
LICENSE Adds Apache 2.0 License; closes #1 Mar 14, 2012
LOGO.jpg feature branch Mar 18, 2013
Procfile PUMA. Feb 11, 2015
README Adds DOI for citable code Jul 14, 2014
Rakefile Initial generation of Rails files Oct 19, 2011 Update Jul 5, 2018
app.json Implements a Deploy to Heroku button Aug 12, 2014 Initial generation of Rails files Oct 19, 2011



Prism is a tool for collective interpretation, an experiment in crowd-sourcing and visualizing many readings of a set of common texts. As part of our project to make crowd-sourcing more meaningful and less mechanical, users interact subjectively with a text, highlighting it in accordance with certain interpretive categories, such as sound, sense, and modernism, to produce an aggregate visualization of all other users' markings that shows points of analytical agreement or disagreement.

The basic workflow is simple:

  1. Play in the sandbox on our introductory text to practice using the highlighting functionality.
  2. After creating an account, choose a text to highlight.
  3. The highlighting page automatically starts with the first category selected. Simply click and drag over the desired text to change its color. To switch categories, simple click on the desired category. Click on the eraser tool and then click and drag over text to undo any unwanted highlights.
  4. When done, click the submit button to see a visualization.
  5. To switch to the visualization for a different category, simply click on a different category.

Prism is an ideal tool for research and pedagogy alike; students can highlight a text and discuss their markings in class, and scholars can see how the world at large views these texts.

Getting Started

Prism is a Ruby and Rails project, with several tools to get you up-and-running quickly. Assuming you have Ruby and git installed properly, the following commands will pull the latest version of the software, set up the database, and import some default documents.

$ git clone git://
$ cd prism
$ bundle install
$ rake db:migrate
$ rake import:docs

Contributing to the Project

Build Status Code Climate

For a list of people who have contributed to the codebase, see the list of contributors.

Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it, and make sure all the tests pass. This is important so we don't unknowingly break your changes in a future release. If you're fixing a bug, it helps us to verify that your bug does in fact exist.
  • Commit your changes to your own fork.
  • Send us a pull request, with a clear explanation of the changes. Bonus points for topic branches.

Deploy to Heroku


Deploy your own Prism installation to Heroku by clicking the "Deploy to Heroku button." Follow the Heroku instructions for importing your source code and cloning the new repository to your desktop. From within your new app's repository, you will need to run the following command to set up the database:

$ heroku run rake db:migrate

Note: the Facebook and Google login functions will only work on your personal installation if you integrate into heroku your own set of login credentials.

$ heroku config:add FACEBOOK_KEY=‘your Facebook key’
$ heroku config:add FACEBOOK_SECRET=“your Facebook secret”
$ heroku config:add GOOGLE_KEY=‘your google key’
$ heroku config:add GOOGLE_SECRET=“your google secret”


We rely on the [Github issues tracker][issues] for feedback on issues and improvements.

Copyright / License

This software is released under the Apache 2.0.

Production Workflow

Make sure you're up to date:
$ git pull
test things locally:
$ rails s
Commit things if working:
$ git add files
$ git commit –m 'message'
If works, test on staging, where staging is the name of the git remote pointing to the heroku: staging site – prism-staging12
$ git push staging master
if functionality is there, push to the github repository –
$ git push origin master

To deploy to capistrano
[after editing and committing to master branch]
git checkout feature/capistrano
git merge master
cap production deploy