Files
2026-06-29 17:57:54 -04:00

1.8 KiB

Scope: Premium Mega Menu Implementation

Architecture

  • Prisma schema defines the database structure for Menu and MenuItem.
  • Types in packages/types/index.ts share structures between backend, admin panel, SPA, website.
  • Backend routes under apps/backend/src/routes/menus.ts read/write menu configs.
  • MCP Server (apps/mcp-server) exposes tools to inspect and modify menus (menu-tools.ts/menu-toolkit.ts).
  • Admin Panel (apps/admin) uses TreeNodeEditor in MenuManagerPage.tsx to edit rootImage, columnImage, hoverImage.
  • SPA Storefront (apps/spa) uses menuStore.ts and renders navigation with DesktopMegaMenu.tsx and MobileDrawer.tsx.
  • Website (apps/website) uses menuTypes.ts and renders navigation with DesktopMegaMenu.tsx and MobileDrawer.tsx (next/image, lazy loading, fade-in animations).

Milestones

# Name Scope Dependencies Status
1 Planning & Scope Create and initialize SCOPE.md, progress.md none DONE
2 M2: Backend & DB Update Prisma schema, run migration, update types, apps/backend routes, and apps/mcp-server M1 BLOCKED: Vetoed by Reviewer & Challenger
3 M3: Frontend & UI Update apps/admin, apps/spa, and apps/website menus UI components M2 PLANNED
4 M4: Monorepo Build Verification Run builds and typechecks across all 4 apps and packages M3 PLANNED
5 M5: E2E Integration Coordinate with E2E Testing Track, run E2E tests, fix bugs, final audit M4 PLANNED

Interface Contracts

Database Schema

  • Menu table gets optional field rootImage (String?)
  • MenuItem table gets optional fields columnImage (String?), hoverImage (String?)

Types (packages/types/index.ts)

  • Menu type gets rootImage?: string | null
  • MenuItem type gets columnImage?: string | null, hoverImage?: string | null