Health Gateway is used to retrieve and store your proof of vaccination, access your health records, view COVID-19 test results, access official resources to navigate your way around Covid-19 and stay up to date with important alerts and official announcements
This application is using Google recommended best practices and architecture. This application mainly contain 3 layers
UI Layer : Displays application data on the screen
Domain Layer : Simplify and reuse the interactions between the UI and data layers
Data Layer : Contains the business logic of your app and exposes application data.
- App module contains Activities, Fragments, ViewModels, Adapters, CustomViews, and Helper classes
- Data module contains classes to access local storage, remote data source and their supporting classes
- Repository module contains repositories containing business logic and background workers.
- Common module contains data transfer object classes which help in parsing data between data source to UI
- Material design: Material Components for Android
- Jetpack navigation: For screen navigation
- Lifecycle-aware components: For usage of Lifecycle-aware components
- Hilt: For dependency injection
- Biometric: For biometric authentication
- Google barcode scanner: For scanning QR
- CameraX: For camera functionalities
- Custom Chrome Tabs: To support custom chrome tabs
- Room: For local storage
- Retrofit: For network calls
- GSON: For serialization/deserialization, and converting Java Objects into JSON, and back
- Crypto: For storing data in an encrypted format
- SQL Cipher: For encrypting Sqlite DB data
- SHC decoder: For decoding SHC data to check vaccination status
- Snowplow: For analytics
- App Auth Android: For performing single sign on during BCSC login
- Workmanager: For scheduling background tasks
After cloning the project, open the local.properties file under the project root folder, add the following information and Sync Project with Gradle Files:
USER = your_user_name TOKEN = your_github_personal_access_token
- Log in to your Github account
- Go to Settings/Developer settings
- On Personal access tokens, click Generate new token
- Add a note - i.e.: my-health-bc-android
- Set the expiration
- Check the following fields:
- workflow
- write:packages
- admin:org
- admin:public_key
- gist
- write:discussion
- project
- Click Generate token
Make sure to copy your personal access token now. You won’t be able to see it again.
Build variants used in the app
- devDebug
- devRelease
- prodDebug
- prodRelease
- stageDebug
- stageRelease
- Not applicable
- Before running the project on IDE, update local.properties file with valid USER and TOKEN values.
- https://dev.healthgateway.gov.bc.ca/api/medicationservice/swagger/index.html
- https://dev.healthgateway.gov.bc.ca/api/immunizationservice/swagger/index.html
- https://dev.healthgateway.gov.bc.ca/api/patientservice/swagger/index.html
- https://dev.healthgateway.gov.bc.ca/api/laboratoryservice/swagger/index.html
- https://dev.healthgateway.gov.bc.ca/swagger/index.html
Run the spotless plugin: ./gradlew :spotlessApply
In version name 1.2.3, 1 stands for major change and 2 stands for backend change, 3 stands for minor change or patch fix.
How is the app deployed and where?
Builds generated automatically, distributed on the Actions tab. CI/CD is implemented using Github actions
How is the app deployed and where?
Builds generated manually, distributed through Google Play.
List past and present contributors. Will S, Pinakin Kansara, Amit Metri, Rashmi Bambhania, Bruno Savoini