Skip to content

shaharhalutz/rhizi

Repository files navigation

Rhizi

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

Requirements

  • Neo4J DB server
  • Python 2.7
  • Flask
  • Apache Ant
  • python-gevent
  • python-gevent-websocket
  • python-socketio

Requirements

Server

Neo4j

Install neo4j

python libs

Install all of:

Or install it all via pip: $ pip install gevent-socketio $ pip install flask $ pip install flask-mail

Client

All of the following are already bundled but noted here for reference:

feedback (it also bundles html2canvas)

jquery

d3

FileSaver

Use

Running Rhizi Locally

To run Rhizi locally:

  • Run neo4j locally on the default 7474 port
  • Add 127.0.0.1 rhizi.local to your hosts file
  • Launch run-local.sh:
    $ ./run-local.sh

Or perform the following by hand:

  • Invoke the local deployment Ant target:
    ant -f ./build.ant deploy-local
  • Run rhizi-server.py:
    $ cd deploy-local && python bin/rz_server.py --config-dir=etc

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

Configuration

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

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

CSS / SCSS Coding Conventions

  • assume use of modern browsers
  • indent files using 4 space characters
  • use a combination of CSS classes / IDs to draw common/unique styling, eg. class=form-Foo_input-field id=email-field
  • minimize use of CSS directives, remove directives which have no effect
  • avoid using browser-specific CSS directives when hand-writing CSS code

Neo4J DB management

  • to reset the DB: $ neo4j-shell -file res/neo4j/reset-db__clean.cypher
  • then to add a single test link: $ neo4j-shell -file res/neo4j/reset-db__single_link.cypher

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.

Installing on windows (WIP)

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

  • www.cygwin.com setup-x86_64.exe
  • use correct mirror (i.e. mirror.isoc.org.il)
  • defaults (c:\cygwin64)
  • python + gvim + vim + python-six + git + git-completion + tig + ruby + ruby-sass + make + gcc-core + autoconf + automake
  • start cygwin shell
  • cd to directory of install
  • git clone or extract tarball
  • cd rhizi
  • install neo4j from neo4j.com community eddition (neo4j-community_windows_2_1_6.exe)
  • install python prerequisites:
  • download get-pip.py from http://pip.pypa.io/en/latest/installing.html
  • $ python get-pip.py
  • install JDK: java SE development Kit 8 jdk-8u31-windows-x64.exe
  • install ant: winant.googlecode.com/files/winant-install-v7.exe
    • specify JDK install directory, i.e. C:\Program Files\Java\jdk1.8.0_31
  • Current ant bug: /usr/bin/rhizi is translated by ant to \usr\bin\rhizi and so it fails to find rhizi.
    • solution 1: replace /usr/bin/rhizi with rhizi, it will find rhizi in PATH
    • solution 2: ?
  • pip install flask
  • pip install gevent-websocket
    • pip install gevent never completes setup.py stage
      • solution 1: pip install cython git+git://github.com/surfly/gevent.git#egg=gevent
      • didn't complete.

Unused notes on mingw:

Install github for windows

Alternative: download Mingw

choose mingw-developer-toolkit

choose python

pip

git

ssh

About

Open source intelligence

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published