With the ongoing COVID pandemic, individuals feel concerned over contracting the virus along with whom they may have infected as well. At the same time, many people want to maintain anonymity regarding their personal health. To combat this issue of anonymity as well as improve public health safety, we came up with CovAlert, a notification service to easily and anonymously let your contacts know they have been exposed to Covid-19!

What it does

CovAlert allows someone to anonymously notify a group of individuals that they have been exposed to someone who tested positive for COVID 19. The user inputs their contacts in the form of phone numbers and dates of the last contact with the individual. After the user enters this information, they click the alert button and are notified of a successful submission.

If you are an individual receiving an alert, you will receive a SMS message which will include the date the person had contacted you along with CDC information which is provided for tips and guidance for handling COVID as well what possible symptoms to look out for.

How we built it

We used React to develop the frontend of the project. The React frontend sends an HTTP POST request to the python-flask backend that contains JSON data for the phone numbers and dates. The flask server queries the GoogleCloud MySQL database to see if the phone number has been sent a message within the last 24 hours. If it has, a message is not sent to reduce the possibility of spam messages. If the number isn’t in the database, an entry is added with a timestamp, or the timestamp is updated if the phone number is present. The flask server then uses the Twilio SMS API to send the alert to each user and sends an HTTP response back to the React front end to let it know the process has finished.

Challenges we ran into

We had trouble retrieving phone number information from a Google Cloud database for anti-spam and verification purposes. This issue took several hours to resolve and interestingly enough, the issue was not in the retrieval itself but the fact that objects were returned instead of simply strings.

Another challenge we ran into was connecting the React frontend with the Flask backend. We initially tried using Axios but later found that a simple fetch POST request worked much better.

Accomplishments that we're proud of

The React frontend is something that took the most time out of the entire project. It involved a lot of googling, constantly testing, and making adjustments to arrive at an attractive yet functional interface.

Additionally, this was our first time working with the cloud database so getting the phone number functionality to work was something we were excited by.

What we learned

We learned how to use the Twilio API to send SMS messages and phone calls. Learned how to use Google Cloud databases in conjunction with flask in a python environment.

What's next for CovAlert

Providing helpful health tips as well nearby testing locations for individuals based on receiver reply. A feature will also be added to allow email alerts using the Twilio email API.

Share this project: