specs
Gamification

Gamification Specification

Status: Canonical Last Updated: 2026-05-11 Source: Schema tables and packages/backend/convex/domains/minigames.ts


Related specs


Features Overview

FeatureDescriptionTables
Guest ProfilesQR scan creates profileguestProfiles
Photo WallGuests submit photosphotoSubmissions, photoLikes
Guest ReactionsWave, Cheers, HeartguestReactions
Lucky SpinWheel for prizesspinPrizes, spinResults
Google ReviewReview challengechallengeConfig, challengeSubmissions

Guest Profile System

Creation

Profiles are created when a guest scans their reservation QR code at check-in.

Profile Data

  • Nickname (guest entered)
  • Country
  • Origin (how they heard about us)
  • Mood tags (selectable)
  • Bio (optional)
  • Avatar (optional)

Wall Page (/wall)

Public gallery of guest photos with like functionality.

  • Grid of photo submissions
  • Like button per photo
  • Winner badges for featured photos

Table View (/dashboard/table)

Staff can view profiles at their table.

  • Guest list for table
  • Profile cards
  • Mood tags display

Photo Wall

Submission Flow

  1. Guest visits photo station
  2. Takes photo or selects from gallery
  3. Adds caption (optional)
  4. Submits
  5. Photo appears on Wall after approval

Photo Card

  • Image
  • Caption
  • Like count
  • Submitter nickname
  • Winner badge (if applicable)

Likes

  • Any guest can like any photo
  • One like per profile per photo
  • Like count updates in real-time

Winner System

Admin can mark photos as winners.

  • Special badge displayed
  • Featured in winner section

Guest Reactions

Types

  • Wave — 👋
  • Cheers — 🍷
  • Heart — ❤️

How It Works

  • Guests see other profiles at their table/event
  • Can send reactions to other guests
  • Reactions accumulate on profile
  • Displayed as reaction badges

Lucky Spin

Configuration

Admin configures via /dashboard/admin/pos/challenges:

  • Enable/disable
  • Prize list with weights
  • Max value per spin

Prizes

Types:

  • MENU_ITEM — Specific menu item
  • DISCOUNT — Percentage off
  • FREE_ITEM — Free item

Spin Flow

  1. Guest at table initiates spin
  2. Random prize selected by weight
  3. Prize applied to order as comp
  4. Result recorded in spinResults

Google Review Challenge

Configuration

Admin enables and sets:

  • Reward menu item
  • Challenge period

Submission Flow

  1. Guest writes Google review
  2. Takes screenshot
  3. Submits via app
  4. Admin reviews screenshot
  5. Approves/rejects
  6. If approved, menu item added to bill as comp

Challenge Management

Admin Dashboard (/dashboard/admin/pos/challenges)

  • Toggle challenges on/off
  • Configure per-challenge settings
  • View submission stats

Per-Challenge Stats

  • Total submissions
  • Approval rate
  • Participation trend