The Ministry of the Interior and Kingdom Relations is developing the Algorithm Register. The team does this using an open development style, through open source software. Anyone can view the team’s progress on the GitHub of the Ministry of the Interior and Kingdom Relations. The Algorithm Register is under development. The content changes over time. New algorithms are added and algorithms are updated. The Algorithm Register (algoritmes.overheid.nl) is being developed with open source software. The source code can be viewed here on GitHub. It can be downloaded and reused. Github is a platform with transparent version control, where technology in development can be easily shared.
The government increasingly works digitally and uses more and more algorithms when doing so. The government wants to work towards transparent and responsible use of these algorithms. Therefore, the government is making information about the algorithms used by the government available to everyone: citizens, their representatives, the media and (government) professionals. See the Frequently Asked Questions on the Algorithm Register for more information.
Will you join us and add your thoughts? To contribute, create an account on GitHub (https://github.com/signup ) and read this readme and the code of conduct to get started. Once signed-up, you can provide feedback on the code of this website, on the algorithm 'standard', on the published description or on the user-friendliness of the website, etc. Get started: join us and add your thoughts!
In order to run the application locally, the following tooling is required:
- Docker (installation instructions)
- Node.js. The version is specified in
frontend/.nvmrc
. It is recommended to use use Node version manager, the correct Node version can then be activated with withnvm use
. - Python. The version is specified in
backend/.python-version
. It is recommended to use pyenv to switch between Python versions, but this is not mandatory. - Poetry. See the docs for installation instructions.
The documentation below is tested on Ubuntu, but it should work on Windows as well.
Environment variables are stored in .env
, but because they can contain secrets (passwords), it is not in the repository. Therefore, copy and paste .env.dummy
to .env
. For local development, no changes are needed.
- Start database. Run from root folder:
docker compose up -d
.
Validate the backend is running by navigating to the GUI (DBgate) on http://localhost:8093
. There you should be able to open the database algreg_db
.
All commnands below should be run from the /backend
directory.
- Specify Python version to use for virtual environment:
poetry env use <python_version>
. (The required Python version is specified inbackend/.python-version
.) - Install packages:
poetry install
. - Run database migrations:
poetry run uvicorn upgrade head
. - Start backend:
poetry run uvicorn app.main:app --reload
Validate the backend is running by navigating to the documentation on http://localhost:8000/api-docs
.
- Install dependencies. Run from '
/frontend
:npm install
. - Start local server. Run from '
/frontend
:npm run dev -- -o
.
Validate the frontend is running by navigating to http://localhost:3000
.
- Start database from backend. Run from
/backend
:docker compose up -d
- Ensure latest migration has been completed. Run from
/backend
:poetry run alembic upgrade head
- Navigate to
/frontend
and runnpm run dev
. - Navigate to
/backend
and runpoetry run uvicorn app.main:app --reload
This project uses Volar. Install Volar in Visual Studio Code and enable take over mode to prevent unnecessary tslint errors:
- Run Extensions: Show Built-in Extensions command
- Update Volar to latest version.
- Run Extensions: Show Built-in Extensions command
- Find TypeScript and JavaScript Language Features, right click and select Disable (Workspace)
- Reload VSCode.
Note: Vue linting config inspired by a repository on Github.
Icons library can be found at https://icones.js.org/
.