Inspiration
After the COVID-19 pandemic hit, new regulations and recommendations were constantly being released. It quickly became difficult to distinguish between safe and dangerous. While trying to evaluate the risk of going to parks and grocery stores, we realized that current maps and charts do not provide a holistic risk value that not only takes into account the number of COVID-19 cases in the area, but also how busy the location is and the type of place. So, we decided to develop an app that provides that holistic risk value to help users make the most informed decisions possible when leaving the house.
What it does
The main function of the CovidRisk mobile application is to calculate the risk of visiting a specific location. The app gathers information on the number of new COVID-19 cases per 100 thousand people, the average time spent at the location, the busyness of the location - based on data from Google Places that accounts for day of the week and time- and the risk associated with the activity according to informed medical institutions to formulate a consolidated risk value. These four factors are factored into a percentage risk value. We classify risk percentages as such:
- 0%-25%: Low Risk
- 25%-50% Medium-Low Risk
- 50-75% Medium-High Risk
- 75%+: High Risk.
Our app also prompts the user with additional questions based on place type. For example, if the location is a cafe, bakery, or restaurant, the user is prompted with a question about whether they plan to take out or dine in, which is factored into the risk value. In addition, if the place is a city or other type of locality, the user is not prompted with any additional questions, and risk is calculated based solely on the number of new COVID-19 cases per 100 thousand residents.
How I built it
We started the build process by designing an overall layout of our application. We knew we wanted to build a cross platform app using React-Native and Python and that we needed a backend API that would gather and analyze data. We started by researching existing open source COVID-19 APIs and data sources, and came across this Coronavirus API Tracker: https://github.com/ExpDev07/coronavirus-tracker-api.
We proceeded by using the Python wrapper for this API and created our own functions in Python that calculated the average number of new COVID-19 cases per hundred thousand people over a period of three days in the county of a location. We then used the Google Places API to find the county of the inputted location, and also the following Python “populartimes” wrapper to factor in the busyness of a location at any time: https://github.com/m-wrzr/populartimes.
After creating these Python functions that calculated a risk in the backend, we used Flask to create an API of our risk analysis information. Flask allowed us to send data from the user input in the fronted to the backend. We incorporated various components in React-Native to simplify the user experience such as the Google Autocomplete tool for location input, a loading page, and a risk slider display:
Slider: https://github.com/react-native-community/react-native-slider
React Elements: https://react-native-elements.github.io/react-native-elements/

Challenges I ran into
The biggest challenge we faced was working with network requests. Since we had no prior experience with API calls, we spent a few weeks researching the concept and running post requests tests in React Native. We also originally planned to use Django to create our own API, but after a few trials, we felt Django overcomplicated the process and instead, proceeded with Flask.
Accomplishments that I'm proud of
Before this Hack-A-Thon, our computer science experience largely consisted of backend development. The CovidRisk project was not only our first time creating an application, but also our first experience with full-stack development from scratch. We are proud that we were able to accomplish a milestone project in such a short time and we will continue to work to make our app fulfill its potential impact.
What I learned
As we entered this Hack-A-Thon, our goal was simple: create a tool to help people during a global pandemic. We started out with Python experience but no experience in app development and, over the past 12 weeks, we developed a cross-platform application using React-Native and Flask. With the help of our mentor, we learned about APIs, how to make network requests, and version control in GitHub. We hope to further develop these skills and improve our app in the future. Extensive work with adding fundamental UI components allowed us to become proficient in React Native.
What's next for CovidRisk
Moving forward, we plan to implement a map view populated with markers that would allow the user to see risk values associated with nearby locations. For example, if the user wishes to visit a busy Starbucks that has a high-risk value, they could quickly find a local coffee shop with a lower risk. Additionally, we plan to add a risk graph that displays predicted risk values and alternate times and days for a desired location, allowing users to choose an alternate time and day with a lower risk value.



Log in or sign up for Devpost to join the conversation.