A scrum-like board powered by nginx, nodejs, mongodb, backbone and html5
CoffeeScript CSS JavaScript HTML Handlebars

README.md

Koalab

Koalab is a board for brainstorming, Scrum or managing your family chores.

It's powered by nginx, nodejs, mongodb, grunt, backbone and html5. It takes profit of the most advanced features of html5, thus you should only use it with a modern browser like Mozilla Firefox or Google Chrome.

Screenshot

You can try Koalab on koalab.af83.com.

Our board

Features

On koalab, you can:

  • Login with Mozilla Persona (was BrowserID)
  • Create a board
  • Show a board
  • Add post-its on it: blue, green, rose or yellow, it's your choice
  • Edit in place the title of a post-it
  • Move post-its with drag'n'drop
  • Resize post-its
  • Add some lines to cluster post-its

And our killer features are:

  • A very cute logo <3 <3 <3
  • When a post-it is moved or edited, it's brought on top of the other post-its.
  • The font size of post-its is automatically adjusted to avoid its text to overflow.
  • And it's real-time! When a user does something, it's reflected almost instantaneously on the browsers of the participants of this board!

How to run it in local?

Install Git, NodeJS, MongoDB, Grunt and run these commands:

git clone git@github.com:AF83/koalab.git
cd koalab
cp config/server.json.example config/server.json
$EDITOR config/server.json
npm install -g grunt-cli
npm install .
bower install
grunt
node koalab.js
firefox http://localhost:8080/

And for production?

In production, we are using:

  • nginx (you can find an example of the vhost config in the config/nginx directory)
  • forever (npm install forever -g on the server)
  • and mina for deployments.

And for heroku?

  • Add config/server.json to git (in a dedicated heroku branch if you want).

    • Don't forget to set the persona audience value to your heroku app url.
    • Mongodb part is not necessary.
  • Add an heroku buildpack for grunt :

heroku config:add BUILDPACK_URL=https://github.com/jmreidy/heroku-buildpack-nodejs-grunt.git
  • Add a mongodb provider
heroku addons:add mongolab

for mongolab or for mongohq

heroku addons:add mongohq
  • Deploy on heroku
git push heroku master
  • Enjoy!

Configuration

The config/server.json file contains some configuration entries:

  • authorized is an array with the list of email addresses than can access this koalab instance. * can be used as a joker to match one or more characters: *@example.com will authorized everybody whose email address has example.com as domain.
  • port is the TCP port the node will listen to.
  • persona.audience is the public hostname and port of the website.
  • mongodb is the database informations.

JavaScript Code Analysis

Plato can be used to generate two reports on the JavaScript Code Analysis (back and front):

grunt plato
$BROWER reports/back/index.html
$BROWER reports/front/index.html

Credits

The logo is the copyright of Charlotte Schimdt and can be distributed and used for personal purpose.

Copyright (c) 2012 af83

Released under the MIT license