The live website above provides real-time information about the spread of the coronavirus in your community and provides tools to help you inform your friends.
Even at a time of crisis, it is hard to see how important one's actions are for the collective good. There are many people and employers who refuse to participate in social distancing to help flatten the curve and save lives. For example, see this video or this other video (There are way too many of these).
This is where CoronAway comes in.
We want to tackle this problem by displaying visualizations that clearly show the importance of social distancing and to give users the means to inform their friends and employers about the need to social distance. The only way we can tackle the problem of containing a global pandemic is if everyone is on the same page and does their part.
What it does
Out website displays to users the current cases of coronavirus and the predicted number of cases in the next 30 days. It also display the availability of hospitals to show that they are filling up in capacity. These visualizations demonstrate the urgency to social distance. Users can then write an email using our personalized email template to their loved ones to remind them to social distance or to employers who are not adhering to the call to allow employees to work from home.
How we built it
We realized that the widely popular John Hopkins University data was too difficult to use because there would be missing values, poorly formatted columns and rows, a variety of different data formats. Instead, we decided to use data from the ECDC for worldwide data as they were easier to clean using python libraries such as Pandas. We also cleaned some hospital data for bed occupancy. Once we finish cleaning the data, we uploaded the data to a MongoDB server for our frontend to fetch.
We tried using various Machine Learning models to predict (separately) the number of confirmed Coronavirus cases, given the latitude & longitude and the number of previously deceased/confirmed/recovered by region. Eventually, after trying SVMs, Linear & Logistic Regression (with Polynomial Feature Expansion), and XGBoost, we settled on using a 3-layered Neural Network with the Rectified Linear Activation function to perform regression. We then uploaded this data to the MongoDB database also for the frontend to fetch.
Challenges we ran into
Working remotely was a difficult challenge for us because we could not coordinate as well as if we were working together in person. We needed to be proficient in communicating via Slack and scheduling Zoom meetings to keep up to date.
There was some difficulty working with the data because the location of confirmed cases are not always consistent and there are sometimes missing columns. This was the most time consuming part of the development process.
Our machine learning models started off with very poor accuracy. It took us a while to realize that there was a mistake in the data pipeline. This mistake along with some communication overhead among our team cost us a lot of time because Muntaser was not aware of the mistake in the data until a few hours later, so the rest of the team needed to wait for him to get back and rerun the models for predictions.
On the frontend side of things, it was a challenge to coordinate work on the website because we wanted our website to look cohesive and concise. To keep our style consistent, we made mocks up of our website using Figma so that all of us were on the same page.
Accomplishments that we're proud of
Despite difficulty of not being able to meet each other in person, we were able to coordinate and deploy a polished and useful website.
What we learned
We should have spent more time at the beginning coming up with certain checkpoint meetings. A lot of time was wasted when one of us was waiting for another person to respond. Every bug/mistake/miscommunication costed us ten times as much time as it otherwise would if we were in an in-person hackathon.
What's next for CoronAway
We would like to add more metrics for a more comprehensive overview of how hospitals are handling the covid-19 outbreak. It would also help to add visualizations that compares and contrasts the result of no controls vs social distancing. This would help users more directly see how many lives they can save by choosing to stay at home.