GithubHelp home page GithubHelp logo

admin-ch / covidcertificate-app-ios Goto Github PK

View Code? Open in Web Editor NEW
110.0 13.0 21.0 17.85 MB

CovidCertificate Apps for iOS

License: Mozilla Public License 2.0

Swift 97.76% Objective-C 0.92% C 0.02% HTML 1.30%

covidcertificate-app-ios's Introduction

COVID Certificate Apps - iOS

License: MPL 2.0

This project is released by the the Federal Office of Information Technology, Systems and Telecommunication FOITT on behalf of the Federal Office of Public Health FOPH. The app design, UX and implementation was done by Ubique.

COVID Certificate App

COVID Certificate is the official app for storing and presenting COVID certificates issued in Switzerland. The certificates are kept and checked locally on the user's phone.

Download on the App Store

COVID Certificate Check App

COVID Certificate Check is the official app for checking COVID certificates in Switzerland. The validation is executed locally on the phone and no information of the scanned certificates is saved.

Download on the App Store

Contribution Guide

This project is truly open-source and we welcome any feedback on the code regarding both the implementation and security aspects.

Bugs or potential problems should be reported using Github issues. We welcome all pull requests that improve the quality of the source code. Please note that the app will be available with approved translations in English, German, French, Italian.

Repositories

Installation and Building

The project should be opened with the Xcode 12.5 or newer. Dependencies are managed with Swift Package Manager, no further setup is needed.

License

This project is licensed under the terms of the MPL 2 license. See the LICENSE file for details.

covidcertificate-app-ios's People

Contributors

alexandrereol avatar bastianmorath avatar benz-ubique avatar goebelub avatar martinreichart avatar noahfetz avatar stmitt avatar ubaggeler avatar ubamrein avatar ubfelix avatar zimmermannubique avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

covidcertificate-app-ios's Issues

iOs version on old iPhones deletes certificates

The app deleted all certificates on an iPhone SE. Two questions?
a) are you aware of this issue?
b) is there a way to obtain the certificate back automatically (was obtained using a transfer code)

cheers

Suggestions - Scan Efficiency

I have 2 suggestions regarding scanning efficiency.

First, make QR codes scannable even during the display of the spinner, and green or red checkmark. This makes it possible to scan the certificates of people that pre-emptively self-validate much faster.

Second, remove or significantly enlargen the square on the checking app in the middle of the screen. It gives the users the idea that they must place the QR codes exactly in the square, but since it would be scanned on the whole area, the effect is that the QR code is unnecessarily small and thus even more unreliable to scan.

Covid Check App - Add 2G rule Check

It would be really nice, to see if the checked covid certificate is corresponding to the 2G rule or not.

Now we have to check everytime the certificate itself and this is tedious work, which can be optimized.
In this way it would be much faster. And i think there will be many 2G checks soon.
I was looking in the API but you can't see this information yet.

Passbook Support

It would be great to have a passbook support for IOS Devices such that the Certificate / QR Code can be displayed through the integrated passbook.

Correct Display the Booster Vaccination not as Incomplete

Swiss Covid App shows Booster Vaccinations as Incomplete Vaccinations
in my certificate i have 3 doses of a total of 2 needed.

I expect the same on the android version

