/cwa-website

Corona-Warn-App website

Primary LanguageJavaScriptApache License 2.0Apache-2.0


Mozilla HTTP Observatory Grade

About this RepositoryDevelopmentDocumentationSupport and FeedbackHow to contributeLicensingWeb Site


Corona-Warn-App: Website

About this Repository

This repository contains the source files of the official website for the Corona-Warn-App as it is available at coronawarn.app. For information about the project, please see our documentation repository.

Development

Requirements

You need the Node.js 14 Maintenance LTS version of Node.js (which includes npm) to build the website. (cwa-website is not ready for the Node.js 16 Active LTS version.) Downloads for Node.js 14.18.1 are available from the Node.js - Previous Releases page.

Optionally, you need an HTTP Server such as http-server to run and test the deployment of the website locally.

Getting started

Clone the repository and ensure to have all requirements installed. To build the website, switch to the cwa-website base directory and execute the commands

npm install
npm run build

After a successful build, you'll have a new folder public in the repository's base directory. It contains the generated files for the complete website.

To test the generated content, simply execute the command

npm start

It will automatically use public as base directory and watch for file changes. Go to localhost:8000 to view the website.

If you want to build the website without optimizations, you can do so by running

npm run start-fast

This will disable image compression in exchange for faster build times.

Changing Things

Manuals for the most common use cases of updating website content are available in the docs folder.

Testing

Cypress is used to run End-To-End tests. tests are located in the cypress/integration folder and can be run with:

  npm run test:prepare
  npm run test

Alternatively, run npm run test:open for simpler test development. Be aware that you should only run one file after another and not click on Run all specs since the screenshot test library has a bug which causes falsy tests for Visual Comparison.

npm run test:prepare copies fixtures from ./cypress/fixtures that are required for e2e tests. Store your test assets there, if required.

IMPORTANT: In case Visual Comparison tests are failing after changes to css, header or footer, delete the .png files from ./cypress/integration/__image_screenshots__ and run the blog e2e tests with npm run test (without :open!) to recreate the screenshots. Additionally, apply the screenshots to the codebase.

Best practice is to use data-e2e="your_test_id" element attributes to select specific elements, eg cy.get('[data-e2e="cta-button-1"]').click() instead of cy.get('.container .infobox a.button').contains('DOWNLOAD').click().

Cypress under Microsoft Windows

If executing $ npm run test:prepare causes an error on Microsoft Windows

'.' is not recognized as an internal or external command,

ensure that git is installed and execute the following command:

npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"

Updating coronawarn.app

Any direct commits and merged pull requests will automatically trigger follow-up actions to build and deploy the changes to coronawarn.app. The respective GitHub Actions are available in the .github/workflows directory of this repository.

Documentation

The full documentation for the Corona-Warn-App can be found in the cwa-documentation repository. The documentation repository contains technical documents, architecture information, and white papers related to this implementation.

Support and Feedback

The following channels are available for discussions, feedback, and support requests:

Type Channel
General discussion, issues, bugs
Other requests

How to contribute

The German government has asked SAP and Deutsche Telekom AG to develop the Corona-Warn-App for Germany as open source software. Deutsche Telekom is providing the network and mobile technology and will operate and run the backend for the app in a safe, scalable and stable manner. SAP is responsible for the app development, its framework and the underlying platform. Therefore, development teams of SAP and Deutsche Telekom are contributing to this project. At the same time our commitment to open source means that we are enabling -in fact encouraging- all interested parties to contribute and become part of its developer community.

For more information about how to contribute, the project structure, as well as additional contribution information, see our Contribution Guidelines. By participating in this project, you agree to abide by its Code of Conduct at all times.

Repositories

A list of all public repositories from the Corona-Warn-App can be found here.

Licensing

Copyright (c) 2020-2021 Deutsche Telekom AG and SAP SE or an SAP affiliate company.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the LICENSE for the specific language governing permissions and limitations under the License.

The "Corona-Warn-App" logo is a registered trademark of The Press and Information Office of the Federal Government. For more information please see bundesregierung.de.