feat: scaffold westside-contracts SvelteKit app with contract signing flow #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
westside-app#72-- parent issue requesting digital contract signing pagesRepo
forgejo_admin/westside-contractsUser Story
As a parent of a Westside player
I want to receive a tokenized link, view my kid's contract, and sign it digitally
So that I can commit to the season without needing to print or scan paperwork
Context
Westside Kings & Queens needs digital contract signing. Parents receive a tokenized email link, view the travel or local contract variant for their kid's team, and sign with a drawn signature. The app is a standalone SvelteKit repo (adapter-node) that talks directly to basketball-api's Postgres database and uploads signatures to MinIO. The HTML/CSS prototype is at
~/pal-e-playground/westside-contract.htmland must be copied verbatim into SvelteKit components.File Targets
Files to create:
package.json-- SvelteKit project with pg, @aws-sdk/client-s3, signature_padsvelte.config.js-- adapter-node configvite.config.ts-- vite configtsconfig.json-- TypeScript configsrc/app.css-- all CSS from prototypesrc/app.html-- SvelteKit shellsrc/routes/contract/[token]/+page.server.ts-- token resolution, player/team/parent datasrc/routes/contract/[token]/+page.svelte-- contract page from prototype HTMLsrc/routes/contract/[token]/sign/+server.ts-- POST endpoint for signature submissionsrc/lib/db.ts-- Postgres poolsrc/lib/minio.ts-- S3 client for signature uploadsrc/lib/types.ts-- TypeScript interfacesDockerfile-- production build (node:20-alpine).woodpecker.yml-- CI pipelinekustomize/-- k8s manifestsstatic/westside-logo.png-- brand logoAcceptance Criteria
/contract/{token}resolves a valid token and renders the correct contract variant (travel vs local)/contract/{token}/signupdates player record in Postgresnpm run devstarts without errorsTest Expectations
/contract/{token}with a valid token, verify contract rendersnpm run buildcompletes without errorsConstraints
Checklist
Related
westside-app#72-- parent issuewestside-- project