Code Monkey home page Code Monkey logo

scribeapi's Introduction

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

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!

For Contributors

Would you like to contribute to the codebase? Check out these technical resources about the Scribe framework and make your first pull request!

Example Projects

We are launching Scribe with three very different projects by Zooniverse and The New York Public Library:

Changes to get running on Heroku (July 2017)

Software versions

  • There seem to be compatibility problems with Node versions greater than 6. I edited package.json to 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 .ruby-version accordingly.

  • MLab databases now use MongoDB 3, but Mongoid 4 doesn't seem able to authenticate with MongoDB 3 urls. So I changed the Gemfile and Gemfile.lock to set Mongoid at 5.2.1.

  • The mongoid change also meant I had to update mongoid-rspec, rspec-rails, bson, and origin. I also removed the bson requirement from moped.

Code changes

  • In config/mongoid.yml changed sessions to clients.
  • In app/models/classification.rb changed find_and_modify mthod to find_one_and_update.

Environment variables -- Development

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 and PORT=3000

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:

  • Add DEVISE_SECRET_TOKEN and SECRET_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.

Procfile

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.

scribeapi's People

Contributors

saschaishikawa avatar simensta avatar nonword avatar beefoo avatar wlla avatar stuartlynn avatar adammcmaster avatar wragge avatar subsublibrary avatar camallen avatar edpaget avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.