Gambito — Board-game café
Gambito is the digital desk of a board-game café for the visitor. See the floor of free tables, pick a slot, pack the bag (only titles with free physical copies) and hold for 15 minutes with a server-side expiresAt. Confirm and get a real QR pass whose URL opens /partida/:code. Staff scan the code at the door; after check-in the bag becomes a live queue (now-playing + reorder). In My games you browse history, cancel with a 24 h policy and earn play points derived from completed visits (10 pts × partySize). The truth layer is copy stock + CafeDay + table mutex: a third Catan is never promised if both boxes are out, CAFE_CLOSED blocks the sale, and list ↔ detail totals come from the same BookingLine rows.
Key features
Real copy stock: availableCopies per slot, 409 NO_COPIES
Café day open/limited/closed; CAFE_CLOSED → 409
15-min hold with server expiresAt, ~30 s sweeper, same-user / table 409
Real QR (qrcode SVG + /partida/:code URL) on confirmation and public GET 200
Live queue after check-in: now-playing + reorder without a second box
Derived play points: 10 pts × partySize completed
Technologies used
Angular
TypeScript
SQLite