Seeing the rapid spread of the virus and no definite means to identify each person in contact, we felt this solution was of utmost importance to help flatten the curve.
One of the team members is studying in a foreign country and did not travel back home due to the fear of contracting it on the journey and unknowingly distributing it to others.
What it does
- It registers each user and assigns their device a unique UUID.
- It tracks the user location in the background.
- Every time a user (say user X) moves by a considerable distance (watch_location() = 500m), it starts discovering for nearby devices within 10ft.
- Each time an endpoint , i.e. another device within close proximity to the user is discovered, it checks if the device is unique and adds the UUID of that device with timestamp and coordinates to the user X's graph as well as the other user's graph. (None of the Users know any of this which maintains the privacy of everyone and also automates the process while making sure to log every single contact)
- Meanwhile, the app has news and resources feed extracted from the Centre for Disease Control and Prevetion's [CDC] website to help stay updated.
- If user X tests positive at some point, the medical staff will input his phone number and a query will extract device ids that have been in contact with the user in the past 14days (again, nobody is notified of the contact's identity but just a generic alert).
- Each device id that has been in contact will receive an alert notification and prompted to pre-screen using a built-in Chatbot of the app.
This way users will be alerted when they are in contact and have pre-screening as well as other resources in the same app.
What makes this app different than present solutions? What makes it fastest and accurate?
Ease: All a user has to do it accept location permission. No need to manually input contacts they have met - for example, grocery stores wherein inputting 25 people in impossible. No need to manually check every few hours if they have been in the vicinity of patients - many might forget, many might face difficulties doing this. Automated: All the work of detecting, matching and inputting is done in the backend. A user only gets an alert notification to pre-screen. Accuracy: Since it will automatically detect every device in the vicinity, there is no room for human error or logic error. If a person has travelled inter-state, even that will be automatically logged. Fast: Solutions that match individual routes or coordinates require multiple pull requests to match with each user. For highest accuracy, all users in the country (could have travelled inter-state the period) would have to be matched. In this solution, just one query returns the valid information as the tracking has already been done in real-time.
How I built it
React-Native - app development MySQL and PHP, MongoDB Atlas - databases and queries react-native-background-geolocation and radar.io - track device location in background Googles Nearby Connection API - discover devices in the vicinity using combination of Bluetooth, BLE, and Wifi hotspotsAWS - Database Hosting Microsoft Azure Bot Framework - ChatbotTwilio, Slack, Messenger - alternatives to pre-screening in-built Chatbot
Challenges I ran into
My team and I working in almost opposite time zones and hence communication has been a big problem. All of us are college students with not enough skillset to compile a fully working app in 2 days (we found out about the hackathon late).
Accomplishments that I'm proud of
Current solutions to trace contacts require multiple pull requests to match each user's route with others. Moreover, there are gaps in the users logged and traced. We have aimed to diminish this gap by trying to trace every person privately. None of the users will see any data about any other user at any point in time.
What's next for Tracovid - Fastest & Most Accurate Contact Tracer
To team up with professional developers to complete the full-stack development and implementation of the app. To receive any guidance on loopholes, use cases or gaps in the concept.
amazon-web-services, azure, azure-bot-framework, facebook-chat, facebook-messenger, geolocation-api, google-connection-api, mongodb, mysql, php, radar.io, react-native