Warning
This project is experimental and not well supported.
Scribe is a framework for crowdsourcing the transcription of text-based documents, particularly documents that are not well suited for Optical Character Recognition. It is a collaboration between Zooniverse and The New York Public Library Labs with generous support from The National Endowment for the Humanities (NEH), Office of Digital Humanities.
This fork by the Digital Humanities Lab at Utrecht University has additional functionality and updated dependencies and was worked on for the CEMROL crowd-sourcing project.
This project has finished and the application is no longer available for use. If you want, you can get the data here:
- Database Dump (redacted)
- Export of the Results
Contact us at the Centre for Digital Humanities if you have any questions about this project.
Are you an organization or individual interested in using Scribe for your next crowdsourced transcription project? Start here!
- What is Scribe and is it for me? Read our Scribe Primer
- Ready to set up your project? Head over to our Project Setup page
- !! Use yarn instead of npm, this is needed by rails/webpacker !!
Would you like to contribute to the codebase? Check out these technical resources about the Scribe framework and make your first pull request!
- Terms and Keywords
- Setting up your environment on Mac OSX, Windows, or Unix
- Data Model & Tools Config
- Creating Custom Marking Tools
- Setting up OAuth & Deploying
We are launching Scribe with three very different projects by Zooniverse and The New York Public Library:
-
Node versions greater than 10. You might need to use n to install and activate a specific version of Node for development. It has been tested to work in production with Node 10 and development using Node 13.
- In
config/mongoid.yml
changedsessions
toclients
. - In
app/models/classification.rb
changedfind_and_modify
method tofind_one_and_update
.
This isn't really mentioned in the ScribeAPI wiki:
- Create a file in the root of the project called
.env
. - Use
rake secret
to create a secret key. - Add
DEVISE_SECRET_TOKEN=yournewkey
to.env
. - Repeat to add
SECRET_KEY_BASE_TOKEN=anothernewkey
to.env
. - To specify the name of the Mongo database you want to create, set
MONGO_DB=yourdbname
- If you're going to start up the Puma web server (see below), add
RACK_ENV=development
andPORT=3000
Also add your OAUTH keys to .env
as mentioned in the wiki.
After creating your Heroku app and database as described in the wiki:
- Add
DEVISE_SECRET_TOKEN
andSECRET_KEY_BASE_TOKEN
to Heroku's environment variables, eg:heroku config:set "DEVISE_SECRET_TOKEN=yournewkey"
- Add your
MONGOLAB_URI
and OAUTH credentials as described in the wiki.
The information about buildpacks in the wiki is out of date. Ignore the section about BUILDPACK_URL
but before you deploy to Heroku run the following commands:
heroku buildpacks:add --index 1 heroku/nodejs
heroku buildpacks:add --index 2 heroku/ruby
The index values are important as Node needs to be built first, otherwise the Ruby build will fail complaining about Browserify.
The original repo had a non-functional procfile
-- capitalisation matters to Heroku, so I've renamed it Procfile
. Heroku recommends running the Puma web server, so I've just followed their instructions on what to include in the Procfile
. If you want to test the config in your development environment, make sure you set the RACK_ENV
and PORT
values in your .env
file and then use Foreman -- foreman start
.