Learn more about the open_plan project on our website.
This code is based from previous open-source work done building a user interface to the multi-vector-simulator tool in the Horizon2020 ELAND project. In open_plan project's scope a new design and more features are added, based on feedback collected in workshops held with stakeholders.
This repository contains the code for the user interface. The simulations are performed by multi-vector-simulator on a dedicated server (see the open-plan-tool/simulation-server repository). Once a simulation is over the results are sent back to the user interface were one can analyse them.
Prior to be able to develop locally, you might need to install postgres, simply google install postgres
followed by your os name (linux/mac/windows
)
app
folder with cd app
pip install -r requirements/local.txt
<>
)
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=<your db name>
SQL_USER=<your user name>
SQL_PASSWORD=<your password>
SQL_HOST=localhost
SQL_PORT=5432
DEBUG=(True|False)
MVS_HOST_API
and set the url of the simulation server you wish to use for your modelslocal_setup.sh
file (. local_setup.sh
on linux/mac bash local_setup.sh
on windows) you might have to make it executable first. Answer yes to the questionpython manage.py runserver
testUser
and ASas12,.
or create your own accountThe following commands should get everything up and running, using the web based version of the MVS API.
You need to be able to run docker-compose inside your terminal. If you can't you should install Docker desktop first.
git clone --single-branch --branch main https://github.com/open-plan-tool/gui.git open_plan_gui
cd open_plan_gui
)Edit the .envs/epa.postgres
and .envs/db.postgres
environment files
Change the value assigned to EPA_SECRET_KEY
with a randomly generated one
Make sure to replace dummy names with you preferred names
The value assigned to the variables POSTGRES_DB
, POSTGRES_USER
, POSTGRES_PASSWORD
in .envs/db.postgres
should match the ones of
the variables SQL_DATABASE
, SQL_USER
, SQL_PASSWORD
in .envs/epa.postgres
, respectively
Define an environment variable MVS_HOST_API
in .envs/epa.postgres
and set the url of the simulation server
you wish to use for your models (for example MVS_API_HOST="<url to your favorite simulation server>"
), you can deploy your own simulation server locally if you need
Assign the domain of your website (without http://
or https://
) to TRUSTED_HOST
, see https://docs.djangoproject.com/en/4.2/ref/settings/#csrf-trusted-origins for more information
Next you can either provide the following commands inside a terminal (with ubuntu you might have to prepend sudo
)
docker-compose --file=docker-compose-postgres.yml up -d --build
(you can replace postgres
by mysql
if you want to use mysql)docker-compose --file=docker-compose-postgres.yml exec -u root app_pg sh initial_setup.sh
(this will also load a default testUser account with sample scenario).Or you can run a python script with the following command
python deploy.py -db postgres
Finally
mysql
instead of postgres
): you should see the login page of the open_plan apptestUser
and ASas12,.
or create your own accountIf you use a proxy you will need to set USE_PROXY=True
and edit PROXY_ADDRESS=http://proxy_address:port
with your proxy settings in .envs/epa.postgres
.
NOTE: If you wish to use mysql instead of postgres, simply replace
postgres
bymysql
andapp_pg
byapp
in the above commands or filenames
NOTE: Grab a cup of coffee or tea for this...
NOTE: Grab a cup of coffee or tea for this...
You can access a preconfigured project using the following login credentials:
testUser:ASas12,.
To remove the application (including relevant images, volumes etc.), one can use the following commands in terminal:
docker-compose down --file=docker-compose-postgres.yml -v
you can add --rmi local
if you wish to also remove the images (this will take you a long time to rebuild the docker containers from scratch if you want to redeploy the app later then)
Or you can run a python script with the following command
python deploy.py -db postgres --down