diff --git a/requirements/dev.in b/requirements/dev.in
index 4b2e2b066c98c18b94a2cf8b6710ad5694d235bf..2b04b18eeacf169a01c76e152610a4f0509166d2 100644
--- a/requirements/dev.in
+++ b/requirements/dev.in
@@ -2,9 +2,17 @@
 -r tests.in
 pip-tools
 pre-commit
-dash
-dash-extensions
-flask
+dash>=1.19.0
+dash-extensions>=0.0.45
+dtale>=1.34.0
+Flask>=1.1.2
+Flask-SQLAlchemy>=2.4.4
+Flask-Cors>=3.0.10
+Flask-BS4==4.5.3.0
+SQLAlchemy>=1.3.23
+psycopg2>=2.8.6
+wget>=3.2
+celery[redis]>=5.0.5
 Flask-PluginKit
 Flask-ResponseBuilder
 plantuml-creator
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 5a031ff15666ec54954b92aa56fe770673fbb4a2..ae36aaa701b322726bc5ddee1ec0e5db891b64c2 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -6,86 +6,291 @@
 #
 alabaster==0.7.12
     # via sphinx
+amqp==5.0.5
+    # via kombu
 appdirs==1.4.4
     # via virtualenv
-attrs==20.3.0
-    # via pytest
+attrs==19.3.0
+    # via
+    #   plantuml-creator
+    #   pytest
 babel==2.9.0
-    # via sphinx
+    # via
+    #   flask-babel
+    #   sphinx
+billiard==3.6.3.0
+    # via celery
 blinker==1.4
     # via -r requirements/tests.in
+brotli==1.0.9
+    # via flask-compress
+celery[redis]==5.0.5
+    # via -r requirements/dev.in
 certifi==2020.12.5
     # via requests
 cfgv==3.2.0
     # via pre-commit
 chardet==4.0.0
     # via requests
+click-didyoumean==0.0.3
+    # via celery
+click-plugins==1.1.1
+    # via celery
+click-repl==0.1.6
+    # via celery
 click==7.1.2
-    # via pip-tools
+    # via
+    #   celery
+    #   click-didyoumean
+    #   click-plugins
+    #   click-repl
+    #   flask
+    #   pip-tools
+dash-bootstrap-components==0.11.3
+    # via dtale
+dash-colorscales==0.0.4
+    # via dtale
+dash-core-components==1.15.0
+    # via dash
+dash-daq==0.5.0
+    # via dtale
+dash-extensions==0.0.45
+    # via -r requirements/dev.in
+dash-html-components==1.1.2
+    # via dash
+dash-table==4.11.2
+    # via dash
+dash==1.19.0
+    # via
+    #   -r requirements/dev.in
+    #   dash-bootstrap-components
+    #   dash-daq
+    #   dash-extensions
+    #   dtale
+dash_renderer==1.9.0
+    # via dash
+decorator==4.4.2
+    # via networkx
 distlib==0.3.1
     # via virtualenv
 docutils==0.16
     # via sphinx
+dominate==2.6.0
+    # via flask-bs4
+dtale==1.34.0
+    # via -r requirements/dev.in
+et-xmlfile==1.0.1
+    # via openpyxl
 filelock==3.0.12
+    # via virtualenv
+flask-babel==2.0.0
+    # via -r requirements/dev.in
+flask-bs4==4.5.3.0
+    # via -r requirements/dev.in
+flask-caching==1.9.0
+    # via dash-extensions
+flask-compress==1.8.0
     # via
-    #   tox
-    #   virtualenv
+    #   dash
+    #   dtale
+flask-cors==3.0.10
+    # via -r requirements/dev.in
+flask-ngrok==0.0.25
+    # via dtale
+flask-pluginkit==3.6.0
+    # via -r requirements/dev.in
+flask-responsebuilder==2.0.13
+    # via -r requirements/dev.in
+flask-sqlalchemy==2.4.4
+    # via -r requirements/dev.in
+flask-wtf==0.14.3
+    # via flask-bs4
+flask==1.1.2
+    # via
+    #   -r requirements/dev.in
+    #   dash
+    #   dtale
+    #   flask-babel
+    #   flask-bs4
+    #   flask-caching
+    #   flask-compress
+    #   flask-cors
+    #   flask-ngrok
+    #   flask-pluginkit
+    #   flask-responsebuilder
+    #   flask-sqlalchemy
+    #   flask-wtf
+    #   pytest-flask
+future==0.18.2
+    # via
+    #   dash
+    #   dtale
 greenlet==1.0.0
     # via -r requirements/tests.in
