Build Status Coverage Status Inline docs

What is notebook?

see live website

notebook is a set of tools for writers, game designers, and roleplayers to create magnificent universes – and everything within them.

From a simple interface in your browser, on your phone, or on your tablet, you can do everything you'd ever want to do while creating your own little (or big!) world.

notebook is a writer's planning tool for creating anything from universes to characters, to plots, to individual items.

It is also meant to expand into many areas to benefit writers (and exciting to developers), including areas like:

  • Automated revision services

  • Structuring real-time natural language processing output into a semantically reusable state

  • Decision-making algorithms for improving reading comprehension, reading level, accent-correction, and other real-time writing suggestions

  • A knowledge graph of structured data in your universe, and an engine to manipulate it in awesome ways

  • Machine learning on generating character and location names, suggesting realistic defaults (random or not), and more

  • and tons more

The Issue Tracker

If you are interested in helping out, check out the issue tracker. I've loaded it with tons of action-based, chunk-sized improvements that I think anyone familiar with Rails will be able to jump in and complete. Feel free to make suggestions, open issues, join discussions, or ask where you should look in the code to get started implementing something. :)

You'll notice there are *a lot* of issues in *a lot* of milestones. Call it feature creep, but I've separated every potential idea for full-fledged services into milestones that can be worked on completely independently of others. The features are (for the most part) has no deadlines and are in development simultaneously, meaning if you see a feature you would really like to use, you can make that feature happen by jumping directly into it and completing its issues.

TL;DR Milestones are independent of each other – work on whatever you want to see made!

Installing the notebook stack locally

Install curl

sudo apt-get install curl

Install rvm

\curl -sSL | bash

source ~/.rvm/scripts/rvm

Install ruby 2.1.2

rvm install ruby 2.1.2

rvm use 2.1.2

Install rails 4.0.1

gem install rails -v 4.0.1

Install necessary libraries

sudo apt-get install imagemagick libmagickwand-dev

Install gems

bundle install

Optional: To enable the uploading and editing of images (used in Locations management, etc), you will need to create a file named set_aws_credentials.rb with the following content:

[[ $_ != $0 ]] && echo "Ready to run your server!" || echo "This script needs to be sourced!"

export AWS_BUCKET="<your bucket>"
export AWS_ACCESS_KEY_ID="<your access key id>"
export AWS_SECRET_ACCESS_KEY="<your secret access key>"

And then set your AWS credentials with

source set_aws_credentials.rb

Finally, run the server with

rails server

Deployment to

Deployment to the live stage will only be done by approved developers, and consists of a deployment of

  • deploy github to staging (done only by approved developers)

  • mirror data from live into staging

  • run regression tests on staging environment

  • deploy from staging to live (viewed at


Feel free to get in touch if you have any questions, comments, or concerns! :)

© Andrew Brown 2014