Digital contract signing for Westside Kings & Queens basketball
- Svelte 50.8%
- CSS 28.3%
- TypeScript 19.1%
- Dockerfile 0.7%
- HTML 0.6%
- Other 0.5%
Use mobile-optimized queens-logo-400w from MinIO CDN for girls contract pages instead of the combined Kings & Queens static logo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| kustomize | ||
| src | ||
| static | ||
| tests | ||
| .gitignore | ||
| .woodpecker.yaml | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
westside-contracts
Digital contract signing for Westside Kings & Queens basketball.
Overview
Parents receive a tokenized email link, view their kid's contract (travel or local variant), and sign with a drawn signature.
Stack
- SvelteKit with
adapter-node - PostgreSQL via
pg(node-postgres) -- direct queries to basketball-api's database - MinIO via
@aws-sdk/client-s3-- signature image uploads - signature_pad -- canvas-based signature capture
Development
npm install
npm run dev
Environment Variables
| Variable | Description | Default |
|---|---|---|
DATABASE_HOST |
Postgres host | postgres.basketball-api.svc.cluster.local |
DATABASE_PORT |
Postgres port | 5432 |
DATABASE_NAME |
Database name | basketball |
DATABASE_USER |
Database user | basketball |
DATABASE_PASSWORD |
Database password | (required) |
MINIO_ENDPOINT |
MinIO endpoint | minio.minio.svc.cluster.local:9000 |
MINIO_ACCESS_KEY |
MinIO access key | (required) |
MINIO_SECRET_KEY |
MinIO secret key | (required) |
MINIO_BUCKET |
MinIO bucket | assets |
Routes
GET /-- Landing page (directs users to check email)GET /contract/{token}-- Contract page (resolves token, renders travel or local variant)POST /contract/{token}/sign-- Signing endpoint (uploads signature, updates database)
Deployment
Kustomize manifests in kustomize/. Woodpecker CI pipeline in .woodpecker.yml.
# Build for production
npm run build
# Docker
docker build -t westside-contracts .
docker run -p 3000:3000 --env-file .env westside-contracts