Skip to content

Accessible frontend for Signalen, an open source application for municipalities for reports about the public space

License

Notifications You must be signed in to change notification settings

delta10/signalen-frontend-wcag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Signalen web form

We (Delta10 and Frameless) are developing a new web form for Signalen, an open source application for municipalities for reports about the public space.

Our goals are to:

The frontend can easily be customized by configuring a single JSON file.

Getting started as a developer

First, install the dependencies:

npm install

Set the environment variables in a .env file:

NEXT_PUBLIC_BASE_URL_API=http://127.0.0.1:8000
NEXT_PUBLIC_MAPTILER_API_KEY=
NEXT_PUBLIC_MAPTILER_MAP=https://api.maptiler.com/maps/nl-cartiqo-topo
NEXT_PUBLIC_PDOK_URL_API=https://api.pdok.nl/bzk/locatieserver/
NEXT_PUBLIC_MAPTILER_MAP_DARK_MODE=https://api.maptiler.com/maps/streets-v2-dark

Customize the .env configuration file for yourself:

  • NEXT_PUBLIC_MAPTILER_API_KEY: visit the MapTiler website and create a free account. Login to go to the API Keys page for MapTiler Cloud. Create a new key for your development computer. Allow localhost as origin. Copy the key and assign it to NEXT_PUBLIC_MAPTILER_API_KEY in .env.
  • NEXT_PUBLIC_MAPTILER_MAP: go the to Maps page for MapTiler Cloud and either pick an existing map or create a new map. Copy the first part of the "Use vector style" URL, everything before /style.json?key=. Assign that first part of the URL to NEXT_PUBLIC_MAPTILER_MAP.
  • Users can specify a different map theme for dark mode, which is triggered when the browser's preferred style theme is set to dark. To implement this, set the NEXT_PUBLIC_MAPTILER_MAP_DARK_MODE environment variable to the desired dark mode theme.

Then start the Next.js development server:

npm run dev

Open http://localhost:3000 with your browser to see the web form.

End-to-end tests

To run the end-to-end tests you need to have the "headless browsers" installed. Headless browsers are invisible browsers that run from the command line.

npm run install-test-browsers

The end-to-end tests work best when you build the project and start the production server on localhost:3000 with:

npm run build
npm run start

While leaving the server on localhost:3000 running, you can run the end to end tests in a separate terminal with:

npm run test-e2e

To view the results run the following command and open the test results page on localhost:9323:

npx playwright show-report tmp/playwright-html-report

Multilanguage support

To set up and try out multilanguage support add the following lines to the config.json:

"supportedLanguages": [
  ...,
  {
    "label": "Switch to English",
    "lang": "en",
    "name": "English"
  }
 ]

Techniques

  • Next.js with the App Router for the web application.
  • NL Design System for components.
  • React Hook Form for form logic, validation, and more.
  • Zod for object validation.
  • zustand for global state management.
  • next-intl for internationalization (i18n), enabling multi-language support in the frontend.

About

Accessible frontend for Signalen, an open source application for municipalities for reports about the public space

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages