Skip to content

Case Study // 2026

Multi-tenant corporate games platform for events and branches

A national financial institution needed its raffles, prize wheels, and giveaways to be as trustworthy as its transactions, on an event stage and at a branch kiosk alike. Andes Development built a multi-tenant platform where the bank's own team creates, tests, and runs its games: three game types, prizes with per-branch stock, cryptographically random draws, encrypted data, and a connector that lets the team set up games with Claude without exposing a single participant's data. It's the evolution of our corporate games portal and in-branch prize roulette, now as a product.

// The challenge

A corporate game is entertainment, but it's also a public promise of fairness. Once the game leaves the event and reaches the branches, that promise repeats at every location. The key challenges were:

  • A draw has to be fair, and prove it In front of hundreds of employees or customers, any doubt about a result's randomness becomes a reputation problem.
  • From the stage to the branch The bank wanted instant-win prizes on kiosks in its branches, each with its own stock, staff, and business hours.
  • Prizes that reconcile Every unit delivered, voided, or returned had to match inventory, with vouchers branch staff could validate on the spot.
  • Sensitive data Participant lists and forms that collect national ID numbers had to be protected at every step, from import to export.
  • Autonomy with control The events team needed to create, brand, and test games without sending every change to a developer, and now with AI help that can't touch customer data.
  • One product, many companies The platform had to serve several clients with their data, brands, and files fully isolated.

// The technology solution

Andes designed the platform so security and showmanship live in the same product:

  • A modern stack Laravel 13 and Filament 5 for administration, React 19 with Inertia and TypeScript for the game screens, PostgreSQL, and private AWS storage served only through signed URLs.
  • Three games on one engine Raffles with encrypted bulk import and a prize mode that draws winners in order for each prize; prize wheels for a presenter or a kiosk; and instant-win games in two variants, pick a card or scratch.
  • Branches and kiosks at scale Regions, imports of up to 5,000 branches per file, a staff PIN per branch, kiosk pairing by code or link, and layered business hours (platform, bank, and branch) with the bank's own time zone.
  • Prizes with stock and vouchers A prize catalog with stock per branch, an append-only ledger of every movement, vouchers that staff deliver with their PIN, and prize days with their own quantities and hours.
  • Five ways to decide who wins Fixed odds, always win, wheel wedges, winning moments spread across business hours, and a sequence set by the organizer.
  • Forms that protect identity Nine field types, including national ID, 16 validation rules, encrypted answers, and an HMAC fingerprint that caps plays per person without storing the value in plain text.
  • Test before opening Test kiosks whose plays are undone exactly, a test clock to simulate the day, an odds simulator of up to 2,000 plays, and a rehearsal mode for raffles and wheels that saves no results.
  • Custom branding that can't break the game Custom CSS at three levels (layout template, game template, and game), validated in full before it's saved, with critical kiosk elements protected and the last 20 revisions restorable. The game screens have their own design system, with self-hosted fonts and support for reduced-motion preferences.
  • Claude as a setup assistant One MCP connector per workspace, with 49 tools that only configure. Andes turns it on per client, and each connection uses OAuth 2.1 with PKCE, is bound to a single workspace, and requires two-factor authentication. Claude can't delete, open or close a game, draw, or spin, and it never sees players, winners, form answers, or vouchers.
  • Cryptographically random draws A cryptographically secure generator with a Fisher-Yates shuffle, row locks on every draw and spin, and tests that race two processes for the last unit of a prize.
  • No master keys No role can reach another workspace, platform administration lives in a separate operator panel with mandatory two-factor authentication, and every change is audited, including those made via Claude.

// Results and key wins

In three months, the platform grew from two games at events to a system the bank runs at its events and in its branches:

  • 3 games

    Raffles, prize wheels, and instant-win games in production, at events and on branch kiosks.
  • 49 tools

    To configure games with Claude, with no access to participant data and no irreversible actions.
  • 1,600+ tests

    Automated, plus an internal review of 70 findings with all 10 high-priority ones fixed.

// The bottom line

What started as a raffle on the big screen is now a platform the bank's own team runs, from the event stage to the kiosk in each branch. The organizer sets up and tests a game before it opens, staff deliver prizes with their PIN, and compliance has a record of every play, prize, and change. Screens don't sync with each other in real time yet. Each kiosk checks the game's state on its own, and a wheel mirrored across several screens is still in design.

Direct_Answers

Frequently asked questions

With a cryptographically secure random number generator and database locks that stop the same draw from running twice or the last unit of a prize from being awarded twice. Every result, void, or reset is recorded in the audit log.

Three: raffles with thousands of entries, prize wheels for a presenter or a kiosk, and instant-win games where players pick a card or scratch one. All three share the same prize catalog, per-branch stock, and vouchers.

Configure, and nothing else. Its 49 tools build templates, games, prizes, and styles, but it can't delete anything, open or close a game, draw, or spin, and it never sees players, winners, form answers, or vouchers. Every change is logged as made via Claude.

Yes. The team uses test kiosks whose plays are undone exactly, a test clock to simulate the day, an odds simulator of up to 2,000 plays, and a rehearsal mode for raffles and wheels that saves nothing.

It's encrypted on import or when a form is submitted, and it stays in each client's isolated workspace. By default it's deleted 90 days after the game closes, and winners' data after one year.

Ready to take your draws to the stage and every branch?

REQUEST A TECHNICAL ASSESSMENT