According to WHO, as of December 2020, COVID-19 had infected over 82M people and killed more than 3M worldwide. The economic and social disruption caused by the pandemic is devastating: tens of millions of people are at risk of falling into extreme poverty, while the number of undernourished people are currently estimated at nearly 690 million. We need ways to help people assess the risks involved, and understand what is happening around them.
In this project, we built visual displays, which will help users gain the information needed to act, helping them take better, informed decisions. We have used the COVID-19 data provided by The Center for Systems Science and Engineering (CSSE) at JHU, as well as the COVID-19 Case Surveillance Public Use Data with Geography provided by CDC. Dashboards have become the iconic interface through which we understand the coronavirus pandemic, and hence we have also built a dashboard using Plotly and Dash. The dataset itself is open for public use and holds information since 2019.
Here are some features of this implementation:
- Transparent: Shows the data being used.
- Developed an ETL pipeline to load data directly from the true source.
- A full-fledged dashboard built using Dash and Plotly for visual analytics.
- Implements various stages such as cleaning, transforming and integration.
- Uses SEIR to predict the trend based on factors like lockdown, vaccinations etc.
- Comparative Analysis on different levels: Global (Continent), US, and Individual.
Global Level
- Latest death count across continents
- Compare monthly deaths of countries
- Death count across months for different continents
- Spread of coronavirus across the world over the year?
- Trend of deaths across months for different continents
- Recovery rate of Coronavirus across the world over the year?
- Progress of covid deaths across states
- What was the situation in local hospitals like?
- Situation across different periods of the outbreak
- Which provinces accounted for the greatest number of deaths?
- Comparison between states based on percentage of deaths in each state?
- Which race has the most deaths?
- Which gender has the most deaths?
- Which age group has the most deaths?
- Was underlying condition a major factor in the deaths occurred?
- Predict the trend based on factors like lockdown, vaccinations etc.
- Clone the repository to your local machine.
- Start your local instance of SQL.
- If needed, update your URLs at:
- Run backend/main.py to run the backedn ETL pipeline.
- Once done, run frontend/index.py to get a link for the WebApp.
Sample data can be found in this folder.
├── backend # Holds the backend code (ETL)
│ ├── data # Holds sample data for reference
│ ├── functions.py # Holds various functions used for cleaning & transfomring the data
│ └── main.py # Entry point for the backed process; Run this to execute the end-to-end ETL piepleine
├── Documents # Holds info about the project
├── frontend # Holds the frontend code (Dash and Plotly)
│ ├── apps # Holds static files associated with the dashboard
│ │ ├── __init__.py # Used to define as a package
│ │ ├── global_layout.py # Layout for global page
│ │ ├── home_layout.py # Layout for home page
│ │ ├── individual_layout.py # Layout for individual page
│ │ ├── SIERmodel_layout.py # Layout for SIER page
│ │ └── us_layout.py # Llayout for US page
│ ├── assets # Holds the image files used in the dashboard UI
│ ├── app.py # Application file which defines the app settings
│ └── index.py # Dash application which defines and triggers the endpoints; Entry point for the dashboard
├── README.md # Read this first
└── requirements.py # Required packages to run the frontend and backend
A full video demo of the UI can be viewed in the YouTube Video (redirects to YouTube).