Skip to content

feverbase/feverbase

Repository files navigation

Feverbase

An open platform to accelerate any and all research related to clinical trials (including but not limited to the efficacy of repurposed drugs) for fighting COVID-19.

Dependencies

Feverbase depends on:

However, Docker takes care of setting up all required services and connecting them together!

You may also optionally create a .env file with the following keys:

  SLACK_WEBHOOK_URL=  # for feedback form
  GOOGLE_MAPS_KEY=    # for fetching locations
  MEILI_KEY=          # for a protected MeiliSearch instance

Running the App

Feverbase has two main components: serve.py which serves the Flask app which contains the actual interface to search and filter clinical trials. This can be run with python serve.py with the optional argument of --port <port> to manually specify a port.

The second component is the web scraper. By default this will scrape trials from every clinicial trial registry we have added support for. This behavior can be changed in fetch/__init__.py, specifically with the DRIPPING_FAUCETS array. The scraper can be run with python fetch.py. This may take a while to run if you're scraping every search query from every registry. We run this as a cron job every hour.

With Docker installed, you can run everything in one line:

docker-compose up

If you want to fetch results, run the above command in one terminal session. From another terminal session in the same folder, run the following:

docker-compose exec app python fetch.py

Running tests

With docker running in one terminal session:

docker-compose up

Execute the following from another terminal session in the same folder:

docker-compose exec app pytest

This will execute the tests in the container which is already running!