We were inspired by the situation that the world is currently in. With a lot of people worldwide feeling uncertain about traveling to places while others are not taking the virus seriously enough, we created this app in order to provide quantitative data for everyone interested in staying safe.
What it does
CoVision is a contact tracing app that helps keep users safe by giving them access to a live map that displays the risk level of contracting Coronavirus at specific locations. A lot of people are concerned with providing location data to third parties, which is why we made privacy our top priority for CoVision. We have designed the app to only track locations after the user has moved a certain distance (50 meters), which means that when a person is at their house, their location data and address will not be registered on our database on Firestore. Our app is focused on providing accurate information for users to be able to see primary points of interest with high amounts of traffic or locations with people who have tested positive for coronavirus. We prompt users to report their testing by asking them when they have gotten tested, while also offering people who have not been tested to find nearby locations for testing. We allow people to consciously be proactive against Covid-19, instead of leaving them guessing about the safety of going to a certain location, in real-time, instead of ineffectively alerting them weeks after potential contact with someone who has contracted the virus, meaning CoVision increases efficiency significantly.
How we built it
We split up the work between the four of us by front-end and back-end work. Two of us worked on designing the User Interface and User Experience, which was created using Storyboard/UIKit in Xcode. The other two of us used Google Cloud’s Firebase and Firestore for data management for both user data as well as location-specific data. We used Firestore to store how many people have gone to each store, how many infected people have visited, their safety rating, as well as their coordinates. We used Radar.io, a business aiming to provide location data infrastructure, and their APIs in order to search stores specifically by retail stores and restaurants (though this is highly extensible to any other category). We utilized Swift in order to write the functions and algorithms and connected it to our database.
Challenges we ran into
In order to develop CoVision, it took a lot of research on behalf of the entire team into all of the different functionalities we can use with the Radar API. We had to learn about how we could connect that to the UI while also making sure that the data was being passed to a database. Since there is a lot of information that was coming in from Radar, we had to learn a lot about Google Cloud and Firestore and do a lot of debugging in order to work through all of the problems along the way. We learned about real-time database management with Firestore because of the multitude of moving parts present, which is a new challenge that we had to overcome because of the novelty of CoVision itself.
Accomplishments that we're proud of
We were able to utilize tools that we knew about in order to create a socially applicable project that has a vast range of applications not only in our country but worldwide. We are proud of creating a more accurate contact tracing application than the current options available.
What we learned
We learned a lot about how to utilize location data as well as how to protect people’s privacy, which is an extremely large concern that has been a pressing issue for a long time. By not tracking people’s location at their homes and only starting to track after they have moved a reasonable distance. We also learned about how to use Swift and UIKit and MapKit in order to utilize Apple Maps to display the data.
What's next for CoVision
Although right now for the purposes of the demo CoVision only displays data for local stores and restaurants, we plan to extend the app to include parks, landmarks, offices, and all other points of interests. With a larger user base we would be able to gather data on many more locations, thereby furthering the utility of our app as well as increasing the number of users we can benefit. Additionally, we plan to implement hospital integration. By utilizing the APIs of large hospitals, we can also have users connect their CoVision account with their hospital account in order to share information about users’ Coronavirus test results as well as test dates. Connected users will have their “My Condition” page automatically updated with the information. These features would be especially critical during the upcoming elections as voting booths will become high traffic areas that would benefit from coverage from our app. We also hope to implement machine learning into our app in order to predict whether users have the virus based on models with data from past Covid-19 patients and their symptoms.