A call for papers and scheduling system for conferences. The API and its background worker
live in api/, the web client in web/.
Requires Node.js 26, pnpm and Docker.
pnpm installdocker compose up -d --waitpnpm --filter api mikro-orm migration:uppnpm --filter api mikro-orm seeder:runpnpm --filter api start, andpnpm --filter web startin another terminal
The API listens on http://localhost:12001 and, outside production, serves its OpenAPI
reference at http://localhost:12001/openapi. The web client runs on http://localhost:12000;
web/public/runtime-env.js points it at the local API and the mock sign-in provider that
compose starts. Mail sent in development lands in Mailpit at http://localhost:12004.
pnpm typecheck checks both packages. pnpm test runs both suites, so bring the API's
services up first:
docker compose up -d --wait postgres-test oidc s3docker compose run --rm s3-init
The API's tests run on node:test against a tmpfs-backed Postgres instance (postgres-test
in compose.yml). The harness migrates a template database once per run; each test worker
clones it on demand. They log fatal errors only; LOG_LEVEL=debug pnpm test shows everything.
The web tests run under Vitest; the browser ones drive a headless Chrome, which has to be installed on the machine.
See CONTRIBUTING.md.
Licensed under the Apache License 2.0.