Skip to content

Self check-in for events and workshops#2690

Closed
mroderick wants to merge 26 commits into
masterfrom
feature/self-check-in
Closed

Self check-in for events and workshops#2690
mroderick wants to merge 26 commits into
masterfrom
feature/self-check-in

Conversation

@mroderick

Copy link
Copy Markdown
Collaborator

Summary

Adds self check-in for event/workshop attendees. Organisers generate a landscape QR PDF, attendees scan it, authenticate with GitHub, and confirm their role. No admin intervention needed at the door.

Key changes

  • check_in_code column on events/workshops: 3-word EFF wordlist code (e.g. salon-grew-sprang) used in the check-in URL path (/check-in/e/:code / /check-in/w/:code)
  • source column on invitations/workshop_invitations: tracks how an invitation was created — email, check_in, or admin (nullable, no default)
  • CheckInCode concern: lazy-loaded EFF wordlist (7,776 words), generates unique codes on demand
  • CheckInPdf service: Prawn-generated landscape A4 PDF with codebar SVG mark, event/workshop details, venue, sponsors, and QR code
  • Admin::CheckInsController: instructions page with PDF download button; polymorphic routing under events/workshops
  • Public CheckInsController: GitHub auth redirect, role selection (Student/Coach with inference from existing invitations/group subscriptions), confirmation page
  • Check-in button on admin event/workshop toolbar linking to the instructions page

Notes

  • Events set verified=true on check-in; workshops set attended=true
  • No backfill rake task for check_in_code — generated lazily on first PDF download
  • Uses prawn-svg gem (pure Ruby SVG renderer, no native deps)
  • The revert commit (70343ed) was a UX iteration that restored the 120pt logo mark size; this whole chain can be squashed into clean commits

mroderick added 26 commits July 3, 2026 10:31
@mroderick mroderick closed this Jul 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant