datenanfragen / website

The Datenanfragen.de website including the request PDF generator and company information database
https://www.datenanfragen.de
MIT License
95 stars 125 forks source link
eu-gdpr gdpr hugo pdf-generation preact privacy

The Datenanfragen.de website

This repository contains the source code for the Datenanfragen.de website.

Datenanfragen.de is an open source project by Datenanfragen.de e. V., a registered non-profit from Germany. We have made it our mission to help you exercise your right to privacy.
Through our website, we offer a generator for GDPR requests as well as access to our company and supervisory authority database (see this repository for the source behind this data) and comprehensive articles on the GDPR and privacy in general.

A screenshot of the datarequests.org homepage

Live versions of the website are currently available in German, English, French, Spanish, Croatian, Dutch, Portuguese, and Czech.

Development

Datenanfragen.de is designed as a static website, running on Hugo and Preact.

To build the project locally for development, follow these steps:

  1. Install Yarn 1 (Classic) and the extended(!) version of Hugo (v0.88.1).
  2. Clone the repo and run yarn in the root directory of the repo to fetch all required dependencies.
  3. Run the deploy script (./deploy.sh) to fetch and prepare the required resources from our data repository.
  4. Open two terminal windows. In the first, run yarn dev to start the Webpack file watcher, which will automatically build the JS files. In the second one, run hugo server to have Hugo continuously build the actual website and the SCSS.
  5. Now the website should be served by Hugo on multiple ports, starting from 1313, for the different language versions.

We recommend building and developing on Linux or macOS. If you are on Windows, use WSL.

Windows development tips ### Developing on Windows inside WSL - Install [ripgrep](https://github.com/BurntSushi/ripgrep) to speed up the merge conflict commit hook. - Developing tests with Cypress requires a GUI, which might not work with WSL. ### Developing on Windows outside of WSL - We do not recommend this, but it's possible. - You need to run the `deploy.sh` script once via some bash-like tool. Use WSL or Git Bash. - Use Node LTS and not the latest Node release (otherwise you might get Python errors). - To get around file name limitations ([#581](https://github.com/datenanfragen/website/issues/581)), run `$env:HUGO_DISABLEALIASES="true"` in the terminal that will run `hugo`. - Please make sure to only commit LF line endings. Configure your IDE or Git accordingly, or use some conversion tool. - Some commit hooks might not work on Windows. You can use `git commit --no-verify` carefully to get around this.
macOS development tips ### Increase the maximum file limit for processes Because `hugo server` registers a file watcher for every file in our repo and the number of files can get very large, you might get file watcher related errors. To fix, increase the file limit for processes on your computer (this change is temporary until you restart): ``` sudo sysctl -w kern.maxfiles=65536 ```

The production builds are done automatically by CircleCI using the deploy.sh script and deployed using dattel, our own static hosting solution (split into a server and client).

For testing, we use CircleCI in combination with Cypress (see more on our browser tests here). We previously used BrowserStack who kindly let us use their services.

Contributing

First of all, thank you very much for taking the time to contribute! Contributions are incredibly valuable for a project like ours.

We warmly welcome issues and pull requests through GitHub. You can also chat with us through our Matrix space. Feel free to ask questions, pitch your ideas, or just talk with the community.

Please be aware that by contributing, you agree for your work to be released under the MIT license, as specified in the LICENSE file.

If you are interested in contributing in other ways besides coding, we can also really use your help. Have a look at our contribute page for more details.

Translations

While you can just contribute translations through this repository, an easier way is through the localisation platform Weblate. We manage our translations through them. There, you can easily help us translate—be it a couple of strings or whole components.

If you're interested in chatting about our translation efforts, join our i18n room on Matrix.