Crisis Info Hub is a super lightweight content management system, based on Google Docs.
Crisis Info Hub provides a templatized Google Doc, customizable to allow organizations and individuals to disseminate crisis-relevant information in a low-bandwidth way. A published version of this Google Doc is served through a Google App Engine instance, which provides additional functionality including translation and analytics. Example
Learning more about Crisis Info Hub
See the Crisis Info Hub introduction deck to see design highlights and a more complete overview of the product.
Creating a Crisis Info Hub Instance
Follow the Playbook to create your own Crisis Info Hub instance.
Contributing to Crisis Info Hub
Follow CONTRIBUTING to learn more about the development process.
Note: This is not an official Google product.
Prerequisites
These instructions have been tested with the following software:
node.js >= 0.8.0
0.8.0 is the minimum required to build with Grunt.
git
curl
An alternative to the Grunt build is provided via the util.sh shell script.
Dependency Setup
pushd .
mkdir $HOME/bin; cd $HOME/bin
npm install grunt-cli
Alternatively, sudo npm install -g grunt-cli will install system-wide
and you may skip the next step.
These instructions assume a working directory of the repository root.
Dependencies
All users should run:
git submodule init
git submodule update
Grunt users should also run:
npm install
Local Development
To run the development appserver locally:
grunt clean
grunt
grunt appengine:run:app
If you are not using Grunt, simply run:
util.sh -d
Deployment
To deploy to AppEngine:
grunt clean
grunt --appid=<appid>
grunt appengine:update:app --appid=<appid>
Specifying --appid= will override any value set in config.json. You may
modify the config.json file to avoid having to pass this parameter on
every invocation.
If you are not using Grunt, simply run:
util.sh -p <appid>
Detailed Dependency Information
The AppEngine SDK should be present in the directory:
You will need all the files from this archive in the above directory:
closure-templates-for-javascript-latest.zip
You can build this using the ant target “zips-for-release”, or download a
prebuilt version (the URL is in the Dependency Setup section).
The deployment script checks for the presence of .soy files in templates/soy.
If found, they are compiled to a single Javascript file using the
SoyToJsSrcCompiler.jar in the previously mentioned directory. The resulting
Javascript file is stored in static/app.soy.js, alongside the soyutils.js
library provided with the Closure Templates bundle that is necessary to include
on any page you plan to use Closure Templates.
Crisis Info Hub
Crisis Info Hub is a super lightweight content management system, based on Google Docs.
Crisis Info Hub provides a templatized Google Doc, customizable to allow organizations and individuals to disseminate crisis-relevant information in a low-bandwidth way. A published version of this Google Doc is served through a Google App Engine instance, which provides additional functionality including translation and analytics. Example
Learning more about Crisis Info Hub
Creating a Crisis Info Hub Instance
Contributing to Crisis Info Hub
Note: This is not an official Google product.
Prerequisites
These instructions have been tested with the following software:
An alternative to the Grunt build is provided via the
util.shshell script.Dependency Setup
pushd .mkdir $HOME/bin; cd $HOME/binnpm install grunt-clisudo npm install -g grunt-cliwill install system-wide and you may skip the next step.export PATH=$HOME/bin/node_modules/grunt-cli/bin:$PATHcurl -O <url on clipboard>unzip google_appengine_*.zipmkdir google_closure; cd google_closurecurl -O https://dl.google.com/closure-compiler/compiler-latest.zipunzip compiler-latest.zip; cd ..mkdir google_closure_templates; cd google_closure_templatescurl -O https://dl.google.com/closure-templates/closure-templates-for-javascript-latest.zipunzip closure-templates-for-javascript-latest.zippopdTo install dependencies for unit testing:
sudo easy_install pipsudo pip install unittest2Configuration Setup
You need to provied some required information
config.json)js/app.js)Scaffold Setup
These instructions assume a working directory of the repository root.
Dependencies
All users should run:
git submodule initgit submodule updateGrunt users should also run:
npm installLocal Development
To run the development appserver locally:
grunt cleangruntgrunt appengine:run:appIf you are not using Grunt, simply run:
util.sh -dDeployment
To deploy to AppEngine:
grunt cleangrunt --appid=<appid>grunt appengine:update:app --appid=<appid>Specifying
--appid=will override any value set inconfig.json. You may modify theconfig.jsonfile to avoid having to pass this parameter on every invocation.If you are not using Grunt, simply run:
util.sh -p <appid>Detailed Dependency Information
The AppEngine SDK should be present in the directory:
$HOME/bin/google_appengine/You can find / download this at: https://developers.google.com/appengine/downloads
(Optional, if using Google Closure): The Google Closure Compiler (and a suitable Java runtime), located at:
$HOME/bin/google_closure/You can find / download this at: https://github.com/google/closure-compiler
You will need all the files from this archive in the above directory: compiler-latest.zip
The compiler is invoked with the default namespace of ‘app.’ The compiled Javascript is written to
out/static/app.js.You will also need the Closure Library (in the closure-library submodule of this repository).
You can find more on the Closure Library here: https://github.com/google/closure-library
To use it, you will need to check out the code as a submodule by running the following commands from the base directory of this repository:
git submodule add <https://github.com/google/closure-library/> closure-librarygit commit -m "Initial import of Closure Library"(Optional, if using Closure Templates): The Closure Template compiler (in addition to the Closure Compiler), located at:
$HOME/bin/google_closure_templatesYou can find / download Closure Templates at: https://github.com/google/closure-templates
You will need all the files from this archive in the above directory: closure-templates-for-javascript-latest.zip
You can build this using the ant target “zips-for-release”, or download a prebuilt version (the URL is in the Dependency Setup section).
The deployment script checks for the presence of .soy files in templates/soy. If found, they are compiled to a single Javascript file using the SoyToJsSrcCompiler.jar in the previously mentioned directory. The resulting Javascript file is stored in static/app.soy.js, alongside the
soyutils.jslibrary provided with the Closure Templates bundle that is necessary to include on any page you plan to use Closure Templates.