A MINI PROJECT REPORT
On
“Novel Corona Virus 2019 Dataset”
Submitted in partial fulfillment of the requirements of the degree
BACHELOR OF ENGINEERING IN COMPUTER
ENGINEERING
By
Prathmesh M. Aghor (169/122CP3265A)
Aruna V. Arjun (178/122CP3141B)
Sairaj B. Kale (152/123CP3068A)
Under the guidance of
Prof. Vrushali Thakur
Department of Computer Engineering
MGM’s College of Engineering and Technology,
Kamothe, Navi Mumbai- 410209
University of Mumbai (AY 2025-26)
CERTIFICATE
This is to certify that the Mini Project entitled “Novel Corona Virus 2019 Dataset” is bonafi
de work of Prathmesh M. Aghor(104/121CP3265A), Aruna V. Arjun (178/122CP3141B),
Sairaj B. Kale(152/123CP3068A) submitted to the University of Mumbai in partial fulfillm
ent of the requirement for the award of the degree of “Bachelor of Engineering” in “Compu
ter Engineering”.
(Prof. Vrushali Thakur)
Guide
( Dr. Rajesh Kadu ) ( Dr. Geeta Lathkar )
Head of Department Director
Mini Project Approval
This Mini Project entitled “Novel Corona Virus 2019 Dataset” by is approved for the
degree of Bachelor of Engineering in Computer Engineering.
Examiners
1…………………………………..
(Internal Examiner Name & Sign)
2…………………………………
(External Examiner Name & Sign)
Date:
Place:
Contents
Abstract i
Acknowledgments ii
1 Introduction 07
1.1 Introduction
1.2 Background
1.3 General Objective
1.4 Scope of Study
2 Literature Survey 08
2.1 Survey of Existing System
2.2 Mini Project Contribution
3 Proposed System 09
3.1 Introduction
3.2 System Design
3.3 Implementation
3.4 Results for Validation and Verification
3.5 Conclusion 21
4 References 22
• Annexure
ABSTRACT
The Novel Coronavirus (COVID-19), first identified in late 2019, rapidly
escalated into a global pandemic, creating an urgent need for reliable data-
driven insights. The Novel Coronavirus 2019 Dataset offers structured and
continuously updated records of confirmed cases, deaths, and recoveries across
different regions.
This project leverages the dataset to perform exploratory data analysis, time-
series forecasting, and predictive modeling using statistical methods and
machine learning algorithms. By examining temporal and spatial patterns, the
study seeks to forecast future case growth, assess mortality trends, and evaluate
the impact of interventions.
The results provide actionable insights for policymakers and health
organizations, while also demonstrating the effectiveness of data science and
machine learning in tackling large-scale global challenges.
ACKNOWLEDGMENTS
The satisfaction that accompanies that the successful completion of any task
would be incomplete without the mention of people whose ceaseless
co-operation made it possible, whose constant guidance and encouragement
crown all effort with success.
We are greatly indebted to our Director Geeta Lathkar for all her
encouragement, support and facilities provided in college that gave us enough
enthusiasm, confidence and strength in getting this project to its present stage.
Developing a project is not an easy task. Nothing of this project is possible with
out respected H.O.D. Dr Rajesh Kadu for encouraging us and giving this oppo
rtunity to widen our knowledge by this project. We give her special thanks from
the depth of our heart.
We are also thank you to our project guide Prof. Vrushali Thakur
for guiding us in our project.
We also thank our colleagues who have helped in successful completion of the
project.
1. INTRODUCTION
1.1 Background
Data plays a crucial role in managing pandemics, offering insights into infection
trends, mortality rates, and regional differences. The COVID-19 dataset,
compiled from verified global sources, allows for an in-depth exploration of the
virus’s spread over time and space. By analyzing this dataset, it is possible to
identify hotspots, evaluate the effectiveness of health interventions, and forecast
future outbreaks. Such analysis not only helps in managing the current crisis but
also contributes to preparedness for future pandemics by building predictive
models and strategies based on real-world evidence.
1.2 Purpose
The primary purpose of this study is to analyze the Novel Coronavirus 2019
Dataset in order to uncover meaningful insights into the spread, severity, and
control of the pandemic. Through systematic exploration and visualization of
the data, the project seeks to provide a clearer understanding of how COVID-19
evolved globally and how data-driven approaches can support decision-making
during health emergencies.
1.3.1 General Objective
The general objective of this project is to utilize the Novel Coronavirus 2019
Dataset to analyze global and regional trends in confirmed cases, recoveries,
and fatalities, and to develop insights that can aid in understanding the
dynamics of the COVID-19 pandemic.
1.4 Scope of the study
This study focuses on the analysis of the Novel Coronavirus 2019 Dataset,
which contains information on confirmed cases, recoveries, and deaths across
multiple countries and regions. The analysis includes data cleaning, statistical
summaries, visualizations, and in some cases, predictive modeling. The study is
limited to the data provided in the dataset and does not incorporate external
clinical or genetic data. The scope is global, but with the flexibility to highlight
specific regions or countries where notable trends emerge. The findings are
descriptive and predictive in nature, aimed at enhancing understanding of the
pandemic rather than prescribing medical or policy interventions.
2. LITERATURE SURVEY
2.1 Survey of Existing System/SRS
Since the emergence of COVID-19 in late 2019, numerous systems and
platforms have been developed to collect, analyze, and visualize pandemic-
related data. Organizations such as the World Health Organization (WHO),
Johns Hopkins University (JHU) Coronavirus Resource Center, and various
government health portals have provided real-time dashboards to monitor
confirmed cases, deaths, and recoveries worldwide. These systems offer
valuable data for research and policy-making but often focus on real-time
reporting rather than in-depth analytical exploration.
Existing systems primarily provide:
• Daily updates on confirmed cases, recoveries, and fatalities.
• Geographic dashboards highlighting hotspots and affected regions.
• Basic trend analysis using time-series charts and maps.
However, most of these systems have limitations:
• Lack of customized analytical tools for researchers to perform
predictive modeling.
• Limited integration of advanced statistical and machine learning
approaches for forecasting.
• Restricted scope to specific regions or time periods.
This project addresses these gaps by using the Novel Coronavirus 2019 Dataset
to conduct detailed exploratory analysis, visualization, and (optionally)
predictive modeling to uncover deeper insights into the spread and control of
the virus.
2.2 Mini Project Contribution
Prathmesh [Link] (169/122CP3265A) (Implementation, Report Making)
Aruna V. Arjun (178/122CP3141B) (Report Making, Testing)
Sairaj B. Kale (152/123CP3068A) (Report Making, Testing)
3. PROPOSED SYSTEM
3.1 Introduction
The proposed system is designed to analyze the Novel Coronavirus 2019
Dataset to uncover meaningful insights about the spread, trends, and patterns of
COVID-19. Unlike existing systems, which are primarily focused on real-time
dashboards, this project emphasizes data preprocessing, exploratory analysis,
visualization, and predictive modeling. The system provides a structured
approach for handling large datasets, generating statistical summaries,
producing visual reports, and (optionally) forecasting future cases using
machine learning techniques. This enables researchers, policymakers, and
students to better understand the pandemic and make informed, data-driven
decisions.
3.2 SYSTEM DESIGN
The system is designed in modular form to simplify execution and ensure
scalability. The design involves:
• Input Layer: Collection and preprocessing of the dataset.
• Processing Layer: Application of statistical analysis, visualization, and
modeling techniques.
• Output Layer: Display of results in the form of graphs, dashboards, and
reports.
Each module is independent yet integrated, making the system flexible for
updates or expansion.
3.3 Implementation
Code :-
#!/usr/bin/env Rscript
# run_analysis.R
# Usage:
# Rscript run_analysis.R <[Link]> [Project_Name]
#
# Example:
# Rscript run_analysis.R novel_corona_virus_2019_dataset.csv
"COVID19_Data_Analysis_Project"
args <- commandArgs(trailingOnly = TRUE)
datafile <- if (length(args) >= 1) args[1] else
"novel_corona_virus_2019_dataset.csv"
PROJECT_NAME <- if (length(args) >= 2) args[2] else "COVID19_Data_Analysis_Project"
# ---- helpers: install & load packages ----
required <- c("ggplot2", "dplyr", "readr", "stringr", "lubridate", "Hmisc")
install_if_missing <- function(pkgs){
to_install <- pkgs[!pkgs %in% [Link]()[, "Package"]]
if (length(to_install)) {
message("Installing missing packages: ", paste(to_install, collapse = ", "))
[Link](to_install, repos = "[Link]
}
}
install_if_missing(required)
suppressPackageStartupMessages({
library(ggplot2)
library(dplyr)
library(readr)
library(stringr)
library(lubridate)
library(Hmisc)
summarize <- dplyr::summarize
})
# ---- create output dirs ----
out_dir <- [Link]("output", PROJECT_NAME)
dirs <- c(out_dir, [Link](out_dir, "plots"), [Link](out_dir, "tables"))
for (d in dirs) if () [Link](d, recursive = TRUE)
cat("\nProject name:", PROJECT_NAME, "\nReading data file:", datafile, "\n\n")
# ---- read dataset ----
if () stop("Data file not found: ", datafile)
df_raw <- readr::read_csv(datafile, show_col_types = FALSE)
df <- df_raw
# normalize column names to lower for detection
cn <- tolower(names(df))
# helper to find column by possible keywords
find_col <- function(patterns) {
for (p in patterns) {
i <- grep(p, cn)
if (length(i)) return(names(df)[i[1]])
}
return(NA)
}
# Detect common columns
death_col <- find_col(c("death", "deceased", "died"))
age_col <- find_col(c("^age$", "age_yrs", "age_years"))
gender_col <- find_col(c("gender", "^sex$"))
country_col <- find_col(c("country", "location", "nation"))
date_col <- find_col(c("date", "reported_date", "report_date"))
confirmed_col <- find_col(c("confirmed", "cases", "confirmed_cases",
"confirmed_case"))
cat("Detected columns:\n",
" death:", ifelse([Link](death_col), "NONE", death_col), "\n",
" age: ", ifelse([Link](age_col), "NONE", age_col), "\n",
" gender:", ifelse([Link](gender_col), "NONE", gender_col), "\n",
" country:", ifelse([Link](country_col), "NONE", country_col), "\n",
" date:", ifelse([Link](date_col), "NONE", date_col), "\n",
" confirmed:", ifelse([Link](confirmed_col), "NONE", confirmed_col), "\n\n")
# ---- Prepare columns ----
if () {
df <- df %>% mutate(.death_raw = .data[[death_col]])
df <- df %>% mutate(death_num = suppressWarnings([Link](.death_raw)))
df <- df %>% mutate(death_num = ifelse([Link](death_num) & ,
ifelse(tolower([Link](.death_raw))
%in% c("yes","y","true","t","1"), 1,
ifelse(tolower([Link](.death_raw)) %in% c("no","n","false","f","0"), 0, NA)),
death_num))
df <- df %>% mutate(death_dummy = ifelse(, [Link](death_num
> 0), NA_integer_))
} else {
df$death_dummy <- NA_integer_
}
if () {
df <- df %>% mutate(age_num = suppressWarnings([Link](.data[[age_col]])))
} else {
df$age_num <- NA_real_
}
if () {
df <- df %>% mutate(gender_norm = tolower([Link](.data[[gender_col]])) %>%
str_trim())
} else {
df$gender_norm <- NA_character_
}
if () {
df <- df %>% mutate(confirmed_num =
suppressWarnings([Link](.data[[confirmed_col]])))
} else {
df$confirmed_num <- NA_real_
}
if () {
df <- df %>% mutate(report_date = lubridate::ymd(.data[[date_col]]))
if (all([Link](df$report_date))) {
df <- df %>% mutate(report_date = lubridate::parse_date_time(.data[[date_col]],
orders = c("ymd","mdy","dmy","Y-m-d")))
}
} else {
df$report_date <- NA
}
# ---- Summary statistics ----
death_rate <- mean(df$death_dummy, [Link] = TRUE)
cat("Overall death rate (fraction):", death_rate, "\n")
age_summary <- tibble(
mean_dead = if (!all([Link](df$age_num)) & any(df$death_dummy==1, [Link]=TRUE))
mean(df$age_num[df$death_dummy==1], [Link]=TRUE) else NA,
mean_alive = if (!all([Link](df$age_num)) & any(df$death_dummy==0, [Link]=TRUE))
mean(df$age_num[df$death_dummy==0], [Link]=TRUE) else NA
)
cat("Mean age (dead):", age_summary$mean_dead, "; Mean age (alive):",
age_summary$mean_alive, "\n")
gender_table <- df %>% filter() %>%
mutate(gender_group = ifelse(grepl("^m", gender_norm), "male",
ifelse(grepl("^f", gender_norm), "female",
gender_norm))) %>%
group_by(gender_group) %>%
summarize(n = n(), deaths = sum(death_dummy==1, [Link] = TRUE),
death_rate = deaths / n) %>% arrange(desc(n))
cat("Death rates by gender:\n"); print(gender_table)
top_countries <- tibble()
if ( && !all([Link](df$confirmed_num))) {
top_countries <- df %>%
filter() %>%
mutate(country = .data[[country_col]]) %>%
group_by(country) %>%
summarize(total_confirmed = sum(confirmed_num, [Link] = TRUE),
total_records = n(),
total_deaths = sum(death_dummy==1, [Link] = TRUE)) %>%
arrange(desc(total_confirmed)) %>%
slice_head(n = 10)
cat("Top countries by confirmed cases (top 10):\n"); print(top_countries)
}
readr::write_csv(tibble(overall_death_rate = death_rate), [Link](out_dir,
"overall_death_rate.csv"))
if () readr::write_csv(age_summary, [Link](out_dir,
"age_summary.csv"))
if (nrow(gender_table)>0) readr::write_csv(gender_table, [Link](out_dir,
"gender_summary.csv"))
if (nrow(top_countries)>0) readr::write_csv(top_countries, [Link](out_dir,
"top_countries.csv"))
library(ggplot2)
if (!all([Link](df$age_num))) {
p_age <- ggplot(df, aes(x = age_num)) +
geom_histogram(bins = 30, [Link] = TRUE) +
labs(title = paste(PROJECT_NAME, "- Age distribution"), x = "Age", y = "Count")
ggsave(filename = [Link](out_dir, "plots", "age_distribution.png"), plot =
p_age, width = 8, height = 5)
}
if (nrow(gender_table)>0) {
p_gender <- ggplot(gender_table, aes(x = gender_group, y = death_rate)) +
geom_col() + labs(title = paste(PROJECT_NAME, "- Death rate by gender"), x =
"Gender", y = "Death rate")
ggsave(filename = [Link](out_dir, "plots", "death_rate_by_gender.png"), plot =
p_gender, width = 6, height = 5)
}
if (nrow(top_countries)>0) {
p_country <- ggplot(top_countries, aes(x = reorder(country, total_confirmed), y =
total_confirmed)) +
geom_col() + coord_flip() +
labs(title = paste(PROJECT_NAME, "- Top countries by confirmed cases (top
10)"), x = "Country", y = "Total confirmed")
ggsave(filename = [Link](out_dir, "plots", "top_countries_confirmed.png"),
plot = p_country, width = 8, height = 6)
}
if ( &&  && nrow(top_countries)>0) {
top5 <- top_countries$country[1:min(5, nrow(top_countries))]
ts_df <- df %>% filter(.data[[country_col]] %in% top5 & ) %>%
group_by(country = .data[[country_col]], report_date) %>%
summarize(daily_confirmed = sum(confirmed_num, [Link] = TRUE), .groups = "drop")
if (nrow(ts_df)>0) {
p_ts <- ggplot(ts_df, aes(x = report_date, y = daily_confirmed, color =
country)) +
geom_line() + labs(title = paste(PROJECT_NAME, "- Time series (top
countries)"), x = "Date", y = "Confirmed (daily aggregated)")
ggsave(filename = [Link](out_dir, "plots", "timeseries_top_countries.png"),
plot = p_ts, width = 10, height = 6)
}
}
cat("\nFinished. Results saved in:", normalizePath(out_dir), "\n")
cat("Files:\n")
print([Link](out_dir, recursive = TRUE))
3.4 Result
3.5 Conclusion
The analysis of the Novel Coronavirus 2019 Dataset has provided valuable
insights into the progression and impact of the COVID-19 pandemic across
different countries and regions. By applying systematic data preprocessing,
statistical analysis, and visualization techniques, the study highlighted key
patterns such as infection growth trends, recovery rates, and mortality ratios.
The project also demonstrated the importance of data-driven approaches in
understanding global health crises and supporting timely interventions.
The findings emphasize that accurate and updated data is essential for effective
decision-making, whether in predicting future case trends, evaluating the
effectiveness of preventive measures, or allocating healthcare resources.
Although the dataset has certain limitations, such as incomplete or region-
specific reporting, the overall analysis contributes to a clearer understanding of
the pandemic’s dynamics.
In conclusion, this project not only reinforces the role of data science in
addressing real-world challenges but also provides a foundation for future
research in predictive modeling and pandemic preparedness. The methodologies
applied here can be extended to other datasets and emerging health crises,
enabling researchers and policymakers to develop more effective, evidence-
based strategies.
References
1. World Health Organization (WHO). Coronavirus Disease (COVID-19)
Dashboard. Available at: [Link]
2. Dong, E., Du, H., & Gardner, L. (2020). An interactive web-based
dashboard to track COVID-19 in real time. The Lancet Infectious
Diseases, 20(5), 533–534.
3. Johns Hopkins University. COVID-19 Data Repository by the Center for
Systems Science and Engineering (CSSE). Available
at:[Link]
4. Kaggle. Novel Coronavirus 2019 Dataset. Available at:
[Link]
dataset
5. Hale, T., Angrist, N., Goldszmidt, R., Kira, B., Petherick, A., Phillips, T.,
& Webster, S. (2021). A global panel database of pandemic policies
(Oxford COVID-19 Government Response Tracker). Nature Human
Behaviour, 5(4), 529–538.
6. Zhou, P., Yang, X., Wang, X., Hu, B., Zhang, L., Zhang, W., & Chen, H.
(2020). A pneumonia outbreak associated with a new coronavirus of
probable bat origin. Nature, 579, 270–273.
7. Statista. COVID-19: Statistics and Research. Available at:
[Link]