/dashboard

CCDH Project GitHub Tasks Dashboard

Primary LanguageJavaScript

GitHub Issue Dashboard for the Center for Cancer Data Harmonization Project

This project creates a Gantt-chart style visualization to track progress made on the Center for Cancer Data Harmonization (CCDH) project's workstream GitHub tickets.

The live dashboard can be viewed at https://cancerdhc.github.io/dashboard.

image

Dashboard Data

The CCDH project consists of five workstreams; each workstream logs progress on goals in a GitHub repo.

Workstream Name GitHub Repo URL
Operations https://github.com/cancerDHC/operations/issues
Community Development https://github.com/cancerDHC/community-development/issues
Data Model Harmonization https://github.com/cancerDHC/data-model-harmonization/issues
CRDCH Model https://github.com/cancerDHC/ccdhmodel/issues
Ontology and Terminology Ecosystem https://github.com/cancerDHC/Terminology/issues
Tools and Data Quality https://github.com/cancerDHC/tools/issues

This app uses the GitHub API to get all issues from each workstream. GitHub tickets are placed on the chart timeline if:

  • the ticket has a Milestone that has a label indicating the Phase. The milestone label should contain the quarter the item is due (e.g., "Phase 2 - Quarter 4"; for end of Phase tickets, specify "Phase 2 - ENDS". If a quarter is not specified, the ticket will span the entire year. Note that Quarters refer to calendar quarters, not project quarters
    • Example: Phase 2 starts on 4/1/2020. A ticket due at the end of the first quarter of Phase 2 (three months after the start of Phase 2) would have a milestone labeled "Phase 2 - Quarter 2". On the timeline, it would begin on 4/1/2020 and end on 6/30/2020.
    • Example: A ticket with the milestone "Phase 2 - ENDS" would be placed on the timeline starting on 4/1/2021 and ending on 5/31/2021.
    • Example: A ticket with the milestone "Phase 2" would be placed on the timeline starting 4/1/2020 and end on 3/31/2021.
  • the ticket is in the Operations repo and has a title indicating it is a deliverable (e.g., the title starts with "Del.E") or is a "high level" task (e.g., the title starts with the phase/task number such as "2a3")

The percent completion for each ticket is calculated based on whether the ticket is open or closed (closed tickets are 100% complete) and, if present, the proportion of checkboxes that are checked vs. unchecked.

Features

  • Click on a task to show the task title, due date, percent completion status, and link to the GitHub ticket.
  • Show/hide each workstream's tickets by clicking on the workstream name at the top
  • The timeline can be expanded or compressed by clicking the "Month" or "Year" buttons at the bottom. The Month view shows a half dozen or so months in the window (depending on the size of the browser window); the Year view displays a half dozen or so years in the window.
  • Show/hide completed tasks by clicking the "Hide Completed Tasks" button.
  • The "Create TSV" button creates a comma delimited file of all GitHub tickets for all workstreams. (See "all_cccdh_issues.tsv" for example output.) Fields include a unique issue ID, the issue title, the start and end dates for the issue, percent completion status (0 to 100), a list of dependencies, and the issue's GitHub URL.

Task dependencies can be created by simply referencing another GitHub issue ID in the body of the text (e.g., typing "#15" in the body text assumes issue #15 is a dependency). Task dependencies are not displayed in the Gantt chart; a lack of an option to sort related tickets made the display too complex. However, a list of dependencies for each ticket is output when the data are exported using the "Create TSV" button.

Development

The backbone of the app is based on a customized version of a Gantt chart visualation tool originally developed by Frappe Gantt. The customized app can be found here: https://github.com/cancerDHC/frappe-gantt-custom-mod