Oncodash is decision support system that help tumour boards to come to the best decision for their patients. Oncodash is currently developed within the DECIDER project and targets high-grade serous ovarian cancer. For more information, see the public website.
The following instructions are for developers willing to contribute (see also how to contibute and how to install).
To build and run Oncodash, you have two options:
- use docker-compose and run from a container,
- run from your own local configuration.
build and run the backend and frontend webservers and an nginx proxy server that passes requests to these servers.
- MacOS Docker Desktop
- Windows Docker Desktop
- Linux Docker CE
- docker-compose (not needed for MacOS/Windows)
- Running compose without sudo privileges
- Build the back-end, front-end and nginx docker-images:
docker-compose build
- Create a development SQLlite database inside the container and add tables to it:
docker-compose run --rm backend sh -c "python manage.py makemigrations"
docker-compose run --rm backend sh -c "python manage.py migrate"
- Populate a test database with network data (Explainer-app)
docker-compose run --rm backend sh -c "python manage.py populate -p /opt/app/path/to/indf.csv"
Note: /opt/app/
points by default to wherever is oncodash/backend/
on your
system.
- Run the images in containers:
docker-compose up
- Open up the browser at localhost.
- Browsable API endpoints at localhost/api/explainer/networks/.
docker-compose run --rm backend sh -c "python manage.py test && flake8"
docker-compose run --rm nodeserver sh -c "npm test"
- nodejs
- typescript
npm install -g typescript
- Python >= 3.7
- Clone the repository & move to the
backend
directory:
git clone https://github.com/oncodash/oncodash.git
cd oncodash/backend/
- Create a virtual environment. You have two options: Python's virtual environments or conda:
python3 -m venv backendEnv
source backendEnv/bin/activate
pip install -U pip
OR
conda create --name backendEnv python=3.7
conda activate backendEnv
- Install python dependencies:
pip install -r requirements.txt
- Create a development SQLlite database and add tables to it:
python manage.py makemigrations
python manage.py migrate
- Populate a test database with network data (Explainer-app)
python manage.py populate -p /path/to/indication_table.csv
- Move to the
oncodash-app
directory:
cd oncodash/oncodash-app/
- Install node dependencies:
npm install
- Run the back-end development server:
python manage.py runserver 0.0.0.0:8888
- Run the front-end development server:
npm start
- Open up the browser at localhost:8000/.
- Browsable API endpoints at localhost:8888/api/explainer/networks/.
Backend:
python manage.py test && flake8
Frontend:
npm test