Back to Hermes Agent

ThrillVille

ThrillVille - Desktop view
Desktop view
ThrillVille - Mobile view
Mobile view

Key features

01

Live wait times modelled server-side (queue = recent check-ins × factor): list, map and detail share ONE source → consistent totals

02

Transactional FastPass: 15-min hold with server expiresAt, automatic sweeper, 409 double-sale lock and downloadable SVG QR

03

pending → confirmed → used / expired / cancelled state machine with automatic slot release

04

Tickets with server-calculated prices and 21% VAT plus downloadable QR

05

Points ALWAYS derived from real check-ins (Σ check-ins × pointsPerVisit), 8 badges and Explorer levels

06

Admin panel with KPIs, per-hour occupancy and 7-day sales in SVG charts with axes, dates and tooltips

Description

Amusement park with a double value layer: real wait prediction (the server models each ride queue with cycle capacity and duration, and list, map and detail ALWAYS show the same waitMinutes) and a complete transactional FastPass cycle: slot hold with server-side expiresAt (now + 15 min), a 30-second sweeper that expires stale holds and frees the slot, double-sale lock (mutex + 409 with alternative slots), pending → confirmed → used / expired / cancelled state machine and a downloadable SVG QR receipt plus simulated email. Tickets with server-calculated prices and 21% VAT, gamification with points derived from real check-ins (Σ check-ins × pointsPerVisit, never an arbitrary column), 8 badges with JSONB criteria and Explorer levels, and an admin panel with daily KPIs, per-hour occupancy and 7-day sales in SVG charts with axes, dates and tooltips. "Night Fair" dark-first UI (neon magenta + amber) with light mode. Login with username or email, persistent JWT. Angular 22 + NestJS 11 + SQLite.

Technologies used

Angular Angular TypeScript TypeScript NestJS NestJS SQLite SQLite