This is a fork of ScribeAPI, updated in July 2017 to get it running on Heroku. See below for changes and additional documentation.
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.
For Project Creators
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
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
Changes to get running on Heroku (July 2017)
There seem to be compatibility problems with Node versions greater than 6. I edited
package.jsonto pin Node at 6.11.1, as recommended by the Heroku documentation. You might need to use n to install and activate a specific version of Node for development.
Heroku no longer supports 2.1.* versions of Ruby. I changed Gemfile to specify
ruby '2.2.7', which is the earliest supported version. I also changed
MLab databases now use MongoDB 3, but Mongoid 4 doesn't seem able to authenticate with MongoDB 3 urls. So I changed the
Gemfile.lockto set Mongoid at 5.2.1.
The mongoid change also meant I had to update
origin. I also removed the
Environment variables -- Development
This isn't really mentioned in the ScribeAPI wiki:
- Create a file in the root of the project called
rake secretto create a secret key.
- Repeat to add
- To specify the name of the Mongo database you want to create, set
- If you're going to start up the Puma web server (see below), add
Also add your OAUTH keys to
.env as mentioned in the wiki.
Deployment to Heroku
After creating your Heroku app and database as described in the wiki:
SECRET_KEY_BASE_TOKENto Heroku's environment variables, eg:
heroku config:set "DEVISE_SECRET_TOKEN=yournewkey"
- Add your
MONGOLAB_URIand 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
PORT values in your
.env file and then use Foreman --