Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Coconut renders json defined forms in a browser and then saves the results to couchdb.
JavaScript CSS CoffeeScript D Java Shell Other

This branch is 31 commits ahead, 15 commits behind chrisekelley:master

Coconut renders json defined forms in a browser and then saves the results to couchdb.


You will need couchdb to make it run:

apt-get install couchdb

The first time you push the couch, the coconut db will be created for you. You can also create a new database using futon, the handy couchdb GUI by clicking here: futon on localhost, or by running this curl command:

curl -X PUT http://localhost:5984/coconut

To get Coconut working you need to put the files in this directory into a couchdb database. You can accomplish this by using the couchapp tool.

apt-get install couchapp

Create a .couchapprc file based on .couchapprc.sample. Then we can use couchapp to push the files into your database:

couchapp push

Now you can point your browser at the Coconut

How does this work?

CouchDB, Backbone.js, backbone-couchdb, json, fermented eyebrow sweat, fairy dust.

How is this organized?

All of the backbone models and views have their own file and are in app/models and app/views respectively. app/app.js is responsible for tying it all together.

You can put json forms into the _docs directory and they will be added to your couch when you do a couchapp push.

How do I customise page flow?

app.js constructs the Backbone.Router. List the routes in the routes method:

routes: {
        "home":                 "home",    // #home
        "newPatient":                 "newPatient",    // #newPatient
        "arrestDocket":                 "arrestDocket",    // #arrestDocket
        "*actions": "defaultRoute" // matches

and create a method for each route:

    newPatient: function () {
        registration = new Form({_id: "PatientRegistration"});
            success: function(model){
                (new FormView({model: model})).render(); 

Other useful info

It's a pain to run 'couchapp push' everytime you make a change. Mike wrote a little watchr script that watches for changes to any relevant files and then automatically pushes them into your couch. To get it you need to install rubygems and watchr:

apt-get install rubygems
gem install watchr


Check out the project's issues. Please help me fix issues and add any problem that you come across.

Something went wrong with that request. Please try again.