Inspiration

We noticed the importance of tracking cases when it comes to illnesses such as Covid-19 or influenza. This information can be used for allocating supplies to hospitals and mandating certain policies. The current way to do track cases is to look at the number of people who have tested positive for the virus. This relies on an abundance of accurate tests. Another way we could get a grasp of trends of illnesses through a population is to use what everyone has: a phone. People may not know what illness they have, but they will know what symptoms they have. With this data, we can create a real time visual representation of spreading illnesses, and we can figure out what symptoms are correlated with which illness. This visualization will also provide public awareness in regards to the importance of sanitation.

What it does it do

Users log into Informavirus and are immediately prompted to click "yes" or "no" for whether they have a specific symptom, like a fever or cough. If they click yes for a symptom, their location will start being tracked and plotted on a heat map that corresponds to that symptom. After checking all of the symptoms, they will be directed to a page with a heat map for each symptom. Users can't see the map until they check the symptoms they have. Seeing the map is the incentive for checking their symptoms. They will be tracked until they either go back into the app and check "no" on the symptom or the average duration of the symptom has elapsed. We understand that everyone with a symptom will likely not report it, but the goal of Informavirus is to see general trends, not specific numbers.

How I built it

Informavirus was designed as a web and IOS app, using the Quasar framework (using Vue.js), as well as the related VueX and VueRouter for the multipage and state-management functionality. Google Firebase is used to securely store user data (username and password), as well as location data. We designed the application to be as secure as possible - the location data is linked with their user ID, and can only be retrieved if the user decides that they would like to retrieve the data.

Challenges I ran into

One challenge was deciding how to structure our database. We wanted to ensure privacy for the users but also maximize the data's usefulness. If we attached each user's coordinates to that user's node, then it would be easy to delete that user's coordinates if we no longer wanted to track them, but having the user's coordinates attached to that user would be a risk to the user's privacy. Instead, we used two separate nodes, one with all of the users and one with all of the coordinates. We then attach the user's random ID to their coordinates in the other node as a way to deal with specific users' data.

Accomplishments that I'm proud of

I am proud of making an app that is very easy for users to use. If an app like this isn't easy to use, even with the incentive of seeing the map in the end, it wouldn't be likely that people would use it. The idea was to make a simple, clean app, and I think we accomplished that.

What I learned

I learned how important database structure is, and I learned that it will pay off greatly if things like database structure and overall structure of the app are planned before its creation. I also learned how important communication between team members is when working on a projects that has so many moving parts. Communication allows for more efficiency and a better product in the end.

What's next for Informavirus

Of course, since we only had a couple of days to get the project up, we had to compromise with our functionality. There are features that we want to add, but have not had the time to, such as merging symptoms onto one heatmap, using different colors to denote each symptom, as well implementing an algorithm that can use machine learning to see what areas are more likely to become "hot-spots" for the virus. Another functionality that we plan to implement after this algorithm is a method in which the application can send the results of the machine learning algorithms to the nearest hospitals, alerting them if there are more cases that may pop up. Of course, there would be some statistical analysis involved, as there are no perfect predictions, but if we are able to get even the slightest prediction, the extra preparation could be of help in the future. We also understand that for Informavirus to operate effectively, we need as large a user base as possible. So it may be most effective to team up with a company that already has a user base and a reason to attract users, like a social media app.

Built With

Share this project:

Updates