Purpose

The purpose of this project is to allow the users of our mobile app, ViralTracker, the ability to better avoid catching viral sicknesses. Every day, thousands of people get sick simply from being around others who are showing symptoms of sickness, and this spread of illness would be largely avoidable if individuals knew about the increased presence of viral illnesses around them. This mobile app seeks to help individuals do just that, by providing them with real-time data on the presence of common symptoms of infectious diseases around them, in the easy-to-understand format of a heat map. Through this mobile app, we hope to not only inform users of the viral illnesses spreading around them, but also incentivize them to take precautions to prevent catching them.

Functionality

This mobile app is designed to work on a smartphone to present users with a heat map in the form of a globe. Users can zoom in to this globe to find the prevalence of symptoms of illness in a given area. Users can also open a dashboard at the bottom of the map view to view relevant data, such as whether or not the rate of infectious disease is on the rise in their area and the number of data points collected within the last twenty-four hours. These data points are collected through another functionality of the app: the ability for users to submit a survey on symptoms they may be feeling, as well as the severity of these symptoms, once a day. This allows for the use of crowdsourced information that is updated daily, allowing users relevant, up-to-date information on the state of the spread of infectious diseases in their area.

To make our app work, we used React Native, the Expo framework, and CSS for the frontend, and Node.js, Express, Gemini API, and MongoDB for the backend. We used the Gemini API to map each person’s symptoms to a potential disease, and MongoDB to store our location and survey data. Although there were many databases we could chose from, we ultimately settled on MongoDB due to two main reasons: its native support for location data, and how quick it was to set up. Using MongoDB allowed us to finish this project, especially the heatmap, much more efficiently. Its native support for location data, paired with how quick it was to set up and use, made it a lot easier for us to map our data in ways that other databases would not have been able to do. This allowed us to create the heatmap relatively seamlessly, letting us put in more time for other aspects of the app.

Impact

In preventing the spread of viral illnesses, we hope to foster a population that is not only better equipped to fight against the spread of infectious diseases in their communities, but also one that is more conscious of the state of the health of the population around them. This would offset the load on the healthcare system, which is already overburdened in many parts of the world, allowing care to be better allocated to those who need it most. Furthermore, it would help create a healthier population, increasing the average lifespan and quality of life for many people.

On top of this, this location-based data would help healthcare professionals: pharmacists would be able to preemptively stock up on medicines to cure the illnesses spreading in their areas, and governments would be able to use the data to implement more effective healthcare policies through the analysis of trends in the spread of viral illnesses.

Challenges We Faced

We found that we struggled to put the backend and front end together. Although we wanted to write a custom API to combine them, the fetch API often resulted in network errors that seem quite random and out of place for us. In a similar leaf, we also found our strengths in separating the front and back end, as we were able to work efficiently to put together a UI. Furthermore, using tools/languages that you have little experience in can lead to not knowing how to solve certain bugs, which often wastes valuable time and effort. This was something we learned as we progressed with this project, as we were using React Native, which some of us had never used before.

What We Learned

From the aforementioned issues with the separation of the frontend and the backend, one of the biggest lessons we learned was the importance of merging the frontend and the backend early on, to make sure that everything in each end is compatible with the other end. This would have allowed us to deal with the smaller issues that we would have faced earlier on, rather than trying to deal with multiple large issues while at the same time trying to preserve most of our code.

Areas for Improvement

One of our primary goals for improvement is to enhance overall functionality. We plan to introduce a login system, implement real-time updates on outbreaks along with the ability to detect them, and redesign the user interface to create a more modern and intuitive experience. Additionally, we aim to support a wider range of data, such as the average number of infections over a seven-day period or graphs comparing the number of casualties over time.

Share this project:

Updates