Our inspiration is the current COVID-19 pandemic and the rapidly-developed vaccine treatments for the coronavirus. In this project, we wanted to try to address the challenges we know will come in the years after 2020 as the vaccine is implemented as a long-term solution. There are likely many adverse side effects that will be able to be observed when the vaccine is tested on the population as a whole. Being able to analyze large amounts of data on reported adverse side effects is an essential part in making sure that COVID-19 vaccines are safe.
What it does
The Covid Vaccine Tracker can be broken down into three components. The first component is obtaining adverse effects (AE) data from the patient. In our project we accomplished this through django which allows us to create a user interface where the patient can input personal and symptom related data. Although the Django portion of the project is incomplete, we also submitted a weebly website which is what we envisioned for the Django website. The second component is to store the data using a SQL database which we did not get to. Our python script accomplishes these first two parts by prompting the user for AE data and storing it into CSV files. Finally, we used R to analyze the data and create informative graphs and data visualization tools. Since we do not have adverse effects data for the covid vaccine, we used VAERS (Vaccine Adverse Event Reporting System) data from 2019 and 2020 to complete our data analysis.
How I built it
We built the first component using Django to design the website. Since this was not fully functional at the end of the project, we created a weebly site to be a representation of how we envisioned it. We also used python to write code that modeled what we would have liked to implement on the website, where the user would be asked about his/her symptoms and then this would be stored in a csv file. This code asks users for input and then adds their input to an existing csv file. We created a GUI using PyQt that could be integrated to work with this script and ask the user the questions. We built the data analysis component using R as a tool to analyze the data stores in the csv file and create graphs. In RStudio, we implemented the tidyverse package in order to utilize ggplot to make our visualizations. We made bar graphs of vaccination counts based off of state and age group (age group is a new variable we made through the mutate function that is essentially every 10 years). We also made graphs for vaccination and symptom frequencies as well as other visualizations.
Challenges I ran into
In PyQt, we experienced challenges with integrating the python script with our PyQt script. This part of the project was left unconnected as we ran out of time and were unable to fix this challenge. In RStudio, the main challenge was trying to get the labels and words on our visualizations to not overlap with each other, as that made reading them very hard. We were able to fix this for the most part by either using coord_flip() or increasing the graph’s dimensions. As for Django, I ran into issues with where we were hosting our project. Since Django requires that we simultaneously work with HTML/CSS and python, there were many difficulties with connecting the codes together. We were unable to fix the issue of making all the codes work together in harmony to create a website with all the necessary data entry fields.
Accomplishments that I'm proud of
We as a team were proud of all the new things that we were able to learn during Hack Duke. It was an opportunity to try new things, whether it was Django, PyQt, or exploring new ways to create visualizations in RStudio. Being a beginner team, this gave us an opportunity to get out of our comfort zones and extend our knowledge to a real-world project.
What I learned
We learned how to use PyQt and PyQt designer to create an aesthetically pleasing interface for the user to interact with. We also learned a lot about how to integrate a python script with our PyQt script, although we were not able to accomplish this in the time given. In RStudio, we learned that using the function coord.flip() would fix the issue of labels on the x-axis overlapping each other, as it would put them in the y-axis where there is more room for text. We also learned to vary the height and widths of visualizations in order to make text appear better. As first time users of Django, we learned everything from scratch from making a virtual environment and using the command prompt to HTML syntax and running a server.
What's next for Vaccine Progress Tracker
The next steps for our vaccine tracker is to integrate all of our components into a cohesive project. For example, we need to integrate our python script into our Django web application and connect that to a SQL database for storage. Once we do that, we can incorporate our R component to provide useful data insights on the web application. We hope to accomplish this before the covid vaccine is deployed to the masses so its deployment can be as safe as possible.