= 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 = Use = == requirements == === Server === ==== neo4j ==== Install [neo4j](http://neo4j.com/download/) ==== python libs ==== Install all of: # [gevent-socketio](https://pypi.python.org/pypi/gevent-socketio/) # [flask](http://flask.pocoo.org/) # [flask-mail](https://github.com/mattupstate/flask-mail) 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](https://github.com/ivoviz/feedback) (it also bundles [html2canvas](http://html2canvas.hertzen.com/)) # jquery # d3 # FileSaver == Running Rhizi Locally == To run Rhizi locally: For testing locally run neo4j locally on the default 7474 port and then launch run-local.sh:
./run-local.sh When on OsX, add 127.0.0.1 rhizi.local to your hosts file Or perform the following tasks by hand: # Update css files from scss sources using make # Invoke the local deployment Ant target:
$ cd ./rhizi && ant -f build.ant deploy-local # Assert Neo4J is running and listening on it's default port # 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 == Installation == === Setup user password file === The following works in conjunction with run-local.sh, for real deployment place the resulting htpasswd file in the location matching the config you use. # put a SECRET_KEY entry in the config file: echo SECRET_KEY=mysecret >> res/etc/rhizi-server.conf # create an initialization file with email/password separated by a comma: echo test@example.com,test > res/etc/htpasswd-init-file # create the htpasswd file: python src/server/rz_server.py --init-htpasswd-db --htpasswd-init-file res/etc/htpasswd-init-file = Development = To update the css files you need [sass](http://sass-lang.com/) The build tool is [make](https://www.gnu.org/software/make/) 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` == Neo4J DB management == * Use $ neo4j-shell -file reset-db__single_link.cypher to bring the DB to an empty state, excluding two nodes and a single link. == 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 (using alon's local right now, to clone from github you need to first create a public private key pair and add your public key to your account) # 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