The rapid transmission of the coronavirus (COVID-19) has led to a sudden lack of information of whether or not a user has crossed paths with a COVID-19 case: have they become infected with the virus or have they become a carrier for it? So we decided to make an app that tracks this kind of information anonymously.
What it does
COVNET, informs users who have been in close contact with a COVID-19 case. The app helps health personnels trace contacts of a confirmed case and allow them to get a better idea of who is most likely to get infected.
The app will ask for permission to access the user’s location data and will track their location anonymously every 5 minutes. Each user will be assigned an ID to distinguish them from other users. If a user test positive, they have the option to send their ID to the health personnel. The health personnel will have access to a portal where they can sign in and enter the ID of the infected user to let the system know that they have tested positive. The server will receive the submissions and captures the infected user's location data for the past 2 weeks from the device. All users in the same city will receive the infected locations and will notify the user if they came in close contact with the confirmed case (between 2 hours of contact and within 30 meters).
How I built it
- React Native is used as the main development framework for both IOS and Android.
- Node.js is used as an API gateway to communicate between the client (mobile and web) and database:
- Mongodb Atlas is used to host and store the infected cases in the cloud.
- Github is used to maintain the project:
Challenges we ran into
Learning curve for new frameworks and languages, timing issue, and issues integrating background GPS tracking in IOS using expo.
What we learned
Improved ability to communicate and work with a team, got interested in mobile app development and work with location data.
Sam was our lead and main developer while Chris was a supporting developer. Sam implemented most of the functionality of the app such as integrating the background GPS, the UI, and the mongoose schema/model, where Chris was in charge of the html to handle the doctor's side of the app.
Most of the app's functionality is completed minus the web portal that receives the infected person's request. The app successfully notifies users if they have crossed paths with an infected person. It also displays a map of all nearby cases and will show the time and location of when the contact happened.
The main goal of the app is to help health personnels trace contact of a confirmed case. We used smartphone location tracking to notify and inform users of their surroundings and provide information to them in a more accessible way. Communication between users of this app, regarding the notification of the crossed paths of infected users of the app, also makes our app distinguishable and unique. We also have a cool name.
What's next for COVNET
- Create a portal to allow access for health personnels.
- EDIT: A basic web portal takes input as id and sends a POST request back to our API to create an infections model, but has limited functionality. Requires authentication so only a health care aid can access the portal (Doctor, Nurse, etc.)
- Connect infected users API to the web dashboard so health personnels can submit new cases by sending the ID of the infected user and the date when they started showing symptoms.
- Show infected locations on the dashboard and users who have been in close contact.
Get in touch with health personnels to test the app.
Note: If having issues running on android, run expo start --tunnel to get over connection issue