Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



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


Prism is a tool for collective interpretation. It's an ongoing experiment by the Praxis Program at the University of Virginia Scholars' Lab




No packages published