AK
Back to projects

Restaurant ordering platform

Working prototype

Himalayan Kitchen

A full-stack restaurant ordering prototype that connects a public QR-accessible menu with checkout, live order tracking, kitchen operations, and staff management.

My role
Full-stack developer — independent project
Development status
Working prototype
Intended users
Independent restaurant owners and managers

The context

Problem being solved

Independent restaurants need a direct ordering channel that gives them control over menus, customer relationships, payments, and daily operations without depending entirely on marketplace platforms.

Audience

Intended users

  • Independent restaurant owners and managers
  • Kitchen and front-of-house staff
  • Customers placing collection or delivery orders

My role and contribution

Full-stack developer — independent project

  • Designed and built the customer ordering journey, restaurant dashboard, and kitchen workflow.
  • Connected authentication, restaurant-scoped data, realtime order updates, Stripe Checkout, and email notifications.
  • Implemented server-side price checks, payment confirmation handling, and token-based public order tracking.

Development status

The core customer, payment, kitchen, and restaurant-management flows are implemented as a deployed prototype. It is not presented as production software with verified restaurant usage.

Main features

01

QR-accessible storefront with menu categories, dietary information, options, basket, collection, and delivery choices.

02

Stripe or cash checkout with email notifications and a public live order-status page.

03

Restaurant dashboard covering onboarding, menus, orders, kitchen display, customers, staff roles, QR codes, and settings.

Technical architecture

The project separates public ordering, authenticated restaurant operations, external payment and email services, and restaurant-scoped Supabase data.

  1. 01

    User interfaces

    Next.js + React

    Public storefront, checkout, order tracking, dashboard, and kitchen display.

  2. 02

    Application layer

    App Router + server logic

    Ordering rules, price recalculation, restaurant workflows, and webhook handling.

  3. 03

    External services

    Stripe + Nodemailer

    Card checkout, payment confirmation, and customer or restaurant email notifications.

  4. 04

    Data layer

    Supabase Postgres

    Authentication, RLS-protected restaurant data, and realtime order updates.

High-level architecture based on the project's current documented implementation.

Technology breakdown

A recruiter-focused view of the main technical responsibilities and service boundaries.

Frontend technology

Next.js, React, TypeScript, and Tailwind CSS provide the responsive storefront and operational dashboards.

  • App Router pages for customer and authenticated staff journeys
  • Responsive menu, basket, checkout, tracking, and kitchen interfaces
  • Reusable controls for menu options, order states, settings, and staff roles

Backend technology

Server-side application logic coordinates ordering rules, trusted pricing, payment confirmation, and restaurant operations.

  • Server-side recalculation prevents the browser from setting trusted prices
  • Stripe webhook processing controls when paid card orders become visible
  • Email and order-status workflows connect customer and restaurant views

Database and storage

Supabase Postgres stores restaurant, menu, staff, customer, and order data with realtime updates.

  • Restaurant-scoped records protected with Row Level Security
  • Realtime order changes support the kitchen and order-management views
  • Customer records are built from order details for restaurant use

External integrations

Focused integrations support payments, email delivery, sign-in, QR access, and operational notifications.

  • Stripe Checkout and signed payment webhooks
  • Nodemailer with Gmail SMTP
  • Google OAuth, QR links, and browser notification capabilities

Authentication and security

Authentication and trust boundaries are handled across Supabase, server-side validation, and payment confirmation.

  • Email and password authentication plus Google OAuth
  • Row Level Security limits staff access to their restaurant
  • Unguessable UUID order-tracking tokens replace sequential public identifiers
  • Credentials remain in ignored environment files rather than source control

Testing, accessibility and performance

Testing approach

  • The repository provides lint and production-build commands for static analysis and compilation checks.
  • Manual scenarios should cover menu configuration, basket totals, collection and delivery, cash and card checkout, webhook confirmation, and kitchen status changes.
  • Security checks should include cross-restaurant access attempts, manipulated prices, invalid tracking tokens, and failed payment callbacks.

Accessibility considerations

  • Keep menu, basket, checkout, and dashboard controls operable by keyboard.
  • Pair order-status colours with readable text and live status messaging.
  • Provide labels, validation guidance, and error summaries for ordering and settings forms.
  • Respect reduced-motion preferences for realtime and status transitions.

Performance considerations

  • Optimise dish images and avoid loading dashboard-only code on the public storefront.
  • Scope realtime subscriptions to the relevant restaurant and active workflow.
  • Keep payment, email, and notification work outside the critical menu-browsing path.

Learning and next steps

What I learned

  • A restaurant platform needs distinct but connected customer, owner, staff, and kitchen experiences.
  • Payment flows require server-owned prices and verified callbacks rather than trusting browser state.
  • Realtime updates are most useful when their permissions and lifecycle are tightly scoped.

What I would improve next

  • Add automated integration and end-to-end coverage for ordering and payment paths.
  • Add operational monitoring for failed webhooks, email delivery, and realtime updates.
  • Validate the workflow with restaurant staff before making any production-readiness claim.

Screenshots from the current project build.

Himalayan Kitchen restaurant ordering platform — desktop view
Customer ordering storefront showing the menu, basket, and checkout flow.

Interactive preview

Load the live project directly on this page. Requires an active deployment.

Interactive preview available

Loads the live site inside this page. Click to activate — the project must be publicly accessible.

Open in new tab instead

Explore the build

Review the current interface or inspect the repository and documented implementation.