feat(voter): voter app (collection, scanning, ranking, submit, voting closed) #7
No reviewers
Labels
No labels
needs/docs
needs/research
needs/upstream
type/bug
type/external
type/feature
type/refactor
urgency
high
urgency
immediate
urgency
low
urgency
medium
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ScottyLabs/nova-crowd-favorite!7
Loading…
Reference in a new issue
No description provided.
Delete branch "voter-frontend"
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?
What this adds
The full voter flow from the Figma (phone web app):
/v/<code>saves the voter code, then goes to the collection. No code or a bad code shows "Open your voting link first" / "This link doesn't work".jsqr(new dependency)./t/<code>(2a, 2b, 2e, 2f)./link/<code>(2c, 2d): links a printed sticker to the voter's team. Checks first, then asks to confirm, so nothing links by accident.Backend changes
Authorization: Bearer <voter code>, stored as a SHA-256 hash./api/voters(HMAC-signed, same as/api/sync)./api/collection,/api/ballot,/api/ballot/submitfixes (validation, own team, duplicates, 409 after submit)./api/my-team,/api/qr/claim(GET check / POST link), one sticker per team.settings.voting_closes_at. After it, the server refuses changes (403voting-closed).docs/organizers.md: SQL for closing voting, undoing a wrong sticker link, etc.How to test
deno task dev, then openlocalhost:5173/api/dev/seed(dev only, 404 in production)./api/dev/seed?closed=submittedand/api/dev/seed?closedtest Voting closed./scanwith a webcam and show a QR forhttp://localhost:5173/t/qr-dev-t3.Needs decisions
https://<site>/t/<code>, and the codes need inserting intoqr_codesbefore the event.Known issues
svelte-checkhas been giving me the same errors with "Snippet not exported" (likely Deno 2.9.7 locally), so commits usedSKIP=svelte-check. Checking whether CI passes. Couldn't figure out the fix on my laptop so I went ahead with SKIP=svelte-check.Kennel Deployments
Torn down at 2026-10-25 21:51:29 UTC.
WIP: feat(voter): voter app (collection, scanning, ranking, submit, voting closed)to feat(voter): voter app (collection, scanning, ranking, submit, voting closed)