Covid-19 Tracker Application Using Python

by anupmaurya

Hope you are doing great!

Today, We are going to make Covid-19 Tracker Application Using Python which you can assume to be a medium level project as we will need to use three Python libraries.

Here, we are going to create a GUI application to track the COVID-19 cases.

We need to use three different libraries here.

  1. tkinter – The tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit.
  2. matplotlib – Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
  3. covid – to get COVID data

To install “matplotlib” go to terminal and type

"pip install matplotlib"
Code language: JSON / JSON with Comments (json)

Python community has made a library to get the COVID-19 information easily called “covid“.

To install “covid” go to terminal and type

pip install covid

Note:For this program use python version >= 3.6

Code With Comments

Now lets see and understand the code.

# importing tkinter from tkinter import * # initializing tkinter root = Tk() # setting geometry root.geometry("350x350") # setting title root.title("Get Covid-19 Data Country Wise") # function which will get covid data and will show it def showdata(): # importing matplotlib which will be used to show data graphically from matplotlib import pyplot as plt # to scale the data we are importing patches import matplotlib.patches as mpatches # importing covid library from covid import Covid # initializing covid library covid = Covid() # declaring empty lists to store different data sets cases = [] confirmed = [] active = [] deaths = [] recovered = [] # using try and except to run program without errors try: # updating root root.update() # getting countries names entered by the user countries = data.get() # removing white spaces from the start and end of the string country_names = countries.strip() # replacing white spaces with commas inside the string country_names = country_names.replace(" ", ",") # splitting the string to store names of countries # as a list country_names = country_names.split(",") # for loop to get all countries data for x in country_names: # appending countries data one-by-one in cases list # here, the data will be stored as a dictionary # for one country i.e. for each country # there will be one dictionary in the list # which will contain the whole information # of that country cases.append(covid.get_status_by_country_name(x)) # updating the root root.update() # for loop to get one country data stored as dict in list cases for y in cases: # storing every Country's confirmed cases in the confirmed list confirmed.append(y["confirmed"]) # storing every Country's active cases in the active list active.append(y["active"]) # storing every Country's deaths cases in the deaths list deaths.append(y["deaths"]) # storing every Country's recovered cases in the recovered list recovered.append(y["recovered"]) # marking the color information on scaleusing patches confirmed_patch = mpatches.Patch(color='green', label='confirmed') recovered_patch = mpatches.Patch(color='red', label='recovered') active_patch = mpatches.Patch(color='blue', label='active') deaths_patch = mpatches.Patch(color='black', label='deaths') # plotting the scale on graph using legend() plt.legend(handles=[confirmed_patch, recovered_patch, active_patch, deaths_patch]) # showing the data using graphs # this whole for loop section is related to matplotlib for x in range(len(country_names)):[x], confirmed[x], color='green') if recovered[x] > active[x]:[x], recovered[x], color='red')[x], active[x], color='blue') else:[x], active[x], color='blue')[x], recovered[x], color='red')[x], deaths[x], color='black') # setting the title of the graph plt.title('Current Covid Cases') # giving label to x direction of graph plt.xlabel('Country Name') # giving label to y direction of graph plt.ylabel('Cases(in millions)') # showing the full graph except Exception as e: # asking user to enter correct details # during entering the country names on GUI # please differentiate the country names # with spaces or comma but not with both # otherwise you will come to this section data.set("Enter correct details again") Label(root, text="Enter all countries names\nfor whom you want to get\ncovid-19 data", font="Consolas 15 bold").pack() Label(root, text="Enter country name:").pack() data = StringVar() data.set("Seperate country names using comma or space(not both)") entry = Entry(root, textvariable=data, width=50).pack() Button(root, text="Get Data", command=showdata).pack() root.mainloop()
Code language: Python (python)


Covid-19 Tracker Application : Output Screen 1
Covid-19 Tracker Application : Output Screen 1
Covid-19 Tracker Application: Output Screen 2
Covid-19 Tracker Application: Output Screen 2
Covid-19 Tracker Application: Output Screen 3
Covid-19 Tracker Application: Output Screen 3

In above bar chart you can see current covid cases around different countries like India ,United state & Japan.

Check out more python projects

You may also like


Adarsh Pal November 29, 2020 - 7:09 pm

Great content… 👍👌

anupmaurya April 22, 2021 - 6:55 pm

Thanks Adarsh!

Comments are closed.