feat: turn the quiz into a slide deck #6

Merged
TimCane merged 15 commits from feat/slide-deck into main 2026-06-20 17:43:59 +01:00
TimCane commented 2026-06-18 12:20:25 +01:00 (Migrated from github.com)

Summary

  • add a slides content collection (one file per slide, ordered by filename) with a kind-discriminated schema: title, section, guess-flag (mode 1), which-flag (mode 2)
  • generalise the session from a flat flag list to a slide deck: static slides show in an info phase; quiz slides keep guess/reveal; scores accumulate across the deck
  • mode 1 'What flag is this?' auto-fills similar-flag distractors when options are omitted; mode 2 'Which flag is X?' shows numbered lookalikes, audience picks a number
  • move presenter notes from flags onto slides; persistent join-code badge on /display
  • starter deck: title (with join code), sections, 20 guess-flag slides, two which-flag slides, closing card
  • fix gate staying visible after joining (global [hidden] beats the id display rule); fix reactions to rise from the bottom at a random x

Test plan

  • pnpm check (0 errors), pnpm build (node server output)
  • drove the deck against the built server: advanced through title -> section -> guess-flag (scored) -> ... -> which-flag (scored) -> closing -> ended
  • verified answerIndex withheld until reveal, live tally, accumulating leaderboard, end-of-deck final scores
  • /, /display, /presenter all serve 200
## Summary - add a `slides` content collection (one file per slide, ordered by filename) with a kind-discriminated schema: `title`, `section`, `guess-flag` (mode 1), `which-flag` (mode 2) - generalise the session from a flat flag list to a slide deck: static slides show in an `info` phase; quiz slides keep guess/reveal; scores accumulate across the deck - mode 1 'What flag is this?' auto-fills similar-flag distractors when options are omitted; mode 2 'Which flag is X?' shows numbered lookalikes, audience picks a number - move presenter notes from flags onto slides; persistent join-code badge on /display - starter deck: title (with join code), sections, 20 guess-flag slides, two which-flag slides, closing card - fix gate staying visible after joining (global [hidden] beats the id display rule); fix reactions to rise from the bottom at a random x ## Test plan - pnpm check (0 errors), pnpm build (node server output) - drove the deck against the built server: advanced through title -> section -> guess-flag (scored) -> ... -> which-flag (scored) -> closing -> ended - verified answerIndex withheld until reveal, live tally, accumulating leaderboard, end-of-deck final scores - /, /display, /presenter all serve 200
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
TJC/thisisapresentationonflags.lol!6
No description provided.