An Integrated Assessment

Your challenge is to integrate various Earth Observation-derived features with available socio-economic data in order to discover or enhance our understanding of COVID-19 impacts.

COVID-19 Tracker App

Summary

A comprehensive COVID-19 Tracker app showing timely updates on new COVID-19 cases, detailed graph, and map, country-wise, province-wise, with various sorting factor, user-selectable date range, and works completely offline.

How I Addressed This Challenge
  1. I found the most reliable data source on COVID-19 updates. The data repository is compiled by the Center for Systems Science and Engineering (CSSE) at Johns Hopkins University on the link here. They compile the data from various sources like WHO, ECDC, WorldOMeter, and many like this.
  2. When I looked into the data I came to know they some pre-work to be done before it can be shown to the users. The data that was previously given and later were incompatible. For example, latitude and longitude were added later. 
  3. To address this problem, the script was made that ran automatically every day to convert the data into the desired format and push the update to Github everyday. A link to a repository can be found here.
  4. Later the raw of the Github was accessed by the android app in CSV format and show data aesthetically. 
  5. The app is very comprehensive, light, and fast. It is fully functional even when there is no internet. The data also updates automatically every day.
How I Developed This Project

What inspired me to choose this challenge.

I observed that numerical statistics on COVID-19 was insufficient to tell the real picture of the pandemic. The idea was to present it aesthetically in a mobile app that only fetches data from the source once then utilize it in many ways. The presentation of data in a graph that showed the rapid growth or any positive sign of a pandemic situation including live cases in a map and inclusion of filters and sorting factors was a thing to make an app stand out.

What was your approach to developing this project?

  1. The very first step was the preprocessing of the data. I create a Google Cloud VM instance and installed crontab in it.
  2. It would run a script every day, fetching the data from the source and pushing it to another repository. A separate CSV file was uploaded every day for that day. The repo can be found here.
  3. The raw CSV was an API to the android app. At app startup, it would check if data is already fetched for the date required i.e. looks up in local database otherwise fetch it from the server. 
  4. The app has basically three pages or tabs. The first once shows us the numerical statistics. The total confirmed cases, deaths count, confirmed cases till now, or at any date of range given by the user are shown. This was done was computing the difference of numbers in the second and first dates chosen by the user.  
  5. The user may select any country and see details about the country and it's state/province.
  6. Another page contains the graph view that would calculate statistics of every day and has a great impact on giving ideas about the pandemic. The graph would tell things such as exponential rise in cases or linear rise in cases. Here again, the graph for a particular country can be selected.
  7. The last page shows the location where a pandemic has occurred. Google map SDK is used to show the latitude and longitude of such places.

How did you use space agency data in your project?

I am using the data provided by WHO along with some other sources. The data is compiled by the Center for Systems Science and Engineering (CSSE) at Johns Hopkins University. 

What tools, coding languages, hardware, software did you use to develop your project?

Tools & Software

  1. Google Cloud
  2. Github
  3. Android Studio
  4. MVVM pattern

Coding languages

  1. Python
  2. Java

Libraries

  1. pandas (python)
  2. MPAndroidChart (android)

Hardware

  1. Google Cloud Compute Engine (Used for precomputation of the source before feeding to a client app) - 1 vCPU, 0.6 GB memory, 10 GB storage
  2. MacBook Pro OS X (Used for development of an android app) - Retina, 13-inch, Early 2015
  3. Samsung Galaxy Note9, Samsung Galaxy M20 (Used for testing in the real device) 

What problems and achievements did your team have?

  1. The problem that came in my head was data incompatibility. The data structure of data did not match with past data and there were new fields published sporadically. I had to make an adapter bridge to overcome this. Instead of having data fetch directly from the source, another repository contains the clean data compiled by an automatic script in Google Cloud Compute Engine.
  2. Next was the graph presentation library for an android application. I used MPAndroidChart for this and the main focus was on the business logic rather than building graphing library by own.
  3. Another thing was using MVVM pattern for android app development. As app was highly dependent on data, local storage was used and there were minimum network calls to show data.
  4. The selection of the date range was also a challenge. Android material component provides a date range selector which made it easier to implement. The calculation of total was done on the basis of the given range. 
  5. The sorting factor was also very desirable. There may be a situation when a user wants to see a country with 0 deaths but with most cases or a country where deaths are maximum but none are recovered which depicts the critical situation. 
Project Demo

Following is the Youtube link for my project demonstration.

https://www.youtube.com/watch?v=UcArXN-kVBk

Download the app from the following link:

https://drive.google.com/file/d/1XncmZTfbTGJT7nO42Z2LdE54cq2y-VAq/view?usp=sharing

Data & Resources

Data Sources:

Tags
#covid-19 tracker app #graph #map #offline
Global Judging
This project was submitted for consideration during the Space Apps Global Judging process.