Frontend of the SIA (Signalen Informatievoorziening Amsterdam)
  • TypeScript 72.5%
  • JavaScript 27.2%
  • CSS 0.2%
Find a file
2026-07-14 15:50:14 +02:00
.github Add ai assisted coding checkbox in github PR template (#3350) 2026-07-01 10:33:12 +02:00
.husky Update dependencies (#2947) 2024-09-10 14:55:18 +02:00
assets Add a11y docs (#3001) 2024-10-31 15:05:50 +01:00
docs [Chore]: add docs for validators (#2717) 2023-09-28 10:24:11 +02:00
internals Remove crypto fallback (#3242) 2025-09-01 11:44:07 +02:00
src sets page size for users to 1000 in toewijzen aan feature (#3352) 2026-07-14 15:50:14 +02:00
.dockerignore [SIG-1460] Removes .scss files 2021-11-17 11:39:13 +01:00
.editorconfig Clean up linting configuration 2021-03-30 08:18:25 +02:00
.eslintignore Remove e2e tests (#2946) 2024-09-10 14:13:41 +02:00
.eslintrc.js Update dependencies (#2890) 2024-07-08 16:28:59 +02:00
.gitattributes [SIG-1460] Removes .scss files 2021-11-17 11:39:13 +01:00
.gitignore Remove e2e tests (#2946) 2024-09-10 14:13:41 +02:00
.nvmrc [feat-7167]: Update dependencies (#3322) 2026-03-13 16:22:35 +01:00
.prettierignore Remove e2e tests (#2946) 2024-09-10 14:13:41 +02:00
.prettierrc Add prettier rule semi false 2021-04-15 08:33:38 +02:00
app.amsterdam.json Change projectmatig onderhoud to projectverzoek (#3184) 2025-05-26 13:02:35 +02:00
app.base.json Change projectmatig onderhoud to projectverzoek (#3184) 2025-05-26 13:02:35 +02:00
babel.config.js (Chore) Improve production bundle size (#1890) 2021-11-23 09:06:22 +01:00
custom.d.ts Removes .svg?url references 2022-01-24 17:10:54 +01:00
default.conf ci: add X-Frame-Options DENY header (#3162) 2025-05-26 10:58:21 +02:00
docker-compose.yml Remove e2e tests (#2946) 2024-09-10 14:13:41 +02:00
Dockerfile [feat-7167]: Update dependencies (#3322) 2026-03-13 16:22:35 +01:00
jest.config.js Update MSW (#2939) 2024-09-09 11:08:45 +02:00
jsconfig.json Update code formatting 2021-04-15 08:35:52 +02:00
LICENSE Initial commit 2018-06-07 14:02:31 +02:00
lint-staged.config.js Update dependencies (#2947) 2024-09-10 14:55:18 +02:00
Makefile Remove e2e tests (#2946) 2024-09-10 14:13:41 +02:00
nginx.conf Switch to non-root container 2022-09-16 14:47:38 +02:00
package-lock.json Bump shell-quote from 1.8.1 to 1.8.4 (#3341) 2026-06-16 14:39:55 +02:00
package.json Bump react-router and react-router-dom (#3340) 2026-06-16 14:39:15 +02:00
publiccode.yml Add English to publiccode.yml 2021-07-23 11:20:18 +02:00
README.md [feat-7167]: Update dependencies (#3322) 2026-03-13 16:22:35 +01:00
start.sh Removes service worker timestamp 2021-06-24 13:51:48 +02:00
tsconfig.json (Chore) Improve tsconfig (#1830) 2021-10-28 09:54:43 +02:00

Signalen frontend

This project provides a web frontend for Signalen, an application that helps cities manage and prioritize nuisance reports.

Setup a development environment

Make sure you installed the following versions on your machine:

  • npm >= 8.9
  • node >= 24

Install the dependencies:

npm install

Note: If the installation fails this might be because some dependencies might need to be compiled.

And start the watch server:

npm start

The server listens on port 3001 by default. You can change the by setting the environment variable PORT.

Configuration

Configuration for theming, map and API endpoint URLs is defined in app.base.json. Override the default configuration by creating the file app.json. This file is ignored by Git. Changes to the configuration file will only be picked up when the development server is restarted.

You can use the environment variable CONFIG to specify a different filename instead of app.json to override the base configuration. Any app.*.json file will be ignored by Git (except for app.base.json). This is useful for having different configuration sets ready to go in development, when working for different municipalities for instance. Start the development server, with a specific configuration file to extend the base configuration, with the following command:

CONFIG=app.municipality.json npm start

Unit tests

Run the unit tests and generate a coverage report with:

npm test

Back office

It is possible to login manually on http://localhost:3001/manage with the following credentials:

Deployment

We provide Helm charts for production deployments of the Signalen stack on Kubernetes.

Pre-build images of the Signalen frontend are available on DockerHub. To build the frontend Docker image locally use:

docker build -t signalen/frontend .

Start the frontend server with a custom configuration as follows:

docker run -d -p 8080:8080 \
  -v /branding/app.json:/app.json \
  -v /branding/logo.png:/usr/share/nginx/html/logo.png \
  -v /branding/favicon.png:/usr/share/nginx/html/favicon.png \
  -v /branding/manifest.json:/usr/share/nginx/html/manifest.json \
  -v /branding/android.png:/usr/share/nginx/html/icon_192x192.png \
  -v /branding/ios.png:/usr/share/nginx/html/icon_180x180.png \
  signalen/frontend

The -v flags mount a custom configuration from the host in the container:

  • app.json with specific configuration for theming, map and API endpoint URLs.
  • The logo, as defined by logo.url in app.base.json (or app.json).
  • favicon.png the favicon, needs to be a PNG.
  • manifest.json with configuration for the PWA.
  • icon_...x....png the icons for the PWA in various sizes, need to be PNGs.

The logo displayed on the website is defined by the logo.url parameter in app.base.json. This can be a remote URL or a local file path. Define for instance (in app.json) /logo.svg and you can inject your own logo.svg when starting the docker container.

The manifest.json file for the PWA is generated by webpack, but you can overwrite it with your own configuration. This file also defines some icons, which, in turn, can be injected into the container as well.

There is an icon for android of 192 x 192 pixels in size, defined in manifest.json. For iOS there's an icon of 180 x 180 pixels in size, this is defined directly in index.html. All icons have to be PNGs. The icon for iOS must not contain transparency. For more information on icons see this Stack Overflow question and the Apple developer documentation.

Thanks to

BrowserStack Logo

The Dot icons (icon-dot and icon-dot-selected) made by Pixel perfect from www.flaticon.com.