Woordpeiler provides corpus-based temporal word frequencies and trend analysis. It consists of a Vue 3 + D3.js frontend, a Python FastAPI backend, a PostgreSQL/TimescaleDB database, and nginx proxy. Data is provided via a BlackLab corpus, specifically via the BlackLab FrequencyTool.
- Principal engineer: Vincent Prins (vincent.prins@ivdnt.org)
- Scientific advisor: Kris Heylen
A vscode workspace is available: .code-workspace.
Debug configurations for client & server are available: client/.vscode, server/.vscode.
Development requires a .env. Depending on you setup, you might have to copy over the .env to the respective subfolders.
# db config
POSTGRES_DB=woordpeiler
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
# builder also needs a port other than POSTGRES_PORT
BUILDER_PORT=5433
# user with write access, used by builder
POSTGRES_USER=postgres
POSTGRES_PASSWORD=[fill in]
# user with read access, used by server
READER_USER=reader
READER_PASSWORD=[fill in]
# docker image tag for server and client
VERSION=[dev | x.x.x]
# server settings
INTERNAL=[true | false]
# proxy settings
PROXY_PORT=80
# client settings folder with config.json and assets
CLIENT_CONFIG=[fill in]
# database docker volume name
DATABASE_VOLUME=[fill in]- Install node + npm (e.g. via nvm). See
client/Dockerfilefor the version. cd clientnpm inpm run dev, go tohttp://localhost:5173.
- Install python (e.g. via uv). See
server/Dockerfilefor the version cd serverpython -m venv .venv(oruv venv)source .venv/bin/activatepip install -r requirements.txt(oruv pip [...])fastapi dev, go tohttp://localhost:8000. Go tohttp://localhost:8000/docsfor the docs.
- Install docker, psql and python (see above). The python version matches the server.
cd database,python -m venv venv,source venv/bin/activate,pip install -r requirements.txt- For database creation, see
database/readme.md.
- Install locust (
pip install locust) either globally or create a venv. cd server/tests/load_testslocust, go tohttp://localhost:8089/
- Install docker.
git clone https://github.com/instituutnederlandsetaal/woordpeilercd woordpeiler.- Fill in the
.env. - For database creation, see
database/readme.md. docker compose up -d --force-recreate proxy- docker compose "depends_on" will up the rest.
- "force-recreate" will clear any cache.
Docker images are available on Docker Hub.