BlightStatus based on node.js and CouchDB. Developed for Macon, Georgia
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
public
routes
test
views
.gitignore
Procfile
README.md
app.js
auth.js
config.js
middleware.js
package.json
test-config.js

README.md

About HousePointer

This is an app experimenting with CouchDB to store housing data. Check openblight for more information on that project.

Homepage

Street-by-Street Results

Click for 2009-2012 Code Enforcement History

Individual House History and Survey Data

Browse Open Cases Map

Download as Google Earth KML

Experimental

Integration with SeeClickFix


Open311 Server

Integration with Google Prediction API

About the Database

CouchDB - NoSQL database

CouchDB is an open source (Apache license), NoSQL database designed around web technologies. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for a REST API.

CouchDB does not store data and relationships in tables. Instead, each database is a collection of independent documents. Each document maintains its own data and self-contained schema.

This project uses CouchDB for several reasons:

  • Schema-less document structure lets local groups and new apps contribute data without overwriting your records.
  • Geospatial index for easy use in maps and mobile apps
  • Sync data between local and cloud databases
  • Sync data between your database and mobile devices

Sources: http://guide.couchdb.org/draft/why.html and http://en.wikipedia.org/wiki/CouchDB

IrisCouch

IrisCouch hosts your CouchDB database on their servers, and includes:

  • Futon admin panel
  • GeoCouch geospatial data system to store latitude and longitude
  • pingquery_couchdb plugin for monitoring

IrisCouch's pricing system does not charge for hosting until an application receives heavy usage or stores gigabytes of data.

Avoid lock-in: We recommend that cities use CouchDB's built-in data syncing to keep a local back-up of their data. So why use IrisCouch at all? We recommend that you keep the public view of your database "in the cloud" so you can handle jumps in traffic, local power and network outages, and other unpredictable events.

Follow these directions to make your IrisCouch instance read-only by anonymous users.

About Poang Framework

Poang - A sample node.js/MongoDB app for Heroku/MongoLab

Poang (github) is a Node.js/MongoDB app built using the Express framework. Poang uses Everyauth for local authentication, Mongoose-Auth to connect Everyauth to MongoDB (and Mongoose as the ODM) for account persistence, and Connect-Mongo as a session store. Most of the code in app.js was generated by Express and all of the code in auth.js after the Comment schema is straight from the Mongoose-Auth docs.

For testing, Poang uses the Mocha test framework, should for assertions, Sinon.JS for mocks & stubs, and Zombie.js for lightweight integration testing.

For more details, please see Steve's blog post that walks through the various tests in Poang.

Local Installation

1) Do a git clone:

git clone git@github.com:mapmeld/housepointer.git

2) cd into the project directory and then install the necessary node modules:

npm install -d

3) start up MongoDB if it's not already running:

mongod --noprealloc --nojournal

4) start the node process:

node app.js

Deploy to Heroku

heroku create APP_NAME -s cedar
git push heroku master

After you have created a new app on Heroku and pushed the code via git, you will need to use the Heroku Toolbelt from your command line to add the free MongoLab starter addon:

heroku addons:add mongolab:starter --app [your_app_name]