The advent of the COVID-19 pandemic has caused the generation of a wealth of data surrounding infection and transmission rates, both nationally and internationally, along with visualizations such as the ones created by LA Times and University of Virginia. However, we were unable to find many data or visualizations about how a virus or disease spreads among the community, or community spread. This inspired us to create a platform that modeled the progression of the community spread of a pandemic through crowdsourced & self-reported location and travel history data from infected, exposed, or at-risk individuals. Not only were we inspired to use these models to generate educational and informative visualizations, but we also wanted to build a secure, mobile tool to self-report travel data that would be useful to individuals and medical professionals alike.

What it does

Phoenix is comprised of two components, a native iOS application that is a self-reporting tool, and a web application visualization platform. The iOS app allows users to securely login, keep track of their travel history, and add to their travel history with an embedded maps interface that allows users to search for public areas, landmarks, and other locations. Exposed or at-risk users can drop pins at where they've traveled to in the past 14 days, write specific notes about their visit that would be useful for medical professionals or data scientists, and send their self-reported data to our mongodb database. The web application regularly pulls data from our database and generates visualizations overlayed on top of google maps, including circles and radius' measuring the rate, number, and severity of community spread and heatmaps displaying the density and concentrations of community spread, which can be toggled by the user.

The visualizations are useful for both the general public and healthcare-workers. The general public can use the visualizations to be aware of the places they should not go and also to know if they may have been exposed to the virus. For the healthcare workers, a good visualization of community spread gives them an idea of where to deploy the invaluable testing resources so as to curb the pandemic.

How I built it

The web application was built using Django, which reads from and writes to a MongoDB database and includes a REST API that receives self-reported travel data. The Django app processes the models used in our visualizations and serves them to the front-end, which is written with plain JavaScript. Our front-end then uses the Google Maps API in order to generate the maps on which we overlay our visualizations.

The native iOS application was built with the iOS SDK and was written in Swift. The embedded map on the iOS side was implemented using iOS MapKit, and the self-reported travel data is sent to our Django app through HTTP POST requests.

Challenges I ran into

Modelling of the community spread of COVID-19 poses challenges in both how the data is generated and handled to finally create the visualizations. For generation of custom data, we needed to map the movements of a large set of people. For each person, there exist multiple possible places he/she has visited in a duration of 14 days with varying frequency. Additionally, the possibilities and frequencies differ from person to person. To create a realistic dataset, common places of visit such as food places, office spaces, entertainment venues, fitness center were considered. Further, the frequency of visiting the aforementioned places was varied across different types of people such as office-goers, students and tourists.

Coming up with an effective way to communicate using the visualization posed a challenging problem as there are two factors at play- the number of cases and the time between visiting a place and testing positive(community exposure time). Even when there are a huge number of cases but the community exposure time is low, the risk level needs to marked low as community spread might have only started in that area. Multiple cases such as this needed to be considered when coming up with an effective visualization tool.

Accomplishments that I'm proud of

As a team, we are proud of the fact that we as students could contribute to creating something which can help both the general public and the healthcare workers in curbing a pandemic which has claimed about 30,000 lives. We also believe it can be used in future as a way of preparing against future pandemics.

What I learned

Our team used a wide range of software from MongoDB and Django to Maps and Places API. We learnt a lot while implementing and integrating all the pieces of code to finally build the visualization tool. We also enjoyed the challenge of modelling the movements of humans to create our own custom dataset to build an effective and useful application.

What's next for Phoenix - Pandemic Community Spread Tracker & Visualizer

For our next steps, we plan to implement more visualizations, achieve feature parity between the web application and native iOS app (ie. adding a viewable dashboard to the iOS app and allowing users to self-report data on the web application), and integrate our app with the many currently available and developing pandemic/COVID-19 datasets to test and verify our models.

Try It out



django, google-maps, ios, javascript, mapkit, mongodb, postgresql, python, swift

Devpost Software Identifier