/EpiGraphHub

Software platform to Gather, transmform, harmonize and store epidemiological data for analytical purposes.

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

EPIGRAPHHUB

Health Data Hub & Data Analysis Ecosystem for Rapid Epidemic Outbreak Response
Explore the docs »

View Platform · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

fig1 EpigraphHub is an entirely open source Data integration platform focused on Epidemiological analyses.

Built With

EpigraphHub is built on top of the industry-leading opensource BI platform Apache Superset enriched by our own analytical libraries in Python and R.

Getting Started

To get a feel of EpigraphHub as a user, please check it out at Epigraphhub.org.

Prerequisites

Installation

Usage

Roadmap

See the open issues for a list of proposed features (and known issues).

Check our wiki for complementary informations

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. Contact us to get involved in the project and join our team on discord

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/ProposedFeature)
  3. Commit your Changes (git commit -m 'Add some ProposedFeature')
  4. Push to the Branch (git push origin feature/ProposedFeature)
  5. Open a Pull Request

Development

To create a new environment for EpiGraphHub, you can use it using conda or docker.

Also, ensure you have the .env file with the correct configuration. You can copy its structure from .env.tpl.

Conda

If you don't have conda installed, you can install it from here. Micromamba is a miniconda version with mamba, a powerful installer that is much faster than the conda installer.

Create your new environtment running the following command:

$ mamba env create -n conda/prod.yaml

To activate your new environment with all the packages installed, run:

$ conda activate epigraphhub

Docker

fig2

The project provides three docker-compose files, where one is the base definition (docker/compose-base.yaml) and the others are one for development (docker/compose-dev.yaml) and other for production (docker/compose-prod.yaml). Additionally, there is a Makefile file that provides make targets that helps to manage the docker services:

  • docker-build: builds docker images
  • docker-start: starts docker services
  • docker-stop: stops docker services
  • docker-restart: restarts docker services
  • docker-logs: shows docker
  • docker-dev-prepare-db: prepares the development version of the database
  • docker-run-cron: run the cron tasks
  • docker-bash: opens the docker service bash

This make targets runs by default docker for development. For production, it is necessary to pass the argument ENV=prod , for example:

make docker-build ENV=prod

A common workflow to prepare the system would be:

  1. Build the docker image:
$ make docker-build
  1. Start the services:
$ make docker-start

Before moving forward, check if the services are working properly:

$ ./docker/healthcheck.sh epigraphhub
  1. Now, prepare the development database (skip it for production):
$ make docker-prepare-db

Deployment

The deployment is executed by Ansible and triggered by GitHub Actions. When a new release is triggered, on GitHub Actions, there is a step there that uses Ansible to connect to the EpiGraphHub server and deploy the new version.

NOTE: Currently, the deployment process is under development.

The deployment is designed in the following structure:

deployment-graphic

All the services are being migrated to docker containers. It will allows us to isolate the services and keep the host server safer.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Project Link: https://github.com/thegraphnetwork/GRAPHnetEpiApp

Linked-in : https://www.linkedin.com/company/the-graph-network

Acknowledgements

TBD