When we first heard about the coronavirus outbreak, we were shocked by how much turmoil and suffering that it caused among people residing in Eastern Asia. Death tolls were rising every day and with a lack of proper infrastructure, the disease spread rampantly. Determined to help solve this chaotic scenario, we decide to create Daybreak as a way for people to understand what kind of predicament they were in and how they could get out of it.
What it does
Daybreak is a web based application that takes in a location from the user and then outputs a danger coefficient between 0 - 100% representing how worried one should be about getting infected. The program then also outputs a danger coefficient for the same area, but after 3 months. This helps one predict how much worse an area might get and help them make better choices for the future. Not only that, but the program also gives the user a variety tips to follow based on the given danger coefficient.
How I built it
We built this program through processing a data base found online that detailed cases of coronavirus found all over the world. This data served as locations that could be compared to the user-inputted address to see if the user is in any real danger. After taking the distance between the user inputted point (through the Geolocation API) and the nearest outbreak point (distance), the program finds the number of coronavirus cases at the outbreak point by processing the correct row in the data set (# of cases). Finally the program reads in the HDI from a different data set to complete all of the variables needed to plug in to the equation. The programs outputs the danger coefficient and then reruns the equation with a modified value for # of cases based on the average rate of coronavirus infection. This outputs the predicted danger coefficient for three months in the future. With this information, the program also provides a variety of tips based on the original danger coefficient.
Challenges I ran into
When making Daybreak, we encountered problems with the formatting of our database. First of all, some values for location were shortened (i.e The United States was sometimes called The US) which lead to the program not being able to recognize that two locations with different notations were actually the same place. Another problem came when the Geolocation API returned the names of places in the country's native tongue (i.e Beijing was in Chinese logograms). This led to the program reading through the list of HDIs (which is in English) for a non-language item. Finally our biggest challenge was the derivation of the mathematical formula used to calculate the danger coefficient. At first, we had no idea where to start and were completely lost. After looking at ways to normalize a range of values, we found the sigmoid function which became a core part of our formula. After using research papers we found online and the graphing software, Desmos, we were finally able to get out formula.
Accomplishments that I'm proud of
One thing we are proud of is creating the mathematical models to model the spread of the Coronavirus. Using multiple sigmoid functions we were able to create a function that would return the number of confirmed cases from 1, 10, and 30-day points with an 8% error rate. We also created an equation to create the danger coefficient, using the country of residence's Human Development Index, their distance from the nearest disease outbreak, and the number of confirmed cases of the virus. One other thing we were proud of was how we manipulated the large of data we had to make it more usable and putting it all together to create a cohesive algorithm.
What I learned
We learned a lot about statistics while making the models, and gained experience in front-end development while making the website and the animations. We also gained experience in parsing through large amounts of data and manipulating the data to get it into a form where it was usable.
What's next for Daybreak
This is only the beginning. This current implementation of the app only considers a small amount of factors (distance from nearest outbreak, number infected/dead at outbreak site and human development index) to determine the danger coefficient. With more time, we will be able to factor in major travel paths that go through outbreak areas, government quarantines, travel restrictions and areas of livestock. This way, Daybreak is able to convey more detailed and accurate info through the danger coefficient so that individuals are more prepared.