Make your voice heard.
Soon (but not yet) available here.
This project is 100% generated using AI and agentic workflows.
Requirements:
fnm(eg:brew install fnm)- add
eval "$(fnm env --use-on-cd)"into your~/.zprofileor~/.profile
Setup:
fnm install # nodejs from .nvmrc
npm install -g corepack
corepack enable # package manager from package.json
corepack install # package manager from package.json
pnpm install # install deps
export $(grep -v '^#' .env | xargs) # load-scenarios env vars
pnpm env:down # remove docker containers
pnpm env:up # start docker containers
pnpm -F api db:migrate # run migrations
pnpm -F api db:seed # seed dbRun:
pnpm -F api start:dev
pnpm -F webapp build:devTest:
pnpm -F api test
pnpm -F webapp testLinting and typechecking:
pnpm lint
pnpm tscTo run with https locally:
npx ngrok start --all --config ngrok.yml --authtoken <authtoken>To run docker containers locally:
DOCKER_BUILDKIT=1 docker build --rm --force-rm -t api -f ./packages/api/Dockerfile .
DOCKER_BUILDKIT=1 docker build --rm --force-rm -t webapp --build-arg VITE_API_URL="http://localhost:8080" -f ./packages/webapp/Dockerfile .
docker run --rm -ti -p 8080:8080 --env-file .env -e DB_URI=postgresql://user:password@host.docker.internal/voto api
docker run --rm -ti -p 3000:80 webappRun e2e testing:
pnpm -F e2e exec playwright install
pnpm -F e2e testRun load testing:
pnpm -F api test:loadYou can prefix with DEBUG=http to log every HTTP request being issued.
Load testing should run on two dedicated runners with fixed CPU and memory limits/quotas for predictable results.
The load generator should run separately from the API host, otherwise Artillery competes with the service for CPU and network.