Shop Catalog Restaurant Menu & Ordering Platform

Ericko Wicaksono
Published

0
  • Project creator

A full-stack restaurant menu and ordering platform. Restaurant owners manage menus, branches, discounts, and orders. Customers browse menus, customize items with modifiers, and check out with Stripe payments.

Link: https://www.twine.net/signin

Tech Stack
Layer Technology
Monorepo Turborepo, npm workspaces
Backend Express, TypeScript
Database PostgreSQL, Drizzle ORM
Frontend React 18, TypeScript, Vite
Server State TanStack React Query
Routing TanStack Router
Tables TanStack Table
Forms Zod (validation)
State Zustand (cart)
Payments Stripe (Payment Element)
File Storage AWS S3 (presigned URLs)
Email Nodemailer
Auth JWT (access + refresh), bcrypt
Testing Vitest, Supertest

Project Structure

packages/
db/ Database schema, migrations, and seed data
shared/ Zod schemas, enums, business logic utilities
api/ Express REST API server
web/ React SPA frontend

Authentication
JWT-based auth with access/refresh token pair:

Access token — 15-minute TTL, stored in React memory, sent via Authorization: Bearer header
Refresh token — 7-day TTL, stored in httpOnly cookie
Silent refresh — API client intercepts 401 responses, refreshes the access token, and retries the request
Rate limiting — Login endpoint rate-limited to 5 attempts per 15 minutes per IP