Tap A Deal — Local Deals Discovery & Redemption Platformhttps://tap-a-deal-web.vercel.app
A local-deals discovery platform where users find and save offers on dining, shopping, and experiences, then claim them via QR or promo code and redeem in-store. Alongside deals, it includes a Places directory and a Food Trucks finder with calendar-based search. Built on Next.js 15 and React 19 with Firebase (Auth + Firestore), Google and email sign-in, protected routes, and a full claim-to-redemption flow.
The Problem
Local businesses run great offers, but they're scattered across flyers, social posts, and word of mouth — and customers have no single place to find them or redeem them cleanly. The client needed a consumer platform that surfaces local deals (dining, shopping, experiences), lets users save and claim them, and gives a smooth in-store redemption flow that works for both staff and customers — plus discovery of nearby places and food trucks.
The Approach
I built a deal-discovery web app organised around how people actually browse: curated sections for top, new, and expiring-soon deals, featured deals on the homepage, a Places directory, and a dedicated Food Trucks finder with calendar-based search so users can see what's available on a given day. Users sign in with Google or email (with verification), then save and claim deals. Claiming supports two redemption paths — a promo code or a scannable QR code presented in-store — with a clear claimed/redeemed state so neither the customer nor the venue is confused. Deal browsing is public to drive discovery, while claiming, profiles, and feeds sit behind authentication.
Architecture
The app uses the Next.js App Router with route groups to separate public discovery pages, the auth flow, and protected user areas, keeping access control clean at the routing layer. Firebase Authentication handles sign-in via Google OAuth and email/password, with passwords hashed using bcrypt and an email-verification step; signed JWT sessions (jose) gate the protected routes. Firestore stores deals, places, food trucks, and user data, accessed through a typed, reusable data-access helper that standardises queries, ordering, and document reads/writes. Forms are validated with Zod, animations are handled with Framer Motion, and the food-truck search uses a date picker to filter availability by day. The whole thing is deployed on Vercel.
Outcome
Delivered a complete consumer deals platform: users discover local offers across curated sections, save and claim them, and redeem in-store via QR or promo code, with a clean state machine so the redemption is unambiguous. The Places directory and calendar-driven Food Trucks finder extend it beyond simple coupons into local discovery. Authentication, claiming, and user areas are fully wired end to end and deployed live.
Tech Stack
Have a project like this?
I build multi-tenant SaaS, real-time systems, and mobile apps end-to-end.
Get in touch →