diff --git a/Wallet/Screens/Certificates/CertificateDetailView.swift b/Wallet/Screens/Certificates/CertificateDetailView.swift
index ebfb2d9..4c89e1d 100644
--- a/Wallet/Screens/Certificates/CertificateDetailView.swift
+++ b/Wallet/Screens/Certificates/CertificateDetailView.swift
@@ -81,7 +81,7 @@ class CertificateDetailView: UIView {

     addDividerLine()
  •    if vaccinations.allSatisfy({ $0.doseNumber == $0.totalDoses }) {
    
  •    if vaccinations.allSatisfy({ $0.doseNumber >= $0.totalDoses }) {
           addTitle(title: UBLocalized.translationWithEnglish(key: .covid_certificate_vaccination_title_key))
       } else {
           addTitle(title: UBLocalized.translationWithEnglish(key: .wallet_certificate_type_incomplete_vaccine_key))
    

diff --git a/Wallet/Screens/Certificates/CertificateDetailViewController.swift b/Wallet/Screens/Certificates/CertificateDetailViewController.swift
index 2035dcf..4df70b5 100644
--- a/Wallet/Screens/Certificates/CertificateDetailViewController.swift
+++ b/Wallet/Screens/Certificates/CertificateDetailViewController.swift
@@ -247,7 +247,7 @@ class CertificateDetailViewController: ViewController {
case let .success(holder):
guard let certificate = holder.certificate as? DCCCert else { break }
let vaccinations = certificate.vaccinations ?? []

  •        if !vaccinations.allSatisfy({ $0.doseNumber == $0.totalDoses }) {
    
  •        if !vaccinations.allSatisfy({ $0.doseNumber >= $0.totalDoses }) {
               title = UBLocalized.wallet_certificate_evidence_title.uppercased()
           }
       case .failure:
    

Switch phone brightness to 100% when viewing a certificate

Since Covid certificate QR codes are meant to be read by various devices, I think it would be a good idea to have the app switch the phone brightness to 100% automatically when viewing a particular certificate. This would be similar to QR code based ticketing applications, such as the SBB app.

2G+ verification gives ambiguous display

The verification screen for 2G+ returns a very positive and green result, even if a test results still needs to be checked.

This is the result with a certificate of a person who doesn't needs to show an additional test certificate because they have been vaccinated more recently than 4 months ago:
2G+ without Test required

This is the display when a test is still required:
2G+ with Test required

For the average user, the difference is not clear enough, as both of them pop up as green screens. My personal recommendation, although I'm not a designer, would be to have a different color (maybe yellow for warning or blue for info) to be clear that an additional test certificate is still needed. Or one would have to scan a test certificate subsequently for the green checkmark screen.

Booster after Johnson&Johnson does not reset duration

Hi,

getting a booster shot (in my case of Pfizer) after one dose of J&J single dose vaccine does not reset the duration to 1 year after the booster. However, a booster after 2 shots of AZ, Pfizer, Moderna and etc. giving a total of 3 shots does reset the duration to one year after the booster.

As far as I know, getting a booster shot in Switzerland resets the duration to 1 year after it, but I couldn't find anything about getting a booster shot after the J&J vaccine and the rules about the certificate duration.

The vaccination certificates which I used as reference (1x J&J and 1x Pfizer booster/2x AZ and 1x Moderna booster) are both from a foreign country but using the Covid Cert app. The J&J/Pfizer still has the duration as 365+21 days from the original dose of J&J while the AZ/Moderna has it now set as 364 days after the booster dose of Moderna.

Suggestion: Better 2G+ Check-Flow

When checking 2G+ certificate-requirement, if someone presents a valid 2G-certificate, that does not exempt from a separate test-certificate, one has to switch between different modes constantly (check in 2G+ mode, notice that a test is required, then change to "Test" mode, check the test certificate).
My suggestion is to implement another button "Testzertifikat" which would switch to "Test"-mode, and open the scanner, and then display the usual information for test-certificates; and upon clicking "OK" in the test-window, changes back to 2G+ mode.

Mockup:

mockup-2gplus

Suggestion: Apple Watch app

It would be great to be able to display the certificate on the Apple Watch including a complication for easy access from the watch face.

Covid Check QRcode Crash App (dos)

Hello,

Small issue, a person could generate a QR code readable by the application (with an invalid signature), with the parameter "dn" containing the value 99999999999999999999999999999999999, the application will crashes each time the QR code is scanned, the problem is also present on Covid Cert but less problematic, indeed a possible scenario (with a bit of social engineering) is that a person creates a QR code with the payload that crashes the application and presents it to a third party (a restaurant for example), The third party can't check the validity of the certificate because the application will crashes at each scan, the third party could let the access to these services thinking that the certificate is valid and that it's a bug of the application. (Scenario maybe extreme but with a lot of chances that it works).

Only tested on IOS

Payload : { "ver": "1.0.0", "nam": { "fn": "foo", "fnt": "FOO", "gn": "bar", "gnt": "BAR" }, "dob": "2000-03-01", "v": [ { "tg": "840539006", "vp": "1119305005", "mp": "EU/1/20/1528", "ma": "ORG-100030215", "dn": 99999999999999999999999999999999999, "sd": 2, "dt": "2021302-18", "co": "AT", "is": "BMSGPK Austria", "ci": "urn:uvci:01:AT:10807843F94AEE0EE5093FBC254BD813P" } ] }

QRcode Payload : HC1:NCFOXN%TSMAHN-HNL458GI3VR%8S3I0IIC+V 43G-VC9BWH2.W7%$CML9J77D*QQHIZC4TPIFRMLNKNM8JI0EUG*%NH$RSC9$HFE1E0QV1FD/Y4J1ER6W9NT9KP-FHTNP/78LSIT7AZI9$JAYHIXGGX2M KM1GGMJCQ SA KZ*U0I1-I0*OC6H0/VMNPM Q5TM8*N9-I06H00YQK*R3T3+7A.N88J4R$F/MAITH-+R2YBV44PZBBAKO1P9-8:0L.A5R8HM*G64TQCV5RQLCUU5WY31-LH/CJ6IAACG423%B04LT HBSZ46/45/G3ZCIATULV:SNS8F-67N%21Q21$4ZW4Z*AKWIX:S:+IZW4PHBO33BC786B*E3-433QBV53XEBW77WNN+FNULJ96B4UN*97$IJV7776B3D3CZK7%2RZ4QWCS46147TMHS6ML*H:/E6 N$YPQ98ZF0HYGKZNZXVB NEHFXHV$0T2VMF%UVRC-/623WU-F*NF$:II947HAT6UPDMUIP6 4JXD-5W7GGLZQ-TEB403SRF2

qrcode

Hoping to have helped ^^

Feature request: Copy transfer code to clipboard

As some systems allow providing a transfercode when registering for a COVID-test, it would help for the following reasons;
also the time to implement should be minimal.

  • Prevent the user from switching back and forth to validate the code when manually copying (between app and registation form when doing it on the same device)
  • Prevent failed registation attempts (in cases where the transfercode wasn't copied correctly)
  • With shared clipboards this could even help if the registration does not happen on the same device

Limit number of imported certificates, warn users

I have noticed that venues are using the Covid Certificate app instead of Covid Check.

The app should not allow more than e.g. 10 or 20 certificate. Additionally, it should warn users adding more than three:
"This app should not be used to verify certificates. You should only scan your own certificates. Please use Covid Check instead to verify your guests certificates".

Covid Apps

Wieso integriert man das neue Zertifikat nicht gleich in die SwissCovid App? Verstehe nicht ganz das jede App einzeln sein muss.

Remove the Refresh/Green Checkmark validity indication

Restaurants, fitness centers, etc. use the green checkmark after the refresh to trust the validity of the certificate instead of scanning the QR code. This is insecure however: every "schwurbler" can simply clone this repository and slightly modify the app to always show a green checkmark, regardless of what is shown in the QR code and enter an otherwise off-limit area.

[COVID Certificate Check App]: Suggestion to omit need to click «verify» after switching to app

The current behaviour of the COVID Certificate Check App on iOS is as follows:

  1. Open the COVID Certificate Check app
  2. Click «verify»
  3. Verify certificates
  4. Switch to a different app (for example to check some other related information)
  5. Switch back to the COVID Certificate Check app
  6. You need to start over at step 2 and click «verify» again

In cases where you often have to switch between apps, this extra click quickly feels inefficent and unnecessary.

Suggestion for improvement:

It would be nice if after switching back to the app, one could immediately be at step 3 and verify the next certificate right away.

Transfer Code Expiry too short

Transfer codes expire after 7 days. It seems that local authorities are not able to meet this timeline. Would it me feasible to extend the expiry to 14 days until the processes have been established?

Dark Mode

A simple dark mode similar in theme to the SwissCovid, MeteoSwiss etc. apps would be nice.

Use regular QR code pattern for Covid certificate light

The Covid certificate light uses a different type of QR code pattern, with smaller dots, making it harder for devices to read. You need better lighting conditions and less movement. I think it would be a good idea if Covid certificate light would use the standard QR code pattern as well and use a different indicator to distinguish itself from the regular Covid certificate.

Localization

I am trying to localize the app in another language not provided by the default code.
Added new localized strings but How It Works page seems that is not using info from localized documents and keep appearing in english.
How can I translated it too?

fake Certificate

I'm currently watching SRF and there is a claim about with the fake Covid certificate you can fool the app. Do you have any information about it?

Add new certificate from downloaded PDF certificate

Yesterday I had my second vaccination and I received an SMS that I can download the COVID certificate as PDF from https://be.vacme.ch/. I've downloaded the PDF to my iPhone. As a next step I wanted to add this certificate into your app. I saw that this is not possible, because I can just use the camera to add a certificate. So I need to download it a again on second device and then use my iPhone to add the certificate to your app. Are you serious?

iOS Widget support

It would come in really handy when widgets would be supported to quickly show the certificate.

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.