Read our FAQ (Czech only)
eRouška (rouška = face mask in Czech) helps to fight against COVID-19.
eRouška uses Bluetooth to scan the area around the device for other eRouška users and saves the data of these encounters.
When an eRouška user tests positive for COVID-19, the user is contacted by a healthcare authority and is asked to upload the data to create a map of potential secondary infections.
The healthcare authorities then analyse the data and contact the possibly newly infected for further measures (quarantine, testing).
The App is registered with a phone number. The phone numbers are available only for the healthcare authorities.
- User can remove all collected data, including the phone number.
- All data are saved locally on the user's device. Data are uploaded only with the user's consent after a healthcare authority's request.
- The scanning can be turned off manually at any time.
- The broadcasted Device ID is changed every hour, so a user cannot be tracked with it. (Only our backend has a knowledge of which Device ID's correspond to which phone number.)
- The data are kept on backend for 6 hours, then deleted.
- eRouška is developed open-source from day one.
We are an initiative consisting of people from various Czech IT companies and volunteers called COVID19CZ. We are all unpaid volunteers.
We are on Slack! covid19cz.slack.com, channel #erouska.
The development was subsequently approved by Czech Ministry of Healthcare.
We are open-source from day one and we will be happy to work with people in other countries if they want to develop a similar app. Contact David Vávra for technical details.
We got inspired by similar apps in other countries:
eRouška uses:
-
Bluetooth Low Energy (BLE)
-
Firebase Phone Number Authentication for phone number verification and authentication
-
Firebase Storage for uploading the collected user data in CSV format
-
Firebase Functions for getting the Device ID's to broadcast after registration
-
Firebase Crashlytics for App crash monitoring
-
For Android <-> Android Bluetooth connection, the App doesn't need to connect to the other device as the Device ID is broadcasted in the broadcast payload.
-
For Android <-> iOS Bluetooth connection, the App needs to connect to the iOS device via GATT to get the Device ID.
More details about eRouška:
- Technical documentation in Wiki
- erouska-ios: iOS source code
- erouska-firebase: Firebase Functions source code
- erouska-homepage: erouska.cz webpage source code
Clone this repository and import the project into Android Studio.
Run:
./gradlew assembleDevDebug
We are happy to accept pull requests! See Git Workflow.
We are on Slack! covid19cz.slack.com, channel #erouska.
We use a private Trello for bug tracking, contact us on Slack.
- Work in a fork then send a pull request to the
develop
branch. - Pull requests are merged with
squash commits
. - Admins merge
develop
tomaster
with arebase
strategy. This triggers a release build.
eRouška uses GitHub Actions. A push to master branch triggers an App build. Then the App is published to Firebase App Distribution.
There are two variants of the App: DEV and PROD. PROD is also built as an App Bundle artefact, that needs to be manually uploaded to Google Play.
Versioning is automatic: major and minor version is in Git, patch is versionCode (a number of commits from the start).