Check EU Digitial Covid Certificates with ease and validate them against country and local rules.

Overview

Logo Covid Validator

Check EU Digitial Covid Certificates with ease and validate them against local or country rules.

What is the purpose of CovidValidator?

CovidValidator allows you to scan and validate EU Digital Covid Certificates based on country or local rules. It gives the person that checks the certificate only as little personal information as possible to protect the users' privacy. This web app is an alternative to other existing products because it does not rely on certain app stores or country restrictions.

What does BETA mean?

The web app is still in active development and might contain minor bugs. The production use of this app is not recommended yet, so please use it with caution. Updates will come regularly.

What rules are being used?

At the moment, the app uses the official EU DCC Validation Rules to validate the certificate. These rules are being provided by the member countries of the Digital Covid Certificate. It is a known problem that those rules might be out of date and do not reflect state or local regulations. This project is working on a custom rule builder that allows more precise rules for local regulations. You can follow the development here.

EU Digital Covid Certificate

A EU Digital Covid Certificate (EU DCC) is a digital proof that a person has been vaccinated against COVID-19, has recovered from COVID-19 or has a test result. Therefore, the EU Digital COVID Certificate refers collectively to 3 types of certificates: vaccination, recovery and test. (ref)

Key features of the certificate (ref)

  • Digital and/or paper format
  • with QR code
  • free of charge
  • in national language and English
  • safe and secure
  • valid in all EU countries

Signature Verification

The QR code on every certificate has a digital signature to protect it against falsification and it is being checked every time the QR code is scanned. Those signatures are being created by issuing entities, like hospitals, test centers, and health authorities. The public keys are shared through a European gateway with the member countries. The countries then provide additional software to allow the download of those keys. Read more about the update flow here.

CovidValidation uses a Github Action to fetch the newest DSC list once a day from the following API.

The verification takes place in async function verifyDCC(dcc: DCC): Promise<boolean> (link). Every time a certificate is scanned, the app checks for the kid in the CBOR Web Token and searches for the matching DSC. If no kid is available, then all DSCs will be used to verify the certificate. The app uses cose-js to verify the signature of the DCC. If the check fails, the user will get an error message that the certificate is technically invalid.

More Information

Test Data

You can find a repository with test certificates here.

IMPORTANT: At the moment CovidValidator only supports production certificates. The debug build will soon handle test certificates as well.

EU DCC Validation Rules

The EU DCC Validation Rules allow a verifier to check if a DCC holder fulfills all requirements to enter a country. You, as a verifier, can change the rules by selecting a different country in the app. Always make sure to select the rules that are required by law in your country, otherwise the verification results might be invalid.

CovidValidation uses a Github Action to fetch the newest rules and value sets once a day from the EU Digital COVID Certificate Business Rule Service.

For reference implementations, please refer to github.com/ehn-dcc-development/dgc-business-rules.

Getting Started

NEXT_PUBLIC_CONTACT_NAME=xxx
NEXT_PUBLIC_CONTACT_ADDRESS=xxx
NEXT_PUBLIC_CONTACT_ADDRESS_CITY=xxx
NEXT_PUBLIC_CONTACT_ADDRESS_COUNTRY=xxx
NEXT_PUBLIC_CONTACT_EMAIL=xxx
NEXT_PUBLIC_CONTACT_WEBSITE=covidvalidator.app
NEXT_PUBLIC_VERSION=0.0.1
npm install
npm run dev

Developer Notes

The QR code reader needs to run over localhost or SSL to work. For the local development, follow the script on https://github.com/vercel/next.js/discussions/10935#discussioncomment-1540436 and run ipconfig getifaddr en0 to get your address. Now you can access your dev build via HTTPS on your network.

i18n

The app uses i18next for internationalization. We want to offer this app to as many people as possible therefore native translations are important. We welcome anyone to help us translate this app. To do so, follow these steps:

  1. If the language does not exist, create a folder in /translations and copy the files /translations/en/common.json and /translations/en/country.json in that folder
  2. Translate the existing values in those files and make sure you do not change the key
  3. In case of a new language, please follow the next three steps, otherwise jump to 4) a) Add the translation for the new language to the other common.json files b) Add the language key to the const availableLanguages = ['en', 'de'] array in components/modal/settings.tsx c) Add the i18next resource to pages/_app.tsx similar to the other languages
  4. Save and commit your changes

