README: webapi-eca ================== > A Modular ECA Engine Server which acts as a middleware between WebAPI's. > This folder continues examples of an ECA engine and how certain use cases > could be implemented together with a rules language. > > The server is started through the [server.js](server.html) module by calling > `node rule_server.js`. Getting started --------------- **Prerequisites:** - node.js (find it [here](http://nodejs.org/)) - *(optional) Pygments if you want to generate the doc: `sudo apt-get install python-setuptools` and then `sudo easy_install Pygments`* - *(optional) [CoffeeScript](http://coffeescript.org/), if you want to develop and compile from coffee sources: `sudo npm -g install coffee-script`* Clone project: git clone https://github.com/dominicbosch/webapi-eca.git Download and install dependencies: cd webapi-eca npm install Get your [redis](http://redis.io/) instance up and running (and find the port for the config file below) or create your own `js/db_interface.js`. Edit the configuration file: vi config/config.json Apply your settings, for example: # TODO Remake { "http_port": 8125, "db_port": 6379, "crypto_key": "[your key]", "session_secret": "[your secret]" } Start the server: run_server.sh *Congratulations, your own WebAPI based ECA engine server is now up and running!* Optional command line tools: ---------------------------- Create the doc *(to be accessed via the webserver, e.g.: localhost:8125/doc/)*: > **WARNING:** > *manual adjustment of `./node_modules/groc/lib/styles/default/docPage.jade` required until groc is fixed:* > *`!!! 5` needs to be relaced with `doctype html`* run_doc.sh Run test suite: run_tests.sh _ TODO ---- * Redis queue * user handling (personal credentials) * security in terms of users (private key, login) * vm for modules, only give few libraries (no fs!) * rules generator (provide webpage that is used to create rules dependent on the existing modues) * geo location module, test on smartphone. _ TODO per module --------------- Testing | clean documentation | Clean error handling (Especially in loading of modules and their credentials): * DB Interface * Engine * Event Poller * HTTP Listener * Logging * Module Loader * Module Manager * Server