A modern sushi ordering web app built with Next.js, TypeScript, Tailwind CSS, and the App Router.
- Responsive sushi menu page with product cards
- Product card includes image, name, price, and ingredients
- Add/remove quantity controls directly from menu cards
- Dedicated cart page with:
- all picked items
- per-item quantity controls (
-/+) - per-item line total (
price x quantity) - overall order total
Complete orderbutton (UI ready)
- Cart state persisted in
localStorage
- Next.js 15 (App Router)
- React 19
- TypeScript
- Tailwind CSS
- ESLint
/- landing page/menu- sushi menu and quick cart summary/cart- editable cart with total price
app/
page.tsx # Landing page
menu/page.tsx # Menu page
cart/page.tsx # Cart page
layout.tsx
globals.css
components/
SushiMenuCard.tsx
data/
sushiMenu.ts
lib/
cart.ts # localStorage read/write helpers
public/sushi/
*.svg # Sushi images
npm installnpm run devOpen http://localhost:3000.
npm run dev- start development servernpm run build- build for productionnpm run start- run production servernpm run lint- run ESLint
Cart data is stored in browser localStorage under the key:
mo-sushi-cart
This means cart contents persist across page reloads in the same browser.
- This project currently uses client-side cart storage only (no backend/database).
Complete orderis currently a UI button and not yet connected to an API.