# SIKWEB 2.0

## Installation

### Create a virtual environment for python

`virtualenv -p python3 virtualenv.sikweb`

### Clone this repository and enter it

Set up your SSH key authentication in GitLab Profile Settings. Then clone the repository:

```
git clone git@sika.sahkoinsinoorikilta.fi:vtmk/web2.0.git
cd web2.0
```

Change to the development branch:

```
git checkout develop
```

### Activate virtualenv (assuming we are at the root of this repository and virtualenv is one level above)
`. ../virtualenv.sikweb/bin/activate`

### Install Mariadb and create necessary tables

#### Run the following commands to install dependencies and to run the mariadb installation script

```
sudo apt-get install mariadb-server libmysqlclient-dev python3-dev libffi-dev python3-cffi libssl-dev
sudo mysql_secure_installation
# Setup root password and say yes to all other questions
sudo mysql -u root -p
# Log in with your new password
```

#### Create a user called 'sik' with password 'password123' and create the db

**PLEASE CHANGE THE PASSWORD TO SOMETHING MORE SECURE!**  

Paste the following into the mysql client prompt:

```SQL
CREATE USER 'sik'@'localhost' IDENTIFIED BY 'password123';
CREATE DATABASE sik DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `sik\_%` . * TO 'sik'@'%' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON sik . * TO 'sik'@'localhost' IDENTIFIED BY 'password123';
```

### Install required python modules

```
pip install --upgrade pip
pip install -r requirements.txt
```

## Configure Django settings

`cp sikweb/settings-sample.py sikweb/settings.py`


Change the following fields in sikweb/settings.py if you are not using the default values:

```
NAME (default: sik)
USER (default: sik)
PASSWORD (default: password123)
```
under DATABASES -> 'default' around line 80.

## Run migrations
`./manage.py migrate`

You should be now have succesfully set up a development version of SikWeb 2.0

## Running

### Activate virtualenv 

Assuming we are on root of this repo and virtualenv is one step above:

`. ../virtualenv.sikweb/bin/activate`

### Use runserver command

`./manage.py runserver`  

or  

`./manage.py runserver 0.0.0.0:8000`   

if you need to connect from anywhere else than localhost.

### Run unit tests

`./manage.py test -v 2`
