This repository runs https://service.justiz.de/. We provide user-centered access to digital justice services. To find out more, check our project homepage
- Node (>= 22) + npm
- Docker (Redis, S3 bucket)
npm install
docker compose up -d
npm run dev
The app will be served on http://localhost:3000, assets are rebuilt on file save. Note: Environment variables are currently cached - changing them requires a restart of the app!
To explore the codebase, you can use this interactive code map.
There are several options for fetching content: Local CMS, staging CMS, local content file. To find out more, check /docs/content.md
.
- run:
npm run test
- run in watch mode:
npm run test:watch
- run with coverage:
npm run test:coverage
- run subset:
npm run test "STRING_TO_MATCH"
- run:
npm run test:e2e
- UI:
npm run test:e2e:ui
For more details, check /doc/e2e-tests.md
We use lefthook for running several pre-commit hooks, install them using npm run init
.
The git hooks check formatting, linting, unit tests, typecheck. You may execute them before committing using lefthook run pre-commit
. See lefthook.yaml
for more details.
Storybook containing our components is running on staging and preview. To run it locally, use npm run start:storybook
.
When running S3 LocalStack alongside an AVM FritzBox, you might encounter issues accessing LocalStack due to DNS rebind protection. For more details, you can check this guide and this discussion.
To resolve this, you need to allow localhost.localstack.cloud
in your FritzBox's DNS Rebind Protection settings. You can find step-by-step instructions here, and be sure to select your router model.
This project uses a hybrid approach to language in code, mixing English and German.
While technical implementation uses English (e.g., function validateData()
), domain-specific terms can be kept in German (e.g., hasRechtsschutzversicherung: boolean
).
This is crucial because many German administrative terms lack precise English equivalents, leading to inconsistencies and communication overhead when translated.
This hybrid approach ensures clear communication with domain experts and maintains code readability within our specific context.
While we acknowledge this might pose a barrier for non-German speaking contributors, we believe it's the most effective solution for our project.
We encourage contributors to ask questions about any unfamiliar German terms.
Everyone is welcome to contribute! You can contribute by giving feedback, adding issues, answering questions, providing documentation or opening pull requests. Please always follow the guidelines and our Code of Conduct.
To contribute code, simply open a pull request with your changes and it will be reviewed by someone from the team. By submitting a pull request you declare that you have the right to license your contribution to the DigitalService and the community under the MIT License.
Jede:r ist herzlich eingeladen, die Entwicklung der Project mitzugestalten. Du kannst einen Beitrag leisten, indem du Feedback gibst, Probleme beschreibst, Fragen beantwortest, die Dokumentation erweiterst, oder Pull-Requests eröffnest. Bitte befolge immer die Richtlinien und unseren Verhaltenskodex.
Um Code beizutragen erstelle einfach einen Pull Requests mit deinen Änderungen, dieser wird dann von einer Person aus dem Team überprüft. Durch das Eröffnen eines Pull-Request erklärst du ausdrücklich, dass du das Recht hast deine Beitrag an den DigitalService und die Community unter der MIT License zu lizenzieren.