Site Review · 03 of 03

TABLE — NYC Dining Guide

SRC_URL: …ak2693_restaurant_app.html

01 — What Is This App?

A restaurant discovery and ordering guide for New York City dining. The app fetches a JSON dataset of six curated NYC restaurants and renders a searchable, filterable grid. Users can browse restaurant cards, open a full detail panel with the complete menu, add dishes and drinks to a persistent cart, and proceed through a mock checkout flow.

The aesthetic mirrors a luxury editorial food publication: dark near-black backgrounds, Playfair Display serif headlines in warm cream, gold accents for prices and ratings, a grid layout with thin separator lines, and slide-in panels for detail views — all deliberately upscale and unhurried.

02 — App Behavior

  • 01A loading screen with animated dots and the wordmark "TABLE" fades out once the JSON fetch resolves. A sticky header with an "Your Order (0)" cart button remains visible while scrolling.
  • 02Hero section displays the guide name, tagline ("Dine Remarkably"), and a brief description — purely editorial, no interaction.
  • 03Controls bar includes a live search field (filters by restaurant name, dish name, or neighborhood), dynamically generated borough filter buttons (built from fetched data), and a sort dropdown (Featured / Rating / Price / Name).
  • 04Restaurant grid renders cards with large serif numbering, name, neighborhood, borough, address, average price per person, price level ($ to $$$$), and three top dish tags. Cards animate in with staggered fade-up delays.
  • 05Clicking a card opens a right-side-sliding modal panel showing full stats, star rating display, a complete "Famous Dishes" list with prices and descriptions, and a Drinks list — each with an "+" add-to-order button.
  • 06The order cart panel slides in from the right when "Your Order" is clicked. It shows all added items grouped with quantity controls (+ / −), and calculates subtotal, NYC tax (8.88%), 20% tip suggestion, and grand total.
  • 07A "Place Order" button triggers a checkout confirmation overlay listing the total, restaurant names, and item count. A "Clear Order" button resets the cart with a toast notification. After checkout, cart is emptied.
  • 08An animated toast notification slides up from the bottom whenever an item is added to the cart, showing the item name.

03 — Unexpected / Issues

Cart Not Persistent

The cart is in-memory only. Refreshing the page empties it completely — there's no localStorage save, which matters if users want to compare options before committing.

Mixed-Restaurant Orders

The app allows adding items from multiple restaurants simultaneously with no warning — real ordering apps block this or clearly group items. The checkout message quietly concatenates restaurant names.

No Restaurant Photos

The JSON apparently includes no image URLs, so all cards are text-only — surprising for a dining guide where food photography is usually central to the appeal.

Stars Half-Rendering

The star rating HTML function renders a Unicode "½" character rather than a proper half-star glyph, which looks inconsistent with the full ★/☆ characters used otherwise.

04 — Improvement Prompt

You are improving the TABLE NYC Dining Guide web app. Maintain the existing dark luxury editorial aesthetic (Playfair Display, dark backgrounds, gold accents, slide-in panels, animated dot loader). Apply these enhancements: 1. PERSISTENT CART: Save the cart array to localStorage on every update. On page load, restore the cart from localStorage and update the cart count in the header immediately. Add a small "(saved)" indicator near the cart button when items are loaded from storage. 2. RESTAURANT CONFLICT WARNING: When a user adds an item from Restaurant B while their cart already contains items from Restaurant A, show a modal confirmation: "Your cart has items from [Restaurant A]. Add from [Restaurant B] anyway, or start a new order?" with two buttons — "Add Anyway" and "Start Fresh." 3. AI SOMMELIER: In each restaurant's detail panel, add a "Pair a Wine" button. When clicked, call the Anthropic API (claude-sonnet-4-20250514) with a prompt: "Given these dishes from [restaurant name]: [list of items in cart from that restaurant], suggest one specific wine pairing in 2 sentences. Be specific and elegant." Render the response in a styled card inside the modal panel with a wine glass icon. 4. FIXED STAR RENDERING: Replace the ½ character in the star renderer with a CSS clip-path half-filled star using a gold gradient. Each star should be a proper 5-pointed SVG star shape, either fully filled, half-filled (left half gold, right half outline), or empty. 5. MAP VIEW TOGGLE: Add a toggle button in the controls bar to switch between the current grid view and a simplified borough map view — a schematic NYC map showing each restaurant as a labeled gold pin at its approximate borough location, using SVG. Keep all existing search, filter, sort, and checkout functionality intact.