Repository navigation
M6: Organiser Workspace, Event Staff Roles & Secure QR Check-in - #36
Open
Satelink-Protocol wants to merge 3 commits into
Open
Satelink-Protocol wants to merge 3 commits into
Satelink-Protocol wants to merge 3 commits into
Conversation
…heck-in - Implement comprehensive organiser workspace: event overview, readiness checklist, ticket inventory & capacity, attendee lookup & cancellations, and event announcements. - Add event-scoped staff roles and permissions: organiser, event_manager, door_staff, guest_list_manager, assistant with tokenized invites, immediate access revocation, and audit logging. - Build server-authoritative QR ticket engine: HMAC-SHA256 signed payloads (NLZ1:<ticketCode>:<HMAC>) bound to event and confirmed booking without attendee PII leakage. - Deliver mobile-first door check-in scanner: camera BarcodeDetector/canvas detection, manual ticket code fallback, atomic duplicate scan and replay prevention, attendance KPIs, and scan history. - Add database migration 019: event_team audit enhancement, event_staff_invites, tickets, ticket_scans, event_announcements, and existing booking ticket backfill. - Comprehensive automated test suite in test/m6-organiser-workspace.test.js with 15/15 passing tests and 642 passing regression tests. - Update docs/PROJECT_STATE.md and add arch/ORGANISER_WORKSPACE_AND_QR_CHECKIN.md.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
… empty state locator in organiser overview
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of M6 Deliverables
This pull request delivers Milestone 6 (M6) — Organiser Workspace, Event Staff Roles & Secure QR Check-in on top of the verified M5 baseline (
43cf05a).1. Organiser Workspace
basics,description,venue,tiers,published,gate), and operational quick actions.2. Event-Scoped Staff Roles & Permissions
organiser,event_manager,door_staff,guest_list_manager, andassistantscoped strictly to individual events viaevent_teamandevent_staff_invites.audit_log.3. Server-Authoritative Cryptographic QR Ticket Engine
NLZ1:<ticketCode>:<HMAC-SHA256>signing<ticketCode>:<eventId>using server ticket secret.4. Mobile-First Door Check-In Experience
/organiser/events/:id/scan): Native camera stream scanning viaBarcodeDetectorand canvas frame analysis with laser reticle animation.TK-XXXX-XXXX-XXXXcodes when camera hardware or permissions are unavailable.FOR UPDATE OF t) prevents race conditions and concurrent double-admissions, returning HTTP 409 with prior scan timestamp and staff details.ticket_scans): Every admission attempt (success, duplicate, revoked, cancelled, signature mismatch) is recorded with timestamp, staff ID, and payload hash.5. Database Schema & Migrations
migrations/019_organiser_workspace_and_checkin.sqlenhancingevent_team, creatingevent_staff_invites,tickets,ticket_scans, andevent_announcements, with automatic ticket backfill for historical confirmed bookings.test/migrations.test.jsto 17 sequential migrations; 8/8 tests pass.6. Automated Testing & Verification
test/m6-organiser-workspace.test.js(15/15 passing tests).npm run lint.ENABLE_LIVE_PAYMENTS=falsepreserved across all environments.