fix database name in view
[angular-mojolicious.git] / README
diff --git a/README b/README
index e7a5fb1..c0fd38f 100644 (file)
--- a/README
+++ b/README
@@ -13,32 +13,105 @@ This is my attempt to implement REST API described at:
 
 http://docs.getangular.com/REST.Basic
 
-using CouchDB as storage for experimenting with local datasets using
-<angular/>
+using CouchDB HTTP view API
+
+http://wiki.apache.org/couchdb/HTTP_view_API
+
+to provide storage for experimenting with local datasets using angular $resource API.
+You can also query CouchDB views $xhr("JSON", ...) in angular through angular-server.pl
+
+
+At it's current stage it provides support for angular $resource get, query and $save
+
+http://angularjs.org/Service:$resource
+
+
+Data can also be serve static json files stored in:
+
+       public/json/:database/:entity/:key
+
+which can be used to provide data using external stand-alone scripts.
+
+
+
+Replication of data between instances using angular REST API can be done with:
+
+       # create local CouchDB database
+       $ curl -X PUT http://localhost:5984/demo
+       {"ok":true}
+
+       $ ./angular-replicate.pl \
+               http://dpavlin.getangular.com/data/conference \
+               http://localhost:3000/data/demo
+
+Replication is currently good only for initial import of data since it doesn't
+support incremental replication and dies if data is allready present.
 
 
 Installation:
 
-       git submodule init
-       git submodule update
+       git submodule init
+       git submodule update
 
 Optionally build angular to get single file download
 
-       cd public/angular
-       rake compile
-       cd -
+       cd public/angular
+       rake compile
+       cd -
 
 Start it with:
 
-       ./angular-server.pl daemon --reload  
+       ./angular-server.pl daemon --reload  
 
 
 Angular examples available:
 
 - template/Cookbook - examples from wiki working against github version of angular
-- template/Work - conference submission example using mojolicious REST API server
+- template/conferece - conference submission example using mojolicious REST API server
+- public/app/conference - new application layout with latest example confernce submission
+
+       $ curl -X PUT http://localhost:5984/conference/_design/symposium \
+               -d @public/app/conference/_design/symposium
+
+
+
+CouchDB examples:
+
+       couchdb-changes.pl - simple _changes feed watcher using Mojo::UserAgent documented at
+
+               http://wiki.apache.org/couchdb/HTTP_database_API#Changes
+
+
+       couchdb-trigger.pl - FSM document with hook for user-defiend triggers
+
+               trigger/shell.pm - execute shell commands
+               trigger/email.pm - skeleton for sending e-email
+               trigger/KinoSearch.pm - full-text search
+
+       $ curl -X PUT http://localhost:5984/demo
+       {"ok":true}
+
+       $ ./couchdb-trigger.pl http://localhost:5984/demo trigger/shell.pm
+
+       $ curl -X POST http://localhost:5984/demo/ -H 'Content-type:application/json' -d \
+               '{"trigger":{"command":"notify-send \"CouchDB trigger notify example\""}}'
+
+
+       couchdb-external-kinosearch.pl - external searcher for KinoSearch indexes
+               (configuration for CouchDB is included at end of file)
+
+       $ ./couchdb-trigger.pl http://localhost:5984/demo trigger/KinoSearch.pm
+
+       $ curl -X PUT http://localhost:5984/demo/text -d '{"text":"foobar bla bla"}'
+       {"ok":true,"id":"text","rev":"1-cf9bb608f93af7f4e5e40656a6e50096"}
+
+       $ curl 'http://localhost:5984/demo/_kinosearch?include_docs=true;q=foobar'
+
 
 
-Planned features:
+Roadmap:
 
-- run queries against data using REST API (currently only simple get is supported)
++ implement angular-server.pl which implements REST API supported by $resource in angular
++ persistency to local CouchDB, and use views to query data
++ implement CouchDB _changes and FSM inside document as base for queue or triggers
+- tests