Code Monkey home page Code Monkey logo

erouska-android's Introduction

erouska-android

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.

How do we protect the user's privacy?

  • 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.

Who is developing eRouška?

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.

International cooperation

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:

Technical details

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:

Building the App from the source code

Clone this repository and import the project into Android Studio.

Run: ./gradlew assembleDevDebug

Contributing

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.

Git workflow

  • Work in a fork then send a pull request to the develop branch.
  • Pull requests are merged with squash commits.
  • Admins merge develop to master with a rebase strategy. This triggers a release build.

eRouška release process

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).

erouska-android's People

Contributors

simekadam avatar davidvavra avatar kobzol avatar rade2k avatar gh0stahcz avatar jendakol avatar macko1 avatar stepansonsky avatar igorsmerda avatar foxlik avatar krakorj avatar machj avatar martin-bryndza avatar

Watchers

James Cloos avatar

Forkers

davidvavra

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.