It has been almost a year since the Coronavirus (COVID-19) abruptly changed our lives, and, like a mother grounding her child, forced us to remain indoors. The results of this action are finally showing. But even with cases dropping, the threat of new variants and semi-effective vaccines looms. In the US alone, we already have had 26.1 million cases and around 439 thousand deaths and those numbers are still growing! Most Americans however, have become complacent with this new normal. With a swirl of misinformation floating around about the virus, frustrations penting up, and the anniversary of quarantine coming up, it’s no surprise that many people are looking to socialize and finally break free from walls of their home.
But that is still dangerous. And while we know we can’t tell people to stay home, it does help to present the decision in a fun yet effective way. Should I Go?™️ was created to help people privately decide whether to stay home during this pandemic. More importantly, it recognizes that socializing and changes in environment are important for mental health. Using fun graphics, logos, and interactive elements the web application takes all this into consideration and provides you with sound advice about socializing during the pandemic.
What it does
Should I Go?™️ is a tool designed to make users feel more safe and prepared while socializing in the pandemic. Our application determines whether a user has any plans this upcoming week, and if so, where and when. Using our backend, we calculate the number of active cases and return our recommendations based on that.
If the risk is too high, the app displays the current statistics and recommends that the user stay inside for now. If the number of cases is okay, we then check for the user’s symptoms. They are recommended to call a doctor if their symptoms put them at a high chance of having COVID. Otherwise, we give them the thumbs up to go out and socialize (within CDC guidelines of course).
By checking these requirements, we hope to not only lower the amount of COVID cases, but also make users more self-aware and double check their conditions before socializing. We recognize that socializing is still an important part of our lives and wish to keep everyone safe while doing so.
How we built it
We chose to use React.JS and Flask as the main frameworks of our frontend and backend. Both sides use HTTP protocols and API management to retrieve and return data. The frontend also deals with authentication tokens for protected routes by storing them in localStorage.
Our Flask backend gets COVID statistics from an existing API and performs calculations that the React frontend calls to display on the web application.
Backend also uses “Jaccard Similarity” technique to determine the similarity between the user’s listed symptoms and Covid symptoms. This technique tokenizes the text into words (tokens) and by determining the fraction of tokens that match between the two sets of symptoms, we gauge the similarity we predict the probability that the user should stay home or go out - and whether they should get tested for Covid.
Challenges we ran into
One of the challenges we ran into was dealing with properly making and handling the post requests. At first there was some confusion with parsing the incoming object/data sent by the frontend, but using Flask’s request object we were able to parse the Json object into a list of symptoms and perform similarity matching on this.
Accomplishments that we're proud of
We were able to use Natural Language Processing to implement the Jaccard Similarity Algorithm in order to find textual / document similarity. Also, we are proud of how the styling of the web pages came together - it looks clean and professional incorporated with some fun elements. Last but not least, we are proud that we were able to use this hackathon as a learning experience for all of us.
What we learned
All of us learned and explored something out of our comfort zone during this hackathon. For all of us, it was our first time using MongoDB and Flask, and many of us did not work with the natural language toolkit prior to this. Additionally, a few of us learned how to use React and JS/CSS to style the web pages.
What's next for Should I Go?
In the future, we could possibly add more information about vaccination statistics (let user know how many people around them have been vaccinated). More on that, we could provide the closest testing/vaccination centers to them if they wish. As of right now, the user inputs their city but gets statistics for the state. We could expand it so that the user gets statistics and results specific to their city. We could also incorporate AI to predict the number of cases x days away (either on a local scale or national scale). It would be really cool to use the Twilio API to give users an automated phone call or create a network for users on the platform to call each other since they may feel lonely due to lessened social interaction. We could also redirect them to call a doctor based on their input on the symptoms page.