Elektronisch kandidaatstellingssysteem
  • Rust 84.9%
  • TypeScript 6.3%
  • HTML 6.1%
  • CSS 2.5%
  • Shell 0.1%
Find a file
Marlon 655f6bebd1
[#1194] Change list order (#1200)
Co-authored-by: Dré van Oorschot <dre.van.oorschot@technolution.nl>
2026-09-14 13:15:17 +02:00
.config Enforce newline at the end of every file 2025-12-09 16:24:22 +01:00
.github [#1204] Security in depth measures (#1205) 2026-09-14 12:25:02 +02:00
auth-service [#1204] Security in depth measures (#1205) 2026-09-14 12:25:02 +02:00
bin [#1178] Update feature flags and esbuild/biome (#1179) 2026-09-10 09:56:08 +02:00
deploy [#820] CSB authentication (#1118) 2026-09-01 12:03:57 +02:00
development [#1178] Update feature flags and esbuild/biome (#1179) 2026-09-10 09:56:08 +02:00
docs [#1183] Allow running the CSB app on a different port (#1184) 2026-09-14 09:18:02 +02:00
frontend [#1194] Change list order (#1200) 2026-09-14 13:15:17 +02:00
locales [#1194] Change list order (#1200) 2026-09-14 13:15:17 +02:00
playwright [#1107] Add the omission letter "verzuimbrief" and ZIP download (#1182) 2026-09-10 17:45:12 +02:00
src [#1194] Change list order (#1200) 2026-09-14 13:15:17 +02:00
tools [#1099] Generate election definition (#1015) 2026-09-03 14:14:23 +00:00
validate [#1204] Security in depth measures (#1205) 2026-09-14 12:25:02 +02:00
.env [#737] Improve code structure (#735) 2026-05-26 14:27:13 +00:00
.gitignore [#1051] Cycle checker: reject changes that introduce a cyclic dependency between top level modules (#1052) 2026-08-07 13:53:39 +02:00
askama.toml [#937] Textris markdown (#967) 2026-07-21 14:02:28 +02:00
biome.json [#1178] Update feature flags and esbuild/biome (#1179) 2026-09-10 09:56:08 +02:00
build.rs [#1099] Generate election definition (#1015) 2026-09-03 14:14:23 +00:00
Cargo.lock [#1203] Release Sprint 18 (#1206) 2026-09-14 09:26:41 +02:00
Cargo.toml [#1203] Release Sprint 18 (#1206) 2026-09-14 09:26:41 +02:00
clippy.toml [#867, #742] TVS authentication (#643) 2026-09-03 15:24:36 +02:00
compose.yml [#1180] Implement "Voorinlevering" (#1181) 2026-09-10 16:32:56 +02:00
CONTRIBUTING.md Add contributor and security policy 2025-12-01 10:58:02 +01:00
deny.toml [#867, #742] TVS authentication (#643) 2026-09-03 15:24:36 +02:00
djlint.toml feature/e-ks#140: implement release pipeline (#333) 2026-03-02 16:02:57 +01:00
dylint.toml [#1051] Cycle checker: reject changes that introduce a cyclic dependency between top level modules (#1052) 2026-08-07 13:53:39 +02:00
LICENSE EUPL v1.2 license 2025-12-01 10:16:52 +01:00
MasterElectionTree.xml [#1099] Generate election definition (#1015) 2026-09-03 14:14:23 +00:00
README.md [#705] Added technical documentation (#706) 2026-05-21 09:45:49 +02:00
rustfmt.toml Enforce newline at the end of every file 2025-12-09 16:24:22 +01:00
SECURITY.md Add contributor and security policy 2025-12-01 10:58:02 +01:00
sigrid.yaml [#1178] Update feature flags and esbuild/biome (#1179) 2026-09-10 09:56:08 +02:00
sonar-project.properties Exclude TS from codecoverage in sonarqube 2026-02-02 14:57:09 +01:00

Let op: dit project bevindt zich momenteel in een opstartfase. Documentatie en code zullen onvolledig en soms incorrect zijn.

e-KS

Om te kunnen deelnemen aan een verkiezing moet een politieke groepering aangeven met welke kandidaten ze mee wil doen. Hiervoor moeten ze verschillende documenten inleveren bij het centraal stembureau. Dit heet de kandidaatstellingsprocedure.

e-KS staat voor het elektronisch Kandidaatstellingssysteem: een webapplicatie waarmee de Kiesraad de huidige kandidaatstellingsprocedure op een eerlijke, transparante en controleerbare manier wil moderniseren. Het nieuwe systeem zal op termijn de huidige ondersteunende software (OSV2020-PP en OSV2020-KS) vervangen.

Requirements

De kandidaatstellingsprocedure is verankerd in de Kieswet.

Een overzicht van het huidige proces en e-KS is te lezen in deze presentatie.

Belangrijke stukken of formulieren voor de kandidaatstellingsprocedure zijn:

Technische architectuur

Een overzicht van de voorgestelde technische afwegingen staat in deze presentatie.

Een diepere duik in de technische architectuur is te vinden in deze documentatie.

Development setup

  1. Install prerequisites:
  1. Build and download development tools:
bin/init
  1. Start the development environment (postgres, esbuild, cargo watch, etc.):
bin/dev

Development tools

  • bin/esbuild: transpile and bundle Typescript and CSS, also services frontend assets in development
  • bin/biome: format and lint Typescript
  • bin/setup: download tools, setup database, load fixtures, etc.
  • bin/dev: start development environment (postgres, esbuild, cargo watch, etc.)
  • bin/test: run integration tests (playwright) in a docker conmtainer
  • bin/init: build and download development tools
  • bin/check: run linter, formatters and Rust tests
  • bin/build: build backend and frontend for production
  • bin/update_locales: update locale files based on used keys in the codebase

Playwright tests

Playwright lives in playwright. See playwright/README.md for setup and run instructions.