Note: If you do not add a translation in any given language, the app will default to English.


Made with for the community

Comments
  • Custom Rule Builder

    Custom Rule Builder

    Rules change so much nowadays that it is almost impossible to keep up with the regulations. Every state and sometimes even every city or company have their own rules. We can offer a rule builder where companies can create their own rule set that meet their need.

    • [x] Create overview of current regulations
    • [x] Implement rule build that allows to create custom rules
    • [x] Save custom rules in local storage
    enhancement 
    opened by timokoenig 12
  • Make this a PWA (standalone display mode)

    Make this a PWA (standalone display mode)

    It would be great to have this app as a PWA, like schnelltesttest.de. This means that if the user adds this page to the Home Screen, an "Web App" is created. Thus, the user doesn't see the Safari elements anymore at all but only the app.

    I hope you understand what I mean 😅

    opened by Ein-Tim 4
  • French translation

    French translation

    This PR adds French translation.

    Disclaimer

    As I am still learning French and I'm not a native French speaker, I can't guarantee that everything is 100% correct. Maybe someone from the community who speaks French would like to look at this or improve it later on?

    opened by Ein-Tim 3
  • Select language before onboarding / based on default language

    Select language before onboarding / based on default language

    If a user accesses the site for the first time, the onboarding is shown. However, there is no option to change the language prior to this at the moment.

    This should be possible.

    enhancement 
    opened by Ein-Tim 3
  • Camera does not open

    Camera does not open

    Sometimes the camera does not open and nothing is shown. Seems to be a bigger problem for Android devices.

    • [x] Show error message to user so that he knows something is wrong
    • [x] Fix problem that camera does not open, might be a permission issue
    bug 
    opened by timokoenig 2
  • Add accordion component for information text

    Add accordion component for information text

    We should reduce the amount of text that is shown on the index page. To do so we will implement the accordion component for the information sections. This will make it more appealing to the user

    enhancement 
    opened by timokoenig 1
  • Automatically close Result view after x seconds

    Automatically close Result view after x seconds

    On a few occasions I noticed that the verifier left the result view open after successfully scanning a certificate. This is a potential privacy issue if the device would be left unattended because of the Name and Birthdate that is being displayed there.

    The idea is to automatically close the result view after x (maybe 20 or 30) seconds to remove the personal information from the previous scan.

    enhancement 
    opened by timokoenig 1
  • List all available rules for the selected country / state

    List all available rules for the selected country / state

    We want to make sure that the user checks against the right rule set for their specific purpose. In this case the user need to have a list of the rules that has been selected. If this list is available on the website the user is able to check manually against the local regulations. Without this feature the user would need to trust that the app is always right.

    When a user selects new rules, he will get a modal view with all available rules for the selection. He then needs to confirm that he checked those rules for correctness.

    enhancement 
    opened by timokoenig 1
  • Snapshot tests

    Snapshot tests

    This PR adds snapshot tests to the project to see any unintended UI changes.

    Open TODOs

    • [x] Add more component snapshot tests
    • [x] Find a way to create snapshot tests for modals
    enhancement 
    opened by timokoenig 0
  • Add support for SMART Health Cards?

    Add support for SMART Health Cards?

    A private national vaccine pass has rolled out in the US that allows the verification of a vaccination history or tests in the context of COVID-19. To date there are 21 states, the District of Columbia, and Puerto Rico connected to the system. More states will follow soon. Implementing the system in the CovidValidator would allow a verifier to scan these people as well as holder of a EU Digital Covid Certificate with the same app.

    Any thoughts?

    Open Question:

    • Does the SMART Health Card provide all information needed to be used in the EU?
    • How do we verify the SMART Health Cards?
    • Can we apply EU business rules to the data on those cards?
    • Are there possibly other COVID vaccination cards that we want to include in CovidValidator?

    More Information https://vci.org https://smarthealth.cards/en/ https://build.fhir.org/ig/HL7/fhir-shc-vaccination-ig/

    question 
    opened by timokoenig 0
  • Show Rule Changes

    Show Rule Changes

    Rule changes happen in the background and the user will most likely not see them. Add some sort of notification when the user opens the app to show all rule changes. Then the user has the chance to confirm those changes or select different rules

    enhancement 
    opened by timokoenig 0
  • Documentation of signature check

    Documentation of signature check

    Dear @timokoenig ,

    this is awesome. I will recommend it to some EU public sector bodies.

    Can you please tell me how the verification of signatures is realised and where the certificates come from? I think it would be useful to cover this aspect in the readme.

    Have a nice day!

    opened by rriemann 5
  • Share custom validation rules with others

    Share custom validation rules with others

    Some companies might define custom rules that they want to share with others. We do not want to have a database to save these rules therefore the defined rules will only be saved in the local storage where they can be exported via QR code that the other person can scan to import.

    enhancement 
    opened by timokoenig 0
  • Add possible reasons why scanned certificate is invalid

    Add possible reasons why scanned certificate is invalid

    Add some common reasons to the error result view to make it easier identifying the issue without giving too much information to the person that checks the certificate.

    enhancement 
    opened by timokoenig 0
