← Back to team overview

caneypuggies team mailing list archive

Reformed Churches Locator's CouchApp architecture

 

Hi all,

Doug and I have been trying out writing Reformed Churches Locator as a
CouchApp instead of as a TurboGears application, because CouchDb
provides peer-to-peer database replication as one of its core features,
that's a feature Reformed Churches Locator needs, and by using CouchDB,
we won't have to code that relatively complex feature ourselves.

I wrote the summary of Reformed Churches Locator's new application
architecture below for a friend, and thought I'd post it to the
CaneyPUGgies discussion group for your information.  I also posted this
to the wiki at
http://caneypuggies.alwaysreformed.com/wiki/RCLCouchAppArchitecture.

Reformed Churches Locator's (RCL) architecture is set up like what
Mikeal describes here where a Node.js changes listener handles
server-side processing (currently RCL needs to go get the contents of a
remote URL (a church directory page) and process its HTML):

http://jsconf.eu/2010/speaker/nodejs_couchdb_crazy_delicious.html

So instead of this architecture (which is TurboGears' pattern):

JavaScript in browser/client < --- > server-side code < --- > database

RCL is like this:

JavaScript in browser/client < --- > database< --- > server-side code in
Node.js.

This half of the application:

JavaScript in browser/client < --- > database

is a CouchApp.  See the following for an explanation of a CouchApp; I'm
using the Python couchapp script (so all design doc code is broken out
into separate files rather than being in just one file) and Evently
<http://couchapp.couchone.com/docs/_design/docs/index.html#/topic/evently>.

http://vimeo.com/26147136#at=23
http://vimeo.com/18808177#
http://couchapp.org/page/videos

CouchApps and Evently use Mustache <http://mustache.github.com/>
templates.  We're using JQueryUI for widgets, and will probably throw in
a CSS framework in the end...I probably should have picked one at the
beginning, but didn't.  I suggested we use Blueprint, but maybe
Bootstrap is the better choice now.  What do you recommend in that
regard?  Bootstrap's responsive design by default is a great feature.

http://bootswatch.com/ makes me think Bootstrap might provide at least
as much themability as JQueryUI.

Tim