MaciekBaron / open-coronavirus

Open Coronavirus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This document is also available in spanish

What is Open Coronavirus?

The availability of an effective vaccine may be delayed indefinitely for up to possibly 18 months. This requires quarantine measures - currently of a general nature - for the entire population. At the same time, health authorities are contemplating performing diagnostic tests at the population level, to ensure proper epidemiological control.

The Open Coronavirus project offers, for this time interval, a digital solution for monitoring, diagnosing and containing SARS-CoV-2 infection that allows quarantine measures to be applied in a controlled manner at focal points or hotspots, thus minimizing the general quarantine of the population, reducing the overload of health systems, and at the same time facilitating the progressive resumption of daily activity in the shortest possible time.

The system will have 3 applications:

  • Citizen App. Mobile application for citizen collaboration and to control the spread of SARS-CoV-2. From the application a diagnostic test will be requested, and the results of the test can be seen. All citizen movements will be stored to control possible infection and to delimit the scope of action of SARS-CoV-2 by the health authorities. It will serve as QR-code based citizen identification.
  • Data control software where health and epidemiological control authorities will be able to consult and detect the movements of SARS-CoV-2. From the software, they will be able to see focal points of infection, compliance of mandatory quarantine for those infected or potentially infected.
  • Authorities’ App. Mobile application that enables relevant authorities to read citizens’ QR identification codes in the locations where they have decided to monitor their movements in this way.
Open Coronavirus Apps
Examples of the 3 applications for different types of users

Important A team of medical and bioethical research experts from Oxford University explains the need for such an application: http://www.ox.ac.uk/news/2020-03-17-infectious-disease-experts-provide-evidence-coronavirus-mobile-app-instant-contact

Should the Ministry of Health, or the regional health authorities decide to take on the dissemination of the app and the processing of its data, the use of the app would be in line with General Data Protection Regulation (GPDR).

For more information, you can consult WikiProject:

Example of how the citizen APP works
Example of how the citizen APP works

Why did we create Open Coronavirus?

We do not intend to publish this APP, since it must be the relevant Ministry or body that does so. We know that the government is investing in an application like this one however since speed is key, we are making this code available to the relevant bodies in the event it may be of use. Given the urgency of the current situation, no amount of help is enough. That is why we have designed and programmed the basic core of a project with 100% functional apps that can respond to some citizens’ needs during the quarantine period. The design is flexible enough to add or change functionalities in an easy and fast way, which is what we need now. This application aims to help citizens and fight the pandemic. Be responsible. Together, we will defeat the virus! #iamstayinghome

Legal considerations

The project has not been published. Before publishing, one of the things that must be done is its adaptation to the legislation on the processing of personal data. The project is available to any Ministry of Health, state administration or competent autonomous administration for implementation. They will be responsible for the dissemination of the app and processing of the data obtained, following the GDPR Law. The data collected must be managed following the law regarding security measures for its storage, maximum term of custody and storage, and information on user rights (especially information concerning purpose and revocation of consent). Likewise, although this app asks the user for their consent, the GDPR Law also contains exceptions to the need for prior consent for the treatment of data, in the event of an epidemic or for the protection of people's health based on general interest, which is our current situation. The scenario in which this report focuses is one in which the autonomous health authorities adopt extraordinary measures for the protection of public health, since it is the only body authorized to adopt this type of measure.

According to the Spanish Data Protection Authority (APED) To comply with decisions about the coronavirus pandemic that are adopted by the competent authorities, particularly health authorities, data protection regulations should not be used to hinder or limit the effectiveness of the measures that these authorities adopt in the fight against the pandemic. Data protection regulations allow the adoption of measures necessary to safeguard the vital interests of individuals, essential public interest in the healthcare field, the performance of medical diagnostics, or compliance with legal obligations in the work sphere, including the treatment of health data without the need for the explicit consent of the affected party. In any case, the processing of this data must observe the principles established in the GDPR, in particular those of minimization, limitation of purpose and minimization of data retention.

Project Structure

The project is built on top of an horizontal architecture of node servers running on dockers and being balanced against a mongoDB database. The design allow to replace the database by whatever data stores since repositories (classes in charge of comunicating with the data store) are decoupled from the rest of the code. The framework used is Loopback 4, which allow to define models, controllers, repositories and datasources completely decoupled.

Apart from that, we know that this application should be integrated with health department databases, so we have define some services as interfaces allowing easily to integrate it with real databases by just implementing those interfaces.

The project is organized as follows:

  • server - NODE server (Loopback)
  • app-citizen - Code of the CitizenApp (Ionic)
  • dashboard - Code of the web dashboard where the data analysis will be performed (Angular) (coming soon)
  • app-police - Code of the Authorities’ App (Ionic) The app compiles for both Android and iOS.

Server

To run the server, you need a mongoDB database and must adjust the .env.dev or .env.production settings accordingly. You will also need to download all dependencies using

cd server
npm install

Finally, to run the server use

npm start

Citizen App

The App is made with the ionic framework. You will need to install the client using

npm install -g @ionic/cli

You will also need to download all dependencies using

cd app
npm install

Then, to run it use (use configuration parameter to force english version)

ionic serve --configuration=en

This allows you to run the app in a browser.

Citizen App displays (main element of the project)

Pantalla 1 Pantalla 2 Pantalla 3
Pantalla 4 Pantalla 5 Pantalla 6
Pantalla 7 Pantalla 8 Pantalla 9
Pantalla 10 Pantalla 11 Pantalla 12

License

MIT License

Special thanks

Special thanks to Trayma Traducciones for the english translations

Special thanks to Alex Nogues for translate to english the wiki

Special thanks to Marc Mauri for translate to catalan the app

How you can help

PRs welcome.

About

Open Coronavirus

License:MIT License


Languages

Language:TypeScript 82.2%Language:HTML 8.7%Language:CSS 6.4%Language:JavaScript 0.9%Language:Swift 0.7%Language:Shell 0.6%Language:Java 0.3%Language:Dockerfile 0.2%Language:Ruby 0.1%