Covenant - COVID-19 Quarantine Monitoring System
Website: https://covn.org
(c) 2020 Covenant Team
Released as open source under the Apache license v2.
Please see the instructions for contributors at https://covn.org/onboarding
By contributing ideas or code to this project, you agree to https://github.com/covenantproject/covenant/blob/master/contributor-agreement.txt
We organized the project into multiple repos so that different modules can be managed easily, and this main repo will be used to ingerate them. Here are the individual module repos:
- Mobile Application front-end for patients: cov-pat-mobileapp
- Web Application front-end for health professionals: cov-healthpro-webui
- Back-end API, application and database layers: cov-backend
- Translation of mobile app user interface into multiple languages: cov-translate
[Retired - do not use] Codebase of the pre-v1 proof of concept is in the Covid-FLutter repo. It was originally started at https://github.com/TheSciFiMed/Covid-FLutter. The repo has been archived for historical purposes and not used for development.
The primary purpose of this app is to track/verify home quarantine for COVID-19. Additional purpose includes regular health check ups, enabling food/water delivery, sample collection and contact tracing.
It has proven difficult to ensure that those under home quarantine will remain at home. There have been several instances of people violating quarantine. Health authorities have taken steps of stamping people's hands with indelible ink, this it doesn't enable tracking or verification. Hence, we are building a mobile app that will enable this.
The app will rely on these technical capabilities - geolocation, geofencing and voice/video communication.
Each person who enrolls into the app will enter personally identifying information. The information will be stored within the physical boundaries of the country and in compliance with the law of the land.
For any country, acceptable identification includes:
- Driving license number (Issuing Authority + license number)
- Passport number (country + passport number)
For India, acceptable identification includes:
- Aadhaar card number
- OCI card number
For US, acceptable identification includes:
- Social security number, if no other ID is available. However, due to financial security reasons, other identifiers are preferred.
For countries not listed above, if they have a national ID, then the national ID number is preferred.
Any one of the above should be sufficient to uniquely identify an individual. Along with this id, the app needs:
- Full name
- Gender (male, female, other)
- Date of birth
- Electronic communication (1..n) {
- Phone numbers (0...n)
- Email address (0..n) }
- Address (1..n)
- Photograph of the person
- Preexisting conditions
- Mobility or living assistance required? If yes, who is providing assistance (can be an emergency contact - listed below, or a health worker)
Emergency contact
- Name, gender, date of birth, relationship (parent, child, grandparent, grandchild, spouse, sibling, friend, other)
- Address, phone number, email
- Are they taking care of the quarantined person?
- Is this person under quarantine - Yes/No (the need for this is explained below under contact tracing)
- Quarantine start date/time
- Quarantine end date/time
- Quarantine location: Quarantine authorities will whitelist the address where the person is quarantined. Since addresses in India can be hard to find, they can enter the approximate address in Google maps, then browse the map (in satellite view if needed), and then pin the location so that its latitude/longitude are captured along with the address.
- Local authority in charge of quarantine - this could be a district, city, town or village office. In version 1, make this free test. Subsequently, we can make this selectable with help from the government.
- Does this person need food, water or any medicines (for any health condition) during quarantine? Yes/No. (if yes, then the local authority will be responsible for delivering them periodically)
- Need for food/water
- The app will send location pings to the server every hour
- If the person leaves the geofence by 100 feet, then the app will send an alert to the server immediately
- Temporary leave from quarantine (in version 2) - for hospitalization, or any other personal reasons that the quarantine officer approves. Start time, end time, permitted location, reason and who approved it.
- Countermeasure 1: the authorities may text/video/voice call the person periodically to ensure that they answer the phone that is tracked, and the phone is indeed within the geofence and we may also send volunteer/healthcare worker to check on them and even a peer.
- Countermeasure 2: This will be an automation of countermeasure 1, perhaps in a future version. The app can automatically ask the person to use the front camera and record their picture. This picture can be compared with the picture on file (or with Aadhaar database if possible)
- Countermeasure 3: Do not install the phones that have the ability to manually set a location (for development purposes). If this can be done on rooted phones, then the app will check and alert if the phone is rooted. If the person has no other phone, then we will end up installing on this phone, but we will flag the phone as rooted so the server will know that the data may be unreliable.
The app will have text, audio and video capabilities. There are several reasons behind these features:
- Countermeasures against quarantine violation (see details above) - check if they are indeed within the geofence - they just didn't leave the tracking phone at home and go out with a different phone.
- Talk to them to reassure them, and do a quick history/visual examination by a health worker
- In a future version, enable the person to enter their symptoms (fever, cough, shortness of breath, etc.)
- Find out and deliver necessary supplies - food, water, medicines (e.g. for fever or preexisting conditions)
- Determine if a lab test is needed. If yes, then go to their home wearing PPE and take a swab for testing. This will help with containment compared to having the person visit a clinic/hospital
(more to come)