webapi-eca/README.md
2014-02-04 16:40:32 +01:00

100 lines
2.3 KiB
Markdown

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