Inspired by the contact tracing call center in Singapore, I believed that there should be a more effective way to trace contacts made with a positively-tested COVID-19 patient. In a video interview, they said that after a person has been tested positive, they would ask the patient where they have been and who they've met. The interview process would last as long as a day and then they would proceed to contact everyone whom they've mentioned. The problem is that the patients would often forget some of the information and the time spent on interviewing one patient is too long, risking the spread of the virus. Moreover, many people do not feel comfortable when the contact tracing app logs their location data or Bluetooth monitoring data. Therefore, I am inspired to create a solution that can tackle both challenges.
What it does
At first, my app uses Google authentication to provide a secure login. Since all UMD students (not sure for all USM students) have a Gmail account, school administrators can easily implement the system. Upon logging in, users would use my app to scan NFC chips that are spread around an area (since NFC chips are very accessible, a lot of them can be scattered around to have as many as one placed on each table). As the app scans for the unique serial number of an NFC chip, the app creates an encrypted key from the serial number for the user to input into the app. The scanned time would automatically be logged. The last thing the user would need to do is update the duration they have spent at each location. Each person can view their list of logs they have scanned on the dashboard and the duration they were there. Once a user is tested positive, admins can then update the logs created by that user in the database to flag them as “positive”. Other users can regularly check the “Tracing” page in order to see if they have come into contact with a positively-tested patient. I would like to note that the users are only able to see which of their logs have overlapped with the patients’ and they could not be able to see who the patient is in order to protect the patient’s privacy. A high number of overlaps would mean close contact. With that information, users can act accordingly, like getting a COVID-19 test or contact first responders for advice. Admins on the other hand could have precautionary measures by reverse-searching on the database to find potential spread and contact high-risk users.
How I built it
Challenges I ran into
My inexperience in frontend limited my vision for the project but I overcame by using a server-side rendered "frontend". Working with an API that is still in its trial version posed many challenges, like its lack of adoption by anyone and Google, require the API to be accessed by a secured route (that's why I used my personal secured domain in order to be able to access the API)
Accomplishments that I'm proud of
Having a working prototype where logs could be successfully added to the database and server was able to retrieve data from a database. I was able to write a minimum viable algorithm to reverse search overlaps of logs. The challenge allowed me to work on a project that could potentially do social-good. Last but not least, I am proud that I was able to finish the project in less than two weeks.
What I learned
NFC data structures, the use of google authentication, server-side render of frontend, using a database, current contact tracing methods.