/CommunityDashboard

Dashboard to monitor the health of the OHDSI community. A Flask app of Dash Dashboards for tracking public API's

Primary LanguageTypeScriptApache License 2.0Apache-2.0

CommunityDashboard

The Community Dashboard is a full stack app for tracking and connecting the activities of the OHDSI community. The goal of the dashboard is help our community identify how members can see the OHDSI eco-system as an interconnected system to make a larger impact.

Repo Layout

This repo contains multiple "projects" as yarn workspaces:

  • The navigation project implements the client side Community Dashboard components as an Angular component library.
  • The plots Python package implements core back end logic.
    • Serving of plotly generated visualizations.
    • Service layer for the following API miners.
      • Youtube Data API to search and track statistics on OHDSI videos
      • PubMed Entrez API to identify and track publications
      • Serpapi Wrapper for Google Scholar to pull citation statistics
      • GitHub for parsing network study readmes.
  • The development devcontainer template provides a consistent, prebuilt environment for developers described below.
  • The rest project provides a standard interface for all database operations. See: Production Considerations

Development

This repo uses the Development Container spec. to define the dev environment. This has native support in VSCode, GitHub Codespace, and other tools, or you can use the spec as a reference to set up your local environment of choice.

Open in GitHub Codespaces

Note for new developers: The commands below may publish their results via a web app. Your IDE may launch the browser window before the app has loaded. Simply refresh your browser window when the app has loaded. If you are having trouble, the process is described here for GitHub Codespaces.

yarn is used to manage the rest of the development workflow:

yarn serve
yarn workspace @community-dashboard/plots start

Production considerations

  • Database: For development purposes all projects use in-memory testing databases. For production deployment you will need to implement this rest interface via dependency injection.
  • Scheduling: This open source project does not depend on any particular scheduler. In production you may wish to execute back end functions on some schedule or in response to some events which will require integration with your scheduler of choice.

Getting Involved

We use the GitHub issue tracker for all bugs/issues/enhancements

License

Licensed under Apache License 2.ty