Awesome
Covid Resistance mobile application
COVID Resistance is a digital health identity contact tracing mobile app that anonymously tracks risk exposure to COVID-19. The app, which is GDPR and HIPAA-compliant, uses real-time, anonymous, tokenized data through Bluetooth to alert users if they are at risk of COVID-19 transmission based on their proximity with at-risk or infected users. Back-End part is represented in a separate repository
Cloning Instruction
git clone https://github.com/epam/covid-resistance-mobile.git
Xamarin.Forms mobile application that will help users to stay safe during coronavirus outbreak by tracking contacts with other users through Bluetooth.
Screenshots
<img src="docs/assets/create_profile.jpeg" alt="Create profile" width="250"/> <img src="docs/assets/profile_healthy.jpeg" alt="Profile page" width="250"/>Supported platforms
- Android 5.0+ (API level 21)
- iOS 10.0+
Supported features
- Integration with back-end.
- Anonymous device contacts tracking using bluetooth low energy device discovery POC.
- Anonymous account creation and log into existing one.
- Supports push notifications throe Azure NotificationHub.
- Supports content delivery based on the account status.
- Account privileges elevation to medical role using one time password.
- Medical role features that permits to generate anonymous one time codes for any account status changes.
- Contacts sharing throe user explicit consent by applying one time password generated by medical.
Known limitations
- Application at the moment is not capable to estimate the distance to the other device, it simply registers the fact of Bluetooth low energy connection possibility.
- Broadcasting identifiers are are random but not encrypted.
- Application at the moment doesn't rely on the duration of the contact, it registers the fact of the contact for not matter how long.
- iOS version is not capable to broadcast while being in the background. However it is capable to see other devices.
- Broadcasting on some old Android devices is not possible.
Getting started
Follow instructions on the getting started guide
External dependencies
- Xamarin.Forms
- Xamarin.Essentials
- LiteDB
- Prism.Forms.Extended + Prism.DryIoc.Extensions
- Nito.AsyncEx
- ReactiveUI.XamForms
- Xamarin.FFImageLoading.Forms + Xamarin.FFImageLoading.Svg.Forms
- PropertyChanged.Fody
- Newtonsoft.Json
- FluentValidation
- StyleCop.Analyzers
- Microsoft.Rest.ClientRuntime
- Mobile.BuildTools + Mobile.BuildTools.Configuration
- Microsoft.AppCenter.Analytics + Microsoft.AppCenter.Crashes
- Microsoft.Extensions.Logging + Microsoft.Extensions.Logging.Debug
- Xamarin.Azure.NotificationHubs.iOS + Xamarin.Azure.NotificationHubs.Android
Solution Structure
- Covi - Xamarin.Forms crossplatform library. Contains application pages and several modules implementations.
- Covi.Android - Android application. Apart from application implementation contains Bluetooth platform specific code.
- Covi.iOS - iOS application. Apart from application implementation contains Bluetooth platform specific code.
- Covi.Client - .NET Standart 2.0 library to interact with specified backend.
- Covi.Configuration - .NET Standart 2.0 library which contains application constants and configuration.
License Information
Licensed under Apache 2.0, LICENSE