1.8 KiB
1.8 KiB
Scope: Premium Mega Menu Implementation
Architecture
- Prisma schema defines the database structure for Menu and MenuItem.
- Types in
packages/types/index.tsshare structures between backend, admin panel, SPA, website. - Backend routes under
apps/backend/src/routes/menus.tsread/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 inMenuManagerPage.tsxto edit rootImage, columnImage, hoverImage. - SPA Storefront (
apps/spa) usesmenuStore.tsand renders navigation withDesktopMegaMenu.tsxandMobileDrawer.tsx. - Website (
apps/website) usesmenuTypes.tsand renders navigation withDesktopMegaMenu.tsxandMobileDrawer.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 | PLANNED |
| 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