# Objective

This repository contains the materials that are used in the MoDELS tutorial of physical systems modelling for software engineers, in 2019.

# Running the Examples

1. Install [Docker](https://www.docker.com/).

1. Using docker's console, navigate to the root of this repository.

1. Build the docker image: `docker build -t jupyter .` This will download all dependencies you need to run the examples. You might need root access.

1. Note the host's ip address by running: `docker-machine ip`. Let us denote it by `MACHINE_IP`

1. Run the docker container: `docker run --name jupyterrun -p 8888:8888 -t jupyter`. This will start a container with name `jupyterrun` of the image tagged with `jupyter` and will forward any traffic going into port 8888 (in the host machine) to the same port in the virtual machine. Let `TOKEN` denote the token given.

1. Open your browser and navigate to `http://MACHINE_IP:8888/?token=TOKEN`

1. Explore the examples.

1. Any changes made in the notebooks affect only the files inside the container. To retrieve them, you need to detach from the `jupyterrun` container (typing `Ctrl+C` on docker's console), and use the following command on docker's console: 

1. ```bash
   docker cp jupyterrun:/opt/notebooks/tutorial mytutorial
   ```

   Which will copy all files under the `tutorial ` folder to the `mytutorial` folder in the repository.

1. To terminate and clean up, run the following commands

1. `docker stop jupyterrun`

1.  `docker rm jupyterrun`
