feat: add organizer dashboard #15

Merged
kritdass merged 5 commits from feat/organizer-dashboard into main 2026-10-31 01:24:35 +00:00
Member

Organizers can manage voters, ballots, teams, QR codes, voting times, and results at /organizer. Lists are searchable; row actions open dialogs. Team name edits survive Sheet sync.

The dashboard uses a shared OpenBao password, signed HttpOnly sessions, and the existing HMAC API. Fetch the password with deno task password --profile preview for a PR preview or --profile prod for production.

Settings supports database backup and restore. Imports validate the schema, integrity, and references, save the current database first, and roll back on failure. deno task restore BACKUP DATABASE_PATH --offline provides recovery with the service stopped. No schema migration is needed.

Validation: all repository hooks passed, including 66 existing tests, lint, type checks, secret scanning, and formatting. The deployment binary builds. Browser checks covered links, ballot resets, team actions, printing, voting controls, backup/restore, and sign-out. Recovery checks covered corrupted backups, preserved credentials and notes, session expiry and rotation, and failed offline replacement.

Commits separate database recovery, the dashboard, and concise organizer documentation. Production has not been deployed.

Organizers can manage voters, ballots, teams, QR codes, voting times, and results at `/organizer`. Lists are searchable; row actions open dialogs. Team name edits survive Sheet sync. The dashboard uses a shared OpenBao password, signed HttpOnly sessions, and the existing HMAC API. Fetch the password with `deno task password --profile preview` for a PR preview or `--profile prod` for production. Settings supports database backup and restore. Imports validate the schema, integrity, and references, save the current database first, and roll back on failure. `deno task restore BACKUP DATABASE_PATH --offline` provides recovery with the service stopped. No schema migration is needed. Validation: all repository hooks passed, including 66 existing tests, lint, type checks, secret scanning, and formatting. The deployment binary builds. Browser checks covered links, ballot resets, team actions, printing, voting controls, backup/restore, and sign-out. Recovery checks covered corrupted backups, preserved credentials and notes, session expiry and rotation, and failed offline replacement. Commits separate database recovery, the dashboard, and concise organizer documentation. Production has not been deployed.
docs(organizer): document dashboard and recovery workflows
Some checks failed
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
kennel/build build failed
CI / check (pull_request) Failing after 1m52s
2fd1b2ec84
kritdass force-pushed feat/organizer-dashboard from 2fd1b2ec84
Some checks failed
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
kennel/build build failed
CI / check (pull_request) Failing after 1m52s
to 85bba5bbd8
Some checks failed
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
kennel/build build failed
CI / check (pull_request) Failing after 1m12s
2026-10-31 01:12:37 +00:00
Compare
fix(build): generate QR stickers without PNG dependencies
Some checks failed
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
kennel/build build succeeded
kennel/deploy deployment healthy
CI / check (pull_request) Has been cancelled
8397da7885

Kennel Deployments

Torn down at 2026-10-31 01:24:36 UTC.

<!-- kennel-deployment --> ### Kennel Deployments Torn down at 2026-10-31 01:24:36 UTC.
fix(organizer): give result team names room to fit
All checks were successful
kennel/build build succeeded
kennel/deploy deployment healthy
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
CI / check (pull_request) Successful in 1m53s
61ae711839
kritdass force-pushed feat/organizer-dashboard from 61ae711839
All checks were successful
kennel/build build succeeded
kennel/deploy deployment healthy
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
CI / check (pull_request) Successful in 1m53s
to 4c8587178b
All checks were successful
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
kennel/build build succeeded
kennel/deploy deployment healthy
CI / check (pull_request) Successful in 1m50s
2026-10-31 01:21:58 +00:00
Compare
kritdass deleted branch feat/organizer-dashboard 2026-10-31 01:24:35 +00:00
Sign in to join this conversation.
No description provided.