U-Max Coffee Day
From a reservation to a ticket, then through the door.

The problem
Coffee Day needed the customer and organizer sides to work together: reservations and purchases, Mobile Money checkout, ticket recovery, entry, and collection of purchased items. A successful payment had to lead to a usable record at the event.
What I built
Built the bilingual storefront, cart, Mobile Money checkout, and persistent bookings.
Implemented recovery codes, payment reconciliation, and duplicate-payment prevention.
Connected QR tickets to signed organizer sessions, single-use check-in, and durable collection tracking.
Inside the product
Open an image to inspect the interface at full size.
Payment is not the finish line
The booking remains useful after checkout. Recovery codes let a customer find their ticket again, while organizer tools record entry and item collection separately. Conditional redemption prevents the same entitlement being used twice.
The result
- A connected purchase, ticket, and fulfillment workflow
- Recoverable bookings backed by persistent storage
- Separate organizer tracking for entry and purchased items
Built with
Next.js, TypeScript, Turso / SQLite, CamPay, QR tickets

