Bolera — Lane booking by time slot
Key features
B2C cycle: 15 min hold (server expiresAt) → confirm → QR; 30s sweeper; 409 anti double-sale and same-user
Lane map + slot picker with real free seats
Checkout with shoes/menu and countdown resync on visibilitychange/focus
My games: list↔detail with consistent totals and dynamic statuses
Derived member points: 15 pts × completed booking (seed and real purchases)
Admin/staff: KPIs and revenue series with SVG charts (axes + tooltips)
Description
Bolera is online bowling lane booking for the end player. Browse lanes with price and capacity, pick a day and 60-minute slot with real free seats, add shoes and menu items, and confirm payment before the hold expires. The ticket includes an SVG QR and a simulated email. In My games you can see statuses (pending, confirmed, completed, cancelled, expired), cancel under business rules, and earn member points derived from real play (15 pts × completed booking). The truth layer is the transactional slot cycle: pending hold with server-computed expiresAt, ~30s sweeper freeing expired capacity, same-user lock and anti double-sale (HTTP 409), and list↔detail consistency. Staff sees occupancy and revenue with real SVG charts (axes, dates, tooltips).
Technologies used
Angular
TypeScript
SQLite