Development Guide

Optional fast start with docker

Docker-compose installation

In case of Ubuntu 14.04:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates apparmor
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
echo 'deb https://apt.dockerproject.org/repo ubuntu-trusty main' | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install -y docker-engine
sudo bash -c "curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
sudo chmod +x /usr/local/bin/docker-compose

More detailed info available at Docker page.

Available make commands (requires sudo)

docker-up -> run local development server at localhost:8000 docker-tests -> run all tests in docker environment docker-bash -> attach to docker environment command line

Starting

System dependencies

In case of Ubuntu:

sudo apt-get install python-dev libpq-dev libfreetype6-dev libblas-dev liblapack-dev gfortran postgresql postgresql-contrib libpng-dev

In case of Fedora:

sudo yum install python-devel freetype-devel libblas-devel lapack-devel gcc-fortran postgresql-server postgresql-contrib postgresql-devel postgresql-libs

PIP and Virtual Environment

You need to have PIP installed. Now, we try to install virtualenvwrapper:

sudo pip install virtualenvwrapper

and add the following to your ~/.bashrc file:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Using whereis python find your installation of Python 3.x. We will reference it as PYTHON_PATH. Now, crate a virtual environment:

mkvirtualenv -p $PYTHON_PATH proso-apps

If you want to use the environment in the future, just type:

workon proso-apps

PostgreSQL

Create a development user and database on your localhost:

sudo -i -u postgres
psql

You are in PostgreSQL shell. Execute:

CREATE DATABASE proso_apps;
CREATE USER proso_apps WITH PASSWORD 'proso_apps';
GRANT ALL PRIVILEGES ON DATABASE "proso_apps" to proso_apps;

GIT repository

Firstly, you need to clone our GIT repository:

git clone git@github.com:adaptive-learning/proso-apps.git

or in case, you have no access:

git clone https://github.com/adaptive-learning/proso-apps.git

Since now, we will work inside the cloned repository:

cd proso-apps

After you clone the repository, install proso-apps:

make install

After successful installation, migrate database:

./manage.py migrate

Finally, we can run the test server:

./manage.py runserver

Sample database

You can download a dump from PostgreSQL used by www.slepemapy.cz from data-private.slepemapy.cz/dump (the file is referenced as DUMP_FILE) and load it to your database:

export PGPASSWORD=proso_apps
psql -Uproso_apps --set ON_ERROR_STOP=on proso_apps < $DUMP_FILE

If you want to create a new dump file, just run:

export PGPASSWORD=...
pg_dump -h db.fi.muni.cz -Uweb_slepemapy -nweb_slepemapy_prod --exclude-table=proso_models_audit "dbname=pgdb sslmode=require" > $DUMP_FILE