Restaurant Menu PlatformWeb Applications

TapTab

TapTab helps restaurants publish beautiful digital menus that work on phones and desktops, while giving staff a TapManager dashboard to update items, prices, and categories in real time. Over two months I worked on revamping core ordering infrastructure, including Stripe Connect so restaurants can onboard for payouts, and an order delivery schema that handles prep time, pickup instructions, and customer confirmation emails.

TapTab web dashboard
NestJSTypeScriptPostgreSQLStripe Connect

The challenge

Restaurants needed a reliable way to take orders online and get paid, but Stripe payout fields were missing from the database, blocking Connect onboarding. Existing delivery APIs, email templates, and prep time data were incomplete or misaligned with third party ordering integrations, which slowed the full checkout flow.

Key features

  • Customer-facing digital menus on mobile and desktop
  • TapManager dashboard for menus, modifiers, promotions, and media
  • Stripe Connect onboarding links and payout account tracking per restaurant
  • Order delivery schema with prep time, pickup instructions, and email notifications
  • Integration with existing location and estimated prep time APIs
  • Database migrations fixed so Stripe columns apply safely to live tables

Architecture

A web frontend serves responsive menus to diners while TapManager gives restaurant staff a separate admin experience. PostgreSQL stores restaurant profiles, menu data, and Stripe Connect fields such as account ID and onboarding status. Backend APIs connect ordering, prep time, and delivery partners, then trigger transactional emails when an order moves through pickup and delivery steps.

My role

Full stack engineer who spent two months revamping ordering and payments, fixed broken database patches for Stripe columns, built the Connect onboarding flow, and wired prep time, pickup instructions, and email delivery into the order schema.

Challenge

Stripe payout columns were defined in a migration that never ran against existing tables, and multiple APIs for prep time, location, and email content had to be aligned before the order flow could be tested end to end.

Solution

Replaced the faulty table creation patch with safe column additions, verified Stripe Connect onboarding with test accounts and email links, then connected prep time and pickup APIs to the delivery schema and validated the full flow with test orders and confirmation emails.

Technology stack

Frontend

ReactResponsive webMobile web

Backend

NestJSTypeScriptREST APIsSQL migrations

Database

PostgreSQL

APIs & Integrations

Stripe ConnectOrder delivery APIsEmail templatesItsACheckmate integration

Dev Tools

Stripe DashboardGitLocal build pipeline