A Dash app to visualize data from the openFDA elasticsearch API.
Data from openFDA.
This project requires to get some API keys from external services.
PLOTLY_API_KEY: get them at chart-studio.plotly.com.
OPEN_FDA_API_KEY: get it at openFDA
If you don't already have it, install python
pyenv install 3.8.5
Create a virtual environment and activate it.
pyenv virtualenv 3.8.5 dash_fda pyenv activate dash_fda
Remember to activate the virtual environment every time you work on this project.
Install all the dependencies from the
This project uses the task runner Poe the Poet to run poetry scripts.
Run the app locally using a development server (Dash uses a Flask development server):
poetry run poe dev # or, in alternative python app.py
Run the app locally using a production server (gunicorn):
poetry run poe prod
Run all tests with pytest:
poetry run poe test
Format all code with black:
poetry run poe format
Build the Docker image and give it a name and a version tag:
docker build -t dash-fda:v0.1.0 .
Run the Docker container:
docker run --env-file ./dash_fda/.env -p 5001:5000 dash-fda:v0.1.0
Deploy the dockerized app on CapRover (running on my DigitalOcean Droplet):
If you are on Ubuntu you might get
ModuleNotFoundError: No module named '_bz2' and/or
UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError. These errors are caused by pandas when it tries to import these compression libraries. If you get these errors you need to install the libbz2-dev package and the liblzma-dev package, then re-compile your python interpreter.
Here is how you can do it:
# deactivate and remove the virtual environment pyenv deactivate pyenv virtualenv-delete dash_fda # remove the "broken" python interpreter pyenv uninstall 3.8.5 # install the compression libreries sudo apt-get install libbz2-dev liblzma-dev # download and compile the python interpreter pyenv install 3.8.5 # re-create the virtual environment and activate it pyenv virtualenv 3.8.5 dash_fda pyenv activate dash_fda # re-install all the dependencies poetry install
This app is just an independent project, and it has not been evaluated by the Food and Drug Administration. This app is not intended to diagnose, treat, cure, or prevent any disease. Do not rely on this app to make any decision regarding medical care.