Max Bonus Club · Loyalty & Gaming · Mobile · Web · Terminal

A loyalty platform for a gaming venue network.

Max Bonus Club turns visits to physical gaming venues into points, ranks and rewards — a cross-platform product wired live into the venues' Octavian gaming system. One team built the mobile apps, the backoffice and the in-venue layer, from a single backend.

Max Bonus Club app home screen — rank status 'Red', prize points and next-reward progress

The brief

Gaming venues already know their players through the Octavian platform — sessions, cards, transactions. What they didn't have was a way to turn that activity into a loyalty relationship players carry in their pocket.

The task: build a bonus club that reads a player's real venue activity, ranks them, lets them spend points on rewards and pulls them back through games and referrals — without ever becoming the source of truth for the sensitive gaming data. Octavian stays authoritative; the club sits on top.

At a glance

Product: Max Bonus Club — loyalty app for a network of gaming venues across Croatia.

Role: EM2 as the standing product & engineering team — mobile, web backoffice, in-venue terminal and backend.

Integration: live, two-way sync with the Octavian gaming API.

The build

One platform,
four surfaces.

01

Mobile app — iOS & Android

React Native + Expo. The player-facing club: rank, prize points, rewards, games, referrals and a venue map — shipped to both stores from one codebase.

02

Web backoffice

An Angular admin & operator console for managing players, rewards, prize games and promotions — with role-based access for staff and superadmins.

03

In-venue terminal + RFID

A terminal surface with an RFID card reader, so a player's physical club card ties straight into the same points and rewards backend on-site.

04

Backend & Octavian sync

A Java 17 / Spring Boot API with scheduled Quartz jobs that keep points, ranks and sessions continuously in sync with the Octavian gaming platform.

The loyalty engine

From a venue session to a
reward in your pocket.

Ranks

Red, Silver, Gold and Platinum tiers, derived from real play and shown as a status card on the home screen.

Prize points

Spendable points with a live "next reward" progress bar — synced from Octavian, never invented by the app.

Rewards catalog

Redeem points for drinks, cigarettes or cash withdrawal, then collect in venue via a coupon.

Prize games

Wheel of Fortune, surveys and raffles reward engagement — with real, finite prize pools behind them.

Referrals

Every player gets a shareable 5-character code and earns a reward for each friend who joins.

Promotions & alerts

Targeted promotions plus push notifications for rank changes, new games and expiring coupons.

Max Bonus Club home — rank status card and prize-points progress

Product thinking

Prize games with real inventory.

Wheel of Fortune

Every spin wins

A weighted wheel where the backend decides the prize from what's actually left in the pool — and quietly redistributes odds as prizes run out.

Survey

Answer, then win

The prize is drawn at completion from the same finite pool — so a reward is only ever given if it's genuinely still available.

Raffle

One big draw

Players enter during a window; at draw time the system selects N winners from the pool in a single fair batch.

Detail

Depleted prizes stay visible on the wheel, greyed out rather than removed. A player who arrives late still sees the full promotion — it keeps the game feeling fair and builds anticipation for the next one, instead of quietly shrinking the wheel. Concurrency is handled with optimistic locking so a pool can never be over-drawn.

The integration

Sitting on top of Octavian, not replacing it.

The hard part isn't the UI — it's staying truthful to a live gaming platform. The backend authenticates to Octavian over OAuth2 and keeps the club in step with the source of truth.

  • 10 minScheduled sync pulls sessions, transactions and card levels for every player.
  • RankStatus is computed from a rolling 12-month window — with logic to warn players before a demotion, not after.
  • PointsPrize points and rank always reflect Octavian; the app only ever displays them.
  • VenuesLocations, cards and prizes flow in from the same API into the map and rewards.
Octavian gaming platform
Sessions · cards · transactions · locations
↓ OAuth2 · scheduled sync
Max Bonus Club API — Spring Boot
Ranks · prize points · games · referrals · Quartz jobs
↓ one data model
Mobile · Backoffice · Terminal
Player app · admin console · in-venue RFID

On the stores

Max Bonus Club, shipped.

Published on the App Store & Google Play
Max Bonus Club — sign in
Sign in
Max Bonus Club — rank & prize points
Rank & prize points
Max Bonus Club — rewards catalog
Rewards catalog
Max Bonus Club — profile & referral code
Profile & referral
Max Bonus Club — venue locator map
Venue locator
Max Bonus Club web backoffice sign-in — the Angular admin & operator console
The Angular admin & operator backoffice. Where staff manage players, rewards, prize games and promotions — role-based for operators and superadmins.

The result

A club that lives across the network.

1,000+
players carrying the club in their pocket and growing
All
MaxBet venues covered — the club works nationwide, across every location
2,000+
rewards claimed through the app in the last year — points that turned into real prizes
4
loyalty tiers — Red, Silver, Gold, Platinum — driven by real play

Stack — React Native · Expo · Angular · Java 17 · Spring Boot · Quartz · PostgreSQL · Octavian API (OAuth2) · RFID