v3.0 — Reserved Seating
Reserved Seating 🎫
QrGate v3.0 introduces reserved seating — sell specific seats for an event, not just a headcount.
✨ Highlights
- Seat Map Editor (Admin) — a visual, per-location hall designer built on Konva: place seats, rows, round/rectangular tables, stage, screen, walls and text labels. Fast row/block fill, price categories with colours, and one-click seat auto-numbering.
- Visual seat picker (Buyer) — choose how many seats first, then tap the hall. Seats you pick turn orange; the whole map fits your screen automatically (fit-to-width on mobile, whole-map on desktop) with zoom & pan.
- Auto best-seats / snap — pick the amount and let QrGate place adjacent seats for you, or tap a spot and it snaps a contiguous block there. An anti-fragmentation heuristic avoids stranding lone empty seats, with a gentle warning when your selection would leave one behind.
- Live availability + seat holds — availability polls every 5s and each selection places an atomic 10-minute hold, so two buyers can't grab the same seat at the same time.
🧭 Redesigned checkout
- Fullscreen, multi-step booking wizard (details → tickets & names → payment → confirm) with a clear step sidebar, tuned for elderly users and large halls.
- Extra-ticket name fields now live on the amount step (no longer hidden below the map).
- Compact, single-row progress bar on mobile so the form/hall get the full screen.
🔧 Also since v2.1
- Multilingual success messages and improved form-validation feedback.
- Theme management with system-preference support and an improved booking flow.
- README: documented reserved seating, the seat map editor and the new seat/seatmap API routes.
Full changelog: v2.1...v3.0