Rhizi / rhizi

Connective intelligence
GNU Affero General Public License v3.0
13 stars 3 forks source link

Rhizi

Circle CI

A collaborative graph editor for organizing, communicating, and analyzing data in graph form.

Screencast tutorial

It is licensed under the GNU AGPL v3, see LICENSE for more details.

Patches or pull requests are welcome but we require a contributor license agreement, see TBU

Dependencies

Database:

Server:

Client

For rebuilding client css from scss saource files you will need:

Build dependencies:

Installation

Apt based systems: Debian / Ubuntu

# apt-get install \ ant \ python-pip \ ruby-sass

Generic

use pip to install all requirements

$ pip install -r requirements.txt

Use npm for javascript (client) requirements, currently for development (testing) only, all other external dependencies are part of the repository:

$ npm install

Running instructions

Running Rhizi Locally

To run Rhizi locally:

Or perform the following by hand:

Command line use documentation can be viewed with: :$ python rz_server.py -h

Configuration

Rhizi configuration is currently documented in code, see src/server/rz_server.py#Config

User addition

Through the sign up page you can add users.

Changing users roles

This is possible through the src/local/rz_cli_tool as follows: ./src/local/rz_cli_tool.py --config-dir res/etc --user-db-path res/user_db.db --email alon@rhizi.local --role-add admin

Development

Build currently uses Apache Ant(http://ant.apache.org/) and make

To update the css files you need sass. To rebuild the css files issue make from the top level directory:

$ make

For dev mode(debbuging, manual file load) use ?debug=1 at end of URL: e.g. file://rhizifolder/html.index?debug=1

Client testing:

$ npm install $ karma start

Coding Conventions - Ant Scripts

Coding Conventions - CSS / SCSS

Neo4J DB management

Running server tests

Test code makes use of Python's unittest - run by invoking them with python, or by creating a launch configuration in your IDE of choice.

Note: server test-cases do not yet support pre-run DB state validation and are likely to leave DB side-effects.

Random data generation

Taks a look at src/server-tests/test_util__rzdoc#DBO_RDG__skill_graph as a starting point for random data generation.

Installing on windows (WIP)

mingw doesn't have python support, so using mingw (I want a unix native python)

Deployment

Deployment, that is installation on a different server that has none of the development prerequisites installed, takes two forms currently:

These modes impost a slightly different resource layout, and require the following values to be correcly set/injected:

Deployment Steps

getting the current config file from the server:

$ targetDomain="cri.rhizi.net" $ mkdir res/production-patch-set/${targetDomain} $ scp rz-1:/etc/rhizi/rhizi-server.conf res/production-patch-set/${targetDomain}/rhizi-server.production.conf

Tools

rz-doc

This is the only way to merge a number of documents right now. Here is how:

It is installed by default to /srv/www//tools/rz-doc, lets call that rz-doc for short.

rz-doc --list-names

  1. rz-doc --list-names > merge.file
  2. rz-doc --merge-file merge.file --merge-target "All Documents"

creates a new doc called "All Documents" with the contents of all rzdocs in merge.file.

API(WIP)

[url]/api/rzdoc/[doc-title]/delete