Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 4944608a42
Fetching contributors…

Cannot retrieve contributors at this time

executable file 72 lines (50 sloc) 3.255 kb

DataCouch

A dataset collaboration network built on top of CouchDB. Developed as a free software @codeforamerica project for the City of Boston by @maxogden

Very much a work in progress as of Spring 2012!

Features

  • Free public dataset hosting
  • Dataset forking
  • JSON and CSV data import and export
  • Bulk data cleanup interface based on Google Refine
  • Automatic REST JSON API powered by CouchDB
  • Real-time dataset replication and changes feed (SLEEP/syncable.org)
  • Geospatial queries
  • Data-driven HTML5 application hosting
  • Out of the box app visualizations + templates
  • In-browser application source editor
  • Geographic point reprojection (between any EPSG definitions)

Roadmap (fork and help out please!)

  • Data catalog functionality (search, categories)
  • UI for rolling back through different dataset revisions
  • Dataset pull requests and merging interface
  • XML, XLS and other import/export options
  • Etherpad/Google docs style collaborative wiki
  • Additional bulk data editing helper functions
  • Integration with BuzzData/CKAN/Infochimps (by convincing them to make better APIs)

Installation

NOTE: find me in IRC on freenode/#couchdb if you get confused

This will walk you through getting datacouch running on your local machine.

Requirements: node.js >= 0.6 and CouchDB >= 1.1

Install node.js v0.6.11 and npm

// install node
git clone git://github.com/joyent/node.git
cd node/
git checkout v0.6.11
./configure && make && sudo make install
// then install npm
curl http://npmjs.org/install.sh | sh

Simply build couchdb or do brew install couchdb. Once the install is successful, start your server and visit the Futon to make sure it worked.

Create a couchdb admin user via the futon admin / logout area in the bottom right corner of the screen. You can't run datacouch in admin party.

You need to go create a twitter app in order to use datacouch (it uses Twitter for login). NOTE: If you create a new app and leave the callback url blank then datacouch will fail to authenticate. Twitter will respond with a 401 of "Desktop applications only support the oauth_callback value 'oob'". Just enter "http://127.0.0.1" as your callback url.

Once your app is complete copy the consumer secret, key and couch url (with admin credentials) into your environment via .bashrc/.bash_profile:

export DATACOUCH_TWITTER_KEY="KEY FROM https://dev.twitter.com/ HERE"
export DATACOUCH_TWITTER_SECRET="SECRET FROM https://dev.twitter.com/ HERE"
export DATACOUCH_NONADMIN_ROOT="http://localhost:5984"
export DATACOUCH_ROOT="http://admin:pass@localhost:5984"

Once you save your environment variables either: close your terminal or run source .bashrc or source .bash_profile to load your environment changes.

Now you can start datacouch!

node run.js
open http://localhost:9999

If you get errors the first time you run run.js just run it a few times and it should work itself out hehehehe!

In case you get the "Error: listen EACCESS", you should either execute node run.js as root, or modifiy the default port in the file services/defaults.js (9999 works well)

Jump to Line
Something went wrong with that request. Please try again.