Releases(v1.5.0)
  • v1.5.0(Apr 4, 2022)

  • v1.4.0(Mar 15, 2022)

  • v1.3.0(Mar 5, 2022)

  • v1.2.0(Mar 3, 2022)

    Features

    • Add Polish 🇵🇱 and Lithuanian 🇱🇹 translations
    • Close valid scan modal after 30 seconds automatically to improve users data privacy
    • Invalidate fraudulent certificates

    Bugfixes

    • Add value sets to certlogic
    • Parse unix timestamp with moment-js
    • Only allow valid RAT tests within Germany
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Feb 26, 2022)

  • v1.1.0(Feb 24, 2022)

    Features

    • Add support for test certificates that are considered a recovery (positive tests after 28 days)

    • Reduce recovery period for Germany to 90 days

    • 1G+ or 2G+ scan series can start with all certificate types; before that the user had to start with a vaccination certificate

    • The verifier will get an additional message if the name on both certificates do not match

    • Add feature to exclude people with a booster certificates from providing a test certificate

      • Screen Shot 2022-02-24 at 22 34 13
    • Refactor some code and add unit tests

    • Add feature to use demo certificates (see README)

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Feb 22, 2022)

    This is our first stable release v1.0.0 🎉

    New Features

    • UI Improvements for all devices
    • System color mode will be default until user choses light or dark mode
    • Add new translations
    • Deploy Rule Builder v2

    The rule builder will stay in BETA but this will not affect the CovidValidator itself!

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Feb 17, 2022)

    Features

    • Change app icon to make it look cleaner
    • Show error message when user scans a wrong QR code
    • Improve scan quality
    • Update DSCs and EU rules
    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Feb 15, 2022)

  • v0.4.1(Feb 12, 2022)

  • v0.4.0(Feb 10, 2022)

    Feature

    • Scan counter to keep track of entry admission criteria
    • Update DSC list and EU DCC to validate and verify the certificates
    • Update documentation on Github
    • Disable multiscan for all countries except Germany
    • Replace flag icons with svg flag-icons module
    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Feb 9, 2022)

  • v0.3.0(Feb 8, 2022)

    Feature

    • Add translations for English / German
    • Auto-detect browsers language
    • Show number of rules that have been checked
    • Check rule meta data, like type and validFrom/validTo

    Bug

    • Removed width and height of Webcam component because it caused the camera to disappear
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Feb 7, 2022)

    Features

    • Add robots.txt
    • Update dependencies
    • Add button to switch between front and back camera
    • Change internal file size when scanning the QR code
    • Show error when user denies access to camera
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Feb 6, 2022)

A web app built with Covid-19-API that displays Covid 19 cases, deaths and recovery per country in the entire World

Covid19 Tracker A web app built with Covid-19-API that displays Covid 19 cases, deaths and recovery per country in the entire World Built With HTML, C

Promise Okechukwu 4 Nov 1, 2022
This is a TypeScript/JavaScript library which verifies the QR codes of certificates issued by the South African COVID-19 Vaccine Certificate System.

This is a TypeScript/JavaScript library which verifies the QR codes of certificates issued by the South African COVID-19 Vaccine Certificate System.

Adrian Frith 2 Feb 16, 2022
Website yang memberikan informasi terkait ketersediaan rumah sakit dan tempat tidur rumah sakit untuk pasien covid-19 ataupun non-covid di Indonesia.

Bed Covid RS Indonesia Website yang memberikan informasi terkait ketersediaan rumah sakit dan tempat tidur rumah sakit untuk pasien covid-19 ataupun n

