Frontend Server

The Frontend server of the INNUENDO Platform is the application responsable for serving the static files to the user, interact with the potsgreSQL database, and send requests to the Controller server to submit jobs.

Installation

Good practice to install application specific dependencies is to first create a virtual environment, which will aggregate all the required dependencies for a specific application.

Because of that, the first thing to do is to install python virtualenv.

sudo apt-get install python-virtualenv

The code for the Frontend server is located at github and can be obtained using git.

git clone https://github.com/bfrgoncalves/INNUENDO_REST_API.git

To create the virtual environment, run the application inside the INNUENDO_REST_API folder.

cd INNUENDO_REST_API

# Create virtual environment
virtualenv flask

requirements.txt

The requirements.txt file is the file with all the required python dependencies for the application. To install them, run the following command inside the INNUENDO_REST_API folder.

flask/bin/pip install -r requirements.txt

Due to some lack of some dependencies, you might also need to install the following python packages described into the following links:

https://stackoverflow.com/questions/11618898/pg-config-executable-not-found
https://stackoverflow.com/questions/28253681/you-need-to-install-postgresql-server-dev-x-y-for-building-a-server-side-extensi
https://stackoverflow.com/questions/23937933/could-not-run-curl-config-errno-2-no-such-file-or-directory-when-installing
https://stackoverflow.com/questions/21530577/fatal-error-python-h-no-such-file-or-directory
http://thefourtheye.in/2013/04/20/installing-python-ldap-in-ubuntu/

Bower Components

Bower is a package manager used to fetch all the client-side components required to create the user interface. It requires nodeJS for the installation so we need to install nodeJS before installing Bower and the client-side dependencies.

# Get nodeJS and install
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

# Install Bower
npm install -g bower

Install Bower components by running bower install inside the INNUENDO_REST_API/app folder.

Running the APP

To run the application, we first need to add the allegrograph client location to the path. To do it, install the Allegrograph client and run the following command.

export PYTHONPATH=/full/path/for/agraph-6.2.1-client-python/src/

Then, we need to run the worker.py` to allow classification and to send requests to PHYLOViZ Online and we need to run the run.py to launch the INNUENDO_REST_API application.

cd /path/to/INNUENDO_REST_API
./worker.py &
./run.py