Flea markets have a discovery problem. With 60+ vendor booths spread across a large venue, most customers visit 8-12 booths and leave. They walk the main aisles, hit the vendors that catch their eye, and miss the smaller stalls tucked in corners or side rows. Vendors in less trafficked locations pay the same rent but get a fraction of the foot traffic. The venue's management team wanted a way to incentivize customers to explore the entire market — and they wanted it to be fun. We built a gamified treasure hunt app that turned a shopping trip into an interactive experience.
Game Design: Points, Challenges, Rewards
The core mechanic is simple: every vendor booth has a unique QR code displayed at their stall. Customers download the app, scan QR codes as they visit booths, and earn points. But simple point accumulation gets boring fast, so we layered in several engagement mechanics.
Discovery points: Each first-time scan at a new vendor earns 10 points. This incentivizes breadth of exploration. Scanning the same vendor again earns 2 points (acknowledging repeat visits without over-rewarding them).
Zone challenges: The venue is divided into 6 zones. Scanning at least 3 vendors in a single zone completes a zone challenge for 50 bonus points. Completing all 6 zones earns a "Full Explorer" badge worth 200 points. This mechanic specifically drives traffic to undervisited zones.
Trivia questions: Some QR codes trigger a trivia question about the vendor or their products. "What country does this coffee vendor source their beans from?" The answer is on display at the booth — you just have to look. Correct answers earn 25 points. This mechanic encourages actual engagement with the vendor, not just a drive-by scan.
Limited-time bonuses: During specific hours, certain vendors are designated as "double point" locations, highlighted on the in-app map with a golden marker. This lets management direct traffic to specific areas of the venue at specific times.
The Reward System
Points translate to real rewards. At 100 points, customers unlock a free drink at the venue's central bar. At 250 points, they get a $5 voucher usable at any vendor. At 500 points (the "Full Explorer" threshold), they receive a $15 voucher and entry into a monthly prize drawing. The rewards are funded by a small participation fee from vendors ($25/month) — a cost most vendors were happy to pay for the guaranteed foot traffic.
Redemption is handled in-app. When a customer reaches a reward threshold, their app generates a single-use redemption QR code that the vendor or bar scans to confirm. This prevents fraud and gives management data on which rewards are being redeemed.
The Interactive Map
We built a custom interactive map of the venue within the app. Each vendor booth is a tappable marker showing the vendor name, category, and whether the user has scanned there yet. Unvisited booths appear as blue markers; visited ones turn green. Zone boundaries are shown with colored overlays, and the zone completion progress is displayed as a ring indicator in each zone. The map also shows the user's current position via Bluetooth beacons placed throughout the venue, making it easy to navigate to unvisited booths.
Flutter Implementation
We chose Flutter for cross-platform deployment (iOS and Android from a single codebase). The QR scanning uses the mobile_scanner package, which provides fast, reliable scanning with a camera preview. User data syncs to a Firebase backend — we chose Firebase for its real-time database (leaderboard updates), built-in auth (email and Google sign-in for frictionless onboarding), and cloud functions for reward threshold notifications.
The app's local state management uses Riverpod, which cleanly separates the scan history, point calculations, and map state. Animations are handled by Flutter's built-in animation framework — confetti when a reward is unlocked, a pulse effect on newly discovered vendors, and a satisfying "stamp" animation when a QR code is scanned.
The leaderboard updates in real time via Firebase Realtime Database streams. Customers can see their rank among all participants for the current week. The competitive element surprised us — it turned out to be a major driver of engagement, with some customers returning multiple weekends specifically to maintain their leaderboard position.
Results: The Numbers
After 8 weeks of deployment, the numbers were compelling. App downloads reached 1,200 with a 68% active weekly user rate. Average booths visited per customer rose from 10 to 14 — a 40% increase in vendor discovery. Average visit duration increased from 55 minutes to 80 minutes. Vendors in previously low-traffic zones saw foot traffic increase by 35-60%. And the leaderboard created a cohort of "power users" (roughly 15% of active users) who visited every single weekend and averaged 22 booth scans per visit.
Management also gained valuable data: heat maps of foot traffic patterns, peak scan times by zone, and vendor-level engagement metrics. This data informed decisions about vendor placement, event scheduling, and signage improvements. The app that started as a customer engagement tool became a venue intelligence platform.