A problem faced by many families today is the routine grocery store trip, or the growing boredom and frustration with sitting at home. Although most people would like to go out, it is difficult to do so responsibly and safely. In order to help individuals and families make more educated decisions about when it is safe to go out, where they should go, and to make plans which do not require them to wait in long lines, face frustration with out-of-stock products, or return home due to unsafe conditions, we developed TravelX as a travel companion.
What it does
TravelX is intended to alleviate the stress of the COVID-19 experience. Fear of exposure during routine shopping trips or family outings is a serious concern for many families. In order to allow families to make more informed decisions about these trips, the developers have developed an algorithm based on published data which provides a metric for assessing risk using crowd reporting. Although it is by no means definitive, it can help to quantify the degree of risk individuals will be taking on in the hopes of reducing anxiety and encouraging better choices. With the additional information regarding crowd densities and weather, families and individuals can plan their trips to minimize potential exposures and minimize time spent waiting in line or looking for out-of-stock items.
How we built it
TravelX is a crowd reporting app which enables users to provide information that can help calculate their degree of risk. Data which is reported by the users includes use of face coverings, implementation of social distancing, the recommended COVID capacity of the location, and the actual crowd size at the location. These are factored into calculations which help inform other users' travel decisions with the aim of making the public more informed.
Using studies published in The Lancet, the probabilities of COVID transmission have been quantified in terms of face covering use and social distancing. Other studies have determined a rough correlation between density and number of deaths, so in the interests of being conservative for the purposes of maximum safety, these correlations have been carried over into the calculation. All of these pieces of data are factored into a score which is then place into one of five categories:
VERY LOW: You are safe, but make sure to wear a face covering and maintain appropriate distance. LOW: You are safe, but make sure to wear a face covering and maintain appropriate distance. MEDIUM: With appropriate face covering and social distance, you should be safe. HIGH: This location may be unsafe - consider returning at another time. VERY HIGH: This location is not safe or does not comply with suggested guidelines.
Users are also presented with information regarding how crowded their location of interest is, and how the crowd density changes over the course of the day. For stores and other establishments, users can also find out when they open and close. Finally, users can obtain weather information such as the temperature, expected weather conditions, and probability of precipitation for outdoor venues or events.
Data on fluctuations in crowd density and location data are obtained from the Google Maps API and the populartimes Github repository, as created by user m-wrzr. Data on weather conditions are collected using the latitude and longitude corresponding to the searched location, and are provided by the OpenWeather API. The server which hosts the necessary Python code and carries out the POST requests is hosted on AWS, with user authentication provided by Auth0.
Challenges we ran into
We struggled initially with generating graphs for the crowd density, and for setting up the login and logout functions with Auth0 due to difficulties configuring it with Flutter. However, we were able to find creative solutions to each using various libraries and plugins, and a great deal of trial and error.
Accomplishments that we're proud of
The formatting, font, and general aesthetic of the app makes it one of our more successful projects. Furthermore, the implementation and integration of the data from the various APIs cohesively ensured that all of the data needed to make appropriate and responsible decisions could be found in one place.
What we learned
We learned Flutter functionality, and the use of various APIs and JSON outputs to structure an application.
What's next for TravelX: A Travel Companion for Extra Safety
We were hoping to add functionality to store recent searches so that users do not have to repeat a search in order to find a destination, but were unable to carry it out. Furthermore, we would like to establish a system to allow store managers (who are verified) to self-report in order to provide more accurate information on crowd sizes and capacity rather than relying on customers to supply the initial values. Access to the latest coronavirus data within the app would also enable users to make more responsible decisions regarding interstate travel. We would also like to link comments with usernames, and to enable greater functionality for the comments by adding an upvote/downvote system.