+httplib2==0.19.0
+    # via plantuml
 identify==1.5.13
     # via pre-commit
 idna==2.10
     # via requests
 imagesize==1.2.0
     # via sphinx
-iniconfig==1.1.1
-    # via pytest
+importlib-metadata==1.3.0
+    # via plantuml-creator
+itsdangerous==1.1.0
+    # via
+    #   dtale
+    #   flask
+    #   flask-wtf
+jdcal==1.4.1
+    # via openpyxl
 jinja2==2.11.3
-    # via sphinx
+    # via
+    #   flask
+    #   flask-babel
+    #   sphinx
+joblib==1.0.1
+    # via scikit-learn
+json2html==1.3.0
+    # via flask-responsebuilder
+kaleido==0.1.0
+    # via dtale
+kombu==5.0.2
+    # via celery
+lz4==3.1.3
+    # via dtale
+markdown==3.3.3
+    # via plantuml-markdown
 markupsafe==1.1.1
-    # via jinja2
+    # via
+    #   jinja2
+    #   wtforms
+more-itertools==8.0.2
+    # via
+    #   dash-extensions
+    #   plantuml-creator
+    #   pytest
+    #   zipp
+networkx==2.5
+    # via dtale
 nodeenv==1.5.0
     # via pre-commit
-packaging==20.9
+numpy==1.20.1
+    # via
+    #   pandas
+    #   patsy
+    #   scikit-learn
+    #   scipy
+    #   statsmodels
+    #   xarray
+openpyxl==3.0.6
+    # via dtale
+packaging==20.0
     # via
     #   -r requirements/docs.in
     #   pallets-sphinx-themes
+    #   plantuml-creator
     #   pytest
     #   sphinx
-    #   tox
 pallets-sphinx-themes==1.2.3
     # via -r requirements/docs.in
+pandas==1.2.2
+    # via
+    #   dtale
+    #   ppscore
+    #   statsmodels
+    #   xarray
+patsy==0.5.1
+    # via statsmodels
 pip-tools==5.5.0
     # via -r requirements/dev.in
+plantuml-creator==1.0.7
+    # via -r requirements/dev.in
+plantuml-markdown==3.4.2
+    # via -r requirements/dev.in
+plantuml==0.3.0
+    # via plantuml-markdown
+plotly==4.14.3
+    # via
+    #   dash
+    #   dtale
 pluggy==0.13.1
     # via
+    #   plantuml-creator
     #   pytest
-    #   tox
+ppscore==1.2.0
+    # via dtale
 pre-commit==2.10.1
     # via -r requirements/dev.in
-py==1.10.0
+prompt-toolkit==3.0.16
+    # via click-repl
+psycopg2==2.8.6
+    # via -r requirements/dev.in
+py==1.8.1
     # via
+    #   plantuml-creator
     #   pytest
-    #   tox
 pygments==2.8.0
     # via
     #   sphinx
     #   sphinx-tabs
-pyparsing==2.4.7
-    # via packaging
-pytest==6.2.2
+pyparsing==2.4.6
+    # via
+    #   httplib2
+    #   packaging
+    #   plantuml-creator
+pytest-flask==1.1.0
     # via -r requirements/tests.in
+pytest==5.3.2
+    # via
+    #   -r requirements/tests.in
+    #   plantuml-creator
+    #   pytest-flask
+python-dateutil==2.8.1
+    # via pandas
 python-dotenv==0.15.0
     # via -r requirements/tests.in
 pytz==2021.1
-    # via babel
+    # via
+    #   babel
+    #   celery
+    #   flask-babel
+    #   pandas
 pyyaml==5.4.1
-    # via pre-commit
+    # via
+    #   flask-responsebuilder
+    #   pre-commit
+redis==3.5.3
+    # via celery
 requests==2.25.1
-    # via sphinx
-six==1.15.0
     # via