Hendra Agil Syaputra 22 Oct 23, 2022
Worldwide-covid-statistics - covid-19 tracker developed using Reactjs, Axios , chartjs, material icons

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Akinmegha Temitope Samuel 1 Jan 3, 2022
Covid-19 Tracker is a mobile web application showcasing the covid-19 statistics in Africa.

Covid-19 Tracker is a mobile web application showcasing the covid-19 statistics in Africa. when the user clicks on the countries' cards, they will be rendered to the details page that contains more information about the covid-19 in the selected country. Also, the user can search for a specific country using the search bar.

Nedjwa Bouraiou 7 Sep 6, 2022
A weather app done with React. Allows you to make a search for the current weather by simply typing "common knowledge" cities and save them to favourites on local storage.

Simpliest Weather React-App A weather app done with React. Allows you to make a search for the current weather by simply typing "common knowledge" cit

Larry Noriega 3 Aug 24, 2022
To eleventy and beyond! The all-in-one tool for templates where you want them, component frameworks where you need them 🚀

Slinkity ?? This project is heavily under construction! ?? As excited as you may be, we don't recommend this early alpha for production use. Still, gi

Benjamin Holmes 398 Dec 27, 2022
💚 Yet another mutli purpose discord bot, allowing you to maintain and manage your discord server with ease.

Jade Jade is once again another mutli purpose bot, allowing you to maintain and manage your discord server with ease. Completely open source or use th

Saige 1 Sep 13, 2022
🎉 toastify-react-native allows you to add notifications to your react-native app (ios, android) with ease. No more nonsense!

toastify-react-native ?? toastify-react-native allows you to add notifications to your react-native app (ios, android) with ease. No more nonsense! De

Zahid Ali 29 Oct 11, 2022
🌀 Insert Awesome Shapes into Your React Site with Ease

React Awesome Shapes ?? Insert Awesome Shapes into Your React Site with Ease. Loved the project? Please consider donating to help it improve! Consider

Ashutosh Hathidara 608 Dec 30, 2022
USA Covid-19 Tracker is a mobile-first application built with React and Redux to give precise information about the virus behavior in the United States. Great transitions and user feedback made with plain CSS.

React.js USA Covid-19 Tracker This application allows the public to keep track of the stadistics of the Covid-19 Pandemic in the United Stated. You wi

Rafael Echart 14 Oct 25, 2022
A simple PWA to scan your EU digital COVID Certificate and generate a passbook from it

COVID-19 passbook Generator The aim of this project is to let a user scan a EU Digital COVID Certificate with their smartphone, and generate a passboo

Thibault Milan 129 Nov 11, 2022
Built a covid-19 trcaker app using React.js implementing hooks and materail UI

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Aditya Dond 1 Dec 21, 2021
Web application that tracks the covid-19 statistics in Chile and its regions.

Covid 19 Monitor Web page that shows the covid statistics of the country of Chile, all the confirmed cases, the deaths and also the daily statistics.

David Vergaray 6 Mar 17, 2022
⚡️ Look for Covid-19 Resources, Get Vaccine Availability Notification, Complete source code for covidrescue.co.in website.

covidrescue.co.in ⚡️ Get real-time, verified leads on Oxygen, Remdesivir, ICU, Beds, Food and more based on your location. Get notifications on Vaccin

Placeholder Tech 15 Jul 10, 2022
Get updates in Telegram when a vaccination center available in your pin code. We can win Covid 🤝

Cowin Bot Get updates in Telegram when an vaccination center available in your pin code. We can win Covid ?? Commands: /start - Start the Bot /help -

Tuhin Kanti Pal 14 Oct 3, 2022
Fill the boring catsalud covid vaccine form with a console command

vacunacovid-catsalud-autofullfill form Fill the boring catsalud covid vaccine form with a console command Manual use, pasting in the script in the con

null 18 Jul 27, 2021
Extract the JSON payload from SHC QR codes (i.e Québec Covid Vaccination QR Codes)

shc-extractor Extract the JSON payload from SHC QR Codes (i.e Québec COVID Vaccination QR Codes) Introduction Dans les prochains jours/semaines, les q

Olivier Brassard 160 Dec 16, 2022
An application to help in the automatic booking of COVID vaccination slots in India whenever they become available.

Co-WIN automated slot booking Automatically book vaccine slots as and when they become available This application aims to automatically book vaccine s

Arindam Ray 24 Nov 23, 2022