-    #   tox
+    #   dtale
+    #   flask-ngrok
+    #   sphinx
+retrying==1.3.3
+    # via plotly
+scikit-learn==0.24.1
+    # via
+    #   dtale
+    #   ppscore
+scipy==1.6.0
+    # via
+    #   dtale
+    #   scikit-learn
+    #   statsmodels
+semver==2.13.0
+    # via flask-pluginkit
+six==1.13.0
+    # via
+    #   click-repl
+    #   dtale
+    #   flask-cors
+    #   packaging
+    #   patsy
+    #   plantuml-creator
+    #   plotly
+    #   python-dateutil
+    #   retrying
     #   virtualenv
 snowballstemmer==2.1.0
     # via sphinx
@@ -114,19 +319,61 @@ sphinxcontrib-qthelp==1.0.3
     # via sphinx
 sphinxcontrib-serializinghtml==1.1.4
     # via sphinx
-toml==0.10.2
+sqlalchemy==1.3.23
     # via
-    #   pre-commit
-    #   pytest
-    #   tox
-tox==3.21.4
-    # via -r requirements/dev.in
+    #   -r requirements/dev.in
+    #   flask-sqlalchemy
+squarify==0.4.3
+    # via dtale
+statsmodels==0.12.2
+    # via dtale
+str2bool==1.1
+    # via plantuml-creator
+stringcase==1.2.0
+    # via plantuml-creator
+strsimpy==0.2.0
+    # via dtale
+test-flask==0.2.0
+    # via -r requirements/tests.in
+threadpoolctl==2.1.0
+    # via scikit-learn
+toml==0.10.2
+    # via pre-commit
 urllib3==1.26.3
     # via requests
+vine==5.0.0
+    # via
+    #   amqp
+    #   celery
 virtualenv==20.4.2
+    # via pre-commit
+visitor==0.1.3
+    # via flask-bs4
+wcwidth==0.1.8
     # via
-    #   pre-commit
-    #   tox
+    #   plantuml-creator
+    #   prompt-toolkit
+    #   pytest
+werkzeug==1.0.1
+    # via
+    #   flask
+    #   pytest-flask
+wget==3.2
+    # via -r requirements/dev.in
+wtforms==2.3.3
+    # via
+    #   flask-bs4
+    #   flask-wtf
+xarray==0.16.2
+    # via dtale
+xlrd==2.0.1
+    # via dtale
+xmltodict==0.12.0
+    # via flask-responsebuilder
+zipp==0.6.0
+    # via
+    #   importlib-metadata
+    #   plantuml-creator
 
 # The following packages are considered to be unsafe in a requirements file:
 # pip
diff --git a/requirements/tests.in b/requirements/tests.in
index 17b90b92f58eefe8014cf852ea22f3feed69c24f..a33e0de22e4dc296273f6a457b022240b0d88d3d 100644
--- a/requirements/tests.in
+++ b/requirements/tests.in
@@ -1,4 +1,4 @@
-pytest
+pytest==5.3.2
 blinker
 greenlet
 python-dotenv
diff --git a/requirements/tests.txt b/requirements/tests.txt
index 50c58b65b04fbb54a53a2799b003f4215bb47ffc..18061120528d487a05b32a62ccccae617cb936b4 100644
--- a/requirements/tests.txt
+++ b/requirements/tests.txt
@@ -8,9 +8,19 @@ attrs==20.3.0
     # via pytest
 blinker==1.4
     # via -r requirements/tests.in
+click==7.1.2
+    # via flask
+flask==1.1.2
+    # via pytest-flask
 greenlet==1.0.0
     # via -r requirements/tests.in
-iniconfig==1.1.1
+itsdangerous==1.1.0
+    # via flask
+jinja2==2.11.3
+    # via flask
+markupsafe==1.1.1
+    # via jinja2
+more-itertools==8.7.0
     # via pytest
 packaging==20.9
     # via pytest
@@ -20,9 +30,19 @@ py==1.10.0
     # via pytest
 pyparsing==2.4.7
     # via packaging
-pytest==6.2.2
+pytest-flask==1.1.0
     # via -r requirements/tests.in
+pytest==5.3.2
+    # via
+    #   -r requirements/tests.in
+    #   pytest-flask
 python-dotenv==0.15.0
     # via -r requirements/tests.in
-toml==0.10.2
+test-flask==0.2.0
+    # via -r requirements/tests.in
+wcwidth==0.2.5
     # via pytest
+werkzeug==1.0.1
+    # via
+    #   flask
+    #   pytest-flask