# joshibhaskar684/e-commerece-frontend architecture

> Architecture diagram of the GitHub repository joshibhaskar684/e-commerece-frontend, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/joshibhaskar684/e-commerece-frontend
- Repository: https://github.com/joshibhaskar684/e-commerece-frontend

## Overview

1. **Overall shape**
   - This is a **Next.js App Router** storefront organized around route segments under `src/app`.
   - The repository is split into **route-level pages/layouts**, **shared UI components**, and a **Redux-based client state layer**.
   - The architecture is front-end heavy: there is no obvious full backend in the tree beyond a few Next.js API routes for logout.

2. **Route hierarchy and shell**
   - `src/app/layout.js` and `src/app/globals.css` define the global application shell and styling baseline.
   - `src/app/(public)/layout.jsx` provides the main public-site frame, while `src/app/(public)/(account)/layout.jsx` wraps authenticated account pages.
   - This separation suggests two major UI boundaries: **public storefront browsing** and **signed-in account management**.

3. **Public storefront pages**
   - The public area includes the home page, product listing, product detail, search, and policy pages.
   - Key routes:
     - `/` via `src/app/(public)/page.jsx`
     - `/products` and `/products/[productid]`
     - `/search`
     - `/policy/privacy` and `/policy/terms`
   - This is the primary customer-facing navigation surface.

4. **Product browsing and catalog flow**
   - Product-related route code lives in `src/app/(public)/products`.
   - `products.js` appears to be the local catalog/source data used by the product pages.
   - Supporting components under `src/components/Products` handle:
     - product cards
     - empty-state cards
     - loading skeletons
     - sidebar filters and sort options
     - product detail hero sections
   - The data flow is likely: catalog data → Redux products state / route page → product list/detail components → filters/sort UI.

5. **Search and discovery**
   - `src/app/(public)/search/page.jsx` is a dedicated discovery route.
   - Search/filtering is reinforced by the product sidebar components and by reusable list/card components.
   - The architecture suggests that search results are rendered as another view over the same catalog, not a separate subsystem.

6. **Account area**
   - The account section is grouped under `src/app/(public)/(account)/account`.
   - Pages include:
     - `/account/cart`
     - `/account/orders`
     - `/account/orders/[orderId]`
     - `/account/profile`
     - `/account/wishlist`
   - These pages represent the user’s post-login workspace and likely depend heavily on Redux state for cart, user, orders, and wishlist.

7. **State management boundary**
   - Global application state is centralized in `src/redux-store`.
   - Slices exist for:
     - `cart`
     - `user`
     - `products`
     - `wishList`
     - `order`
     - `checkout`
     - `address`
     - `Categories`
   - Each slice has its own `action.js`, `actiontype.js`, and `reducer.js`, with `store.js` assembling the root store and `ReduxProvider` exposing it to the app.
   - This is the main data orchestration layer connecting UI, catalog data, checkout state, and user/account state.

8. **Likely data flow through Redux**
   - UI components dispatch actions to mutate local app state and trigger async loading.
   - Product browsing, cart management, wishlist updates, checkout, and order views are all modeled as separate state domains instead of being embedded in individual screens.
   - That means the key architectural diagram should show **route components consuming Redux slices**, rather than each page owning its own isolated state.

9. **Component organization**
   - Shared UI is grouped by feature under `src/components`, not by technical layer.
   - Major feature folders include:
     - `Home` for hero/category/collection sections
     - `Navbar` for navigation and search
     - `Modal` and `ModalAi` for overlays
     - `Cart`, `Orders`, `Products` for commerce flows
     - `Login` and `signup` for auth screens
     - `Footer` for site-wide chrome
   - This reflects a **feature-first component architecture** that maps directly to user journeys.

10. **Home page composition**
    - The home screen is assembled from modular sections in `src/components/Home/HomeComponent`.
    - There are multiple category/collection feature blocks such as:
      - hero carousel
      - featured
      - collections
      - category section
      - product-themed sections like women’s, men’s, saree, cooking essentials, and smartphones
    - This implies the home page is a merchandising surface composed from reusable content modules, not a single monolithic page.

11. **Authentication and session handling**
    - Login, signup, and auth modal components exist, but the backend contract is intentionally thin in the visible tree.
    - `src/app/api/logout/route.js`, `logout-admin/route.js`, and an extra `logout copy` route indicate server-side session termination endpoints within Next.js.
    - The README mentions JWT authentication and protected routes, so the session boundary is likely handled through token-based auth plus route protection logic.

12. **Routing protection and request mediation**
    - `src/proxy.js` suggests route-level request interception or middleware-style guarding.
    - Combined with account layouts and logout routes, this implies protected account areas and session-aware navigation without a separate backend gateway in the repo.

13. **SEO and platform metadata**
    - `src/app/robots.js` and `src/app/sitemap.js` show explicit SEO support.
    - `src/app/not-found.js` handles the error boundary for missing routes.
    - These are important architectural pieces because the app is intended to be indexable and production-deployable as a storefront.

14. **Technology and deployment posture**
    - The repo is built for **Next.js + React** with **Redux Toolkit** state management, and the README calls out SSR, responsive UI, and deployment on Vercel/Netlify/custom server.
    - Styling appears to use **Tailwind/CSS modules/PostCSS** based on the config files.
    - Overall, the architecture is a **single Next.js frontend application** with routed pages, Redux-managed commerce state, and small API endpoints for session/logout rather than a large standalone backend.

Main entry points: [`src/app/(public)/layout.jsx`](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/layout.jsx) (Public layout), [`src/redux-store/store.js`](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/redux-store/store.js) (Store), [`src/app/(public)/(account)/layout.jsx`](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/layout.jsx) (Account layout), [`src/app/layout.js`](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/layout.js) (Root layout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app_shell["App shell"]
  node_app_layout["Root layout<br/>Next layout<br/>[layout.js]"]
  node_globals_css["Global styles<br/>CSS baseline<br/>[globals.css]"]
  node_proxy{{"Route proxy<br/>Guard layer<br/>[proxy.js]"}}
  node_not_found["Not found<br/>Error page<br/>[not-found.js]"]
  node_robots["Robots<br/>SEO file<br/>[robots.js]"]
  node_sitemap["Sitemap<br/>SEO file<br/>[sitemap.js]"]
end

subgraph group_public_ui["Public store"]
  node_public_layout["Public layout<br/>Next layout<br/>[layout.jsx]"]
  node_home_page["Home<br/>Route page<br/>[page.jsx]"]
  node_products_layout["Products layout<br/>Next layout<br/>[layout.jsx]"]
  node_products_page["Products<br/>Catalog route<br/>[page.jsx]"]
  node_product_detail["Product detail<br/>Product route<br/>[page.jsx]"]
  node_search_page["Search<br/>Discovery route<br/>[page.jsx]"]
  node_privacy_page["Privacy<br/>Policy page<br/>[page.jsx]"]
  node_terms_page["Terms<br/>Policy page<br/>[page.jsx]"]
end

subgraph group_account_ui["Account area"]
  node_account_layout["Account layout<br/>Next layout<br/>[layout.jsx]"]
  node_cart_page["Cart<br/>Account page<br/>[page.jsx]"]
  node_orders_page["Orders<br/>Account page<br/>[page.jsx]"]
  node_order_detail_page["Order detail<br/>Account page<br/>[page.jsx]"]
  node_profile_page["Profile<br/>Account page<br/>[page.jsx]"]
  node_wishlist_page["Wishlist<br/>Account page<br/>[page.jsx]"]
end

subgraph group_state["Redux state"]
  node_redux_provider["Redux provider<br/>Store bridge<br/>[ReduxProvider.js]"]
  node_store[("Store<br/>[store.js]")]
  node_products_slice["Products slice<br/>Redux slice"]
  node_cart_slice["Cart slice<br/>Redux slice"]
  node_user_slice["User slice<br/>Redux slice"]
  node_wishlist_slice["WishList slice<br/>Redux slice"]
  node_order_slice["Order slice<br/>Redux slice"]
  node_checkout_slice["Checkout slice<br/>Redux slice"]
  node_address_slice["Address slice<br/>Redux slice"]
  node_categories_slice["Categories slice<br/>Redux slice"]
end

subgraph group_components["Shared components"]
  node_main_home["Home modules<br/>UI composition<br/>[MainHomePage.jsx]"]
  node_navbar["Navbar<br/>Navigation UI<br/>[page.jsx]"]
  node_footer["Footer<br/>Site chrome<br/>[page.jsx]"]
  node_product_list["Product list<br/>List UI"]
end

subgraph group_api["API routes"]
end

node_app_layout -->|"wraps"| node_redux_provider
node_app_layout -->|"loads"| node_globals_css
node_app_layout -->|"renders"| node_public_layout
node_app_layout -.->|"serves"| node_robots
node_app_layout -.->|"serves"| node_sitemap
node_app_layout -.->|"falls back to"| node_not_found
node_public_layout -->|"contains"| node_navbar
node_public_layout -->|"contains"| node_footer
node_public_layout -->|"frames"| node_home_page
node_public_layout -->|"nests"| node_products_layout
node_public_layout -->|"nests"| node_account_layout
node_public_layout -->|"routes to"| node_search_page
node_public_layout -->|"routes to"| node_privacy_page
node_public_layout -->|"routes to"| node_terms_page
node_products_layout -->|"frames"| node_products_page
node_products_layout -->|"frames"| node_product_detail
node_products_page -->|"uses"| node_product_list
node_products_page -->|"reads"| node_products_slice
node_products_page -->|"filters by"| node_categories_slice
node_product_detail -->|"reads"| node_products_slice
node_search_page -->|"uses"| node_product_list
node_home_page -->|"composes"| node_main_home
node_home_page -->|"reads"| node_categories_slice
node_account_layout -->|"contains"| node_cart_page
node_account_layout -->|"contains"| node_orders_page
node_account_layout -->|"contains"| node_order_detail_page
node_account_layout -->|"contains"| node_profile_page
node_account_layout -->|"contains"| node_wishlist_page
node_cart_page -->|"reads"| node_cart_slice
node_cart_page -->|"advances to"| node_checkout_slice
node_cart_page -->|"uses"| node_address_slice
node_orders_page -->|"reads"| node_order_slice
node_order_detail_page -->|"reads"| node_order_slice
node_profile_page -->|"reads"| node_user_slice
node_wishlist_page -->|"reads"| node_wishlist_slice
node_redux_provider -->|"provides"| node_store
node_store -->|"combines"| node_products_slice
node_store -->|"combines"| node_cart_slice
node_store -->|"combines"| node_user_slice
node_store -->|"combines"| node_wishlist_slice
node_store -->|"combines"| node_order_slice
node_store -->|"combines"| node_checkout_slice
node_store -->|"combines"| node_address_slice
node_store -->|"combines"| node_categories_slice
node_proxy -.->|"protects"| node_account_layout
node_proxy -.->|"depends on"| node_user_slice

click node_app_layout "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/layout.js"
click node_globals_css "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/globals.css"
click node_proxy "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/proxy.js"
click node_not_found "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/not-found.js"
click node_robots "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/robots.js"
click node_sitemap "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/sitemap.js"
click node_public_layout "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/layout.jsx"
click node_home_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/page.jsx"
click node_products_layout "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/products/layout.jsx"
click node_products_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/products/page.jsx"
click node_product_detail "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/products/[productid]/page.jsx"
click node_search_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/search/page.jsx"
click node_privacy_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/policy/privacy/page.jsx"
click node_terms_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/policy/terms/page.jsx"
click node_account_layout "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/layout.jsx"
click node_cart_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/cart/page.jsx"
click node_orders_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/orders/page.jsx"
click node_order_detail_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/orders/[orderId]/page.jsx"
click node_profile_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/profile/page.jsx"
click node_wishlist_page "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/wishlist/page.jsx"
click node_redux_provider "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/redux-store/ReduxProvider/ReduxProvider.js"
click node_store "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/redux-store/store.js"
click node_products_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/products"
click node_cart_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/cart"
click node_user_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/user"
click node_wishlist_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/wishList"
click node_order_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/Order"
click node_checkout_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/checkout"
click node_address_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/address"
click node_categories_slice "https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/Categories"
click node_main_home "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/Home/MainHomePage.jsx"
click node_navbar "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/Navbar/page.jsx"
click node_footer "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/Footer/page.jsx"
click node_product_list "https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/UniversalComponnets/ProductListComponent/ProductListComponent.jsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app_layout,node_globals_css,node_proxy,node_not_found,node_robots,node_sitemap toneBlue
class node_public_layout,node_home_page,node_products_layout,node_products_page,node_product_detail,node_search_page,node_privacy_page,node_terms_page toneAmber
class node_account_layout,node_cart_page,node_orders_page,node_order_detail_page,node_profile_page,node_wishlist_page toneMint
class node_redux_provider,node_store,node_products_slice,node_cart_slice,node_user_slice,node_wishlist_slice,node_order_slice,node_checkout_slice,node_address_slice,node_categories_slice toneRose
class node_main_home,node_navbar,node_footer,node_product_list toneIndigo
```

## Components

### App shell

Global Next.js shell, metadata, and request gating

- [Root layout](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/layout.js): Next layout · Global app shell and providers entry · `src/app/layout.js`
- [Global styles](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/globals.css): CSS baseline · Application-wide styling foundation · `src/app/globals.css`
- [Route proxy](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/proxy.js): Guard layer · Request interception and route protection · `src/proxy.js`
- [Not found](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/not-found.js): Error page · Fallback for missing routes · `src/app/not-found.js`
- [Robots](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/robots.js): SEO file · Crawler directives · `src/app/robots.js`
- [Sitemap](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/sitemap.js): SEO file · Site index generation · `src/app/sitemap.js`

### Public store

Browsing and discovery routes for the storefront

- [Public layout](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/layout.jsx): Next layout · Main storefront frame · `src/app/(public)/layout.jsx`
- [Home](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/page.jsx): Route page · Merchandising landing page · `src/app/(public)/page.jsx`
- [Products layout](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/products/layout.jsx): Next layout · Catalog route frame · `src/app/(public)/products/layout.jsx`
- [Products](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/products/page.jsx): Catalog route · Product listing and filtering view · `src/app/(public)/products/page.jsx`
- [Product detail](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/products/[productid]/page.jsx): Product route · Single product page · `src/app/(public)/products/[productid]/page.jsx`
- [Search](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/search/page.jsx): Discovery route · Catalog search results view · `src/app/(public)/search/page.jsx`
- [Privacy](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/policy/privacy/page.jsx): Policy page · Privacy policy route · `src/app/(public)/policy/privacy/page.jsx`
- [Terms](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/policy/terms/page.jsx): Policy page · Terms policy route · `src/app/(public)/policy/terms/page.jsx`

### Account area

Signed-in customer workspace

- [Account layout](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/layout.jsx): Next layout · Authenticated account frame · `src/app/(public)/(account)/layout.jsx`
- [Cart](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/cart/page.jsx): Account page · Basket and checkout entry point · `src/app/(public)/(account)/account/cart/page.jsx`
- [Orders](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/orders/page.jsx): Account page · Order history listing · `src/app/(public)/(account)/account/orders/page.jsx`
- [Order detail](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/orders/[orderId]/page.jsx): Account page · Single order view · `src/app/(public)/(account)/account/orders/[orderId]/page.jsx`
- [Profile](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/profile/page.jsx): Account page · Customer profile settings · `src/app/(public)/(account)/account/profile/page.jsx`
- [Wishlist](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/app/(public)/(account)/account/wishlist/page.jsx): Account page · Saved items view · `src/app/(public)/(account)/account/wishlist/page.jsx`

### Redux state

Centralized client state and store wiring

- [Redux provider](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/redux-store/ReduxProvider/ReduxProvider.js): Store bridge · Exposes app state to React tree · `src/redux-store/ReduxProvider/ReduxProvider.js`
- [Store](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/redux-store/store.js): Redux store · Root store assembly · `src/redux-store/store.js`
- [Products slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/products): Redux slice · Catalog and product state · `src/redux-store/products`
- [Cart slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/cart): Redux slice · Cart state and mutations · `src/redux-store/cart`
- [User slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/user): Redux slice · Auth and account state · `src/redux-store/user`
- [WishList slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/wishList): Redux slice · Saved item state · `src/redux-store/wishList`
- [Order slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/Order): Redux slice · Orders and order details · `src/redux-store/Order`
- [Checkout slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/checkout): Redux slice · Checkout workflow state · `src/redux-store/checkout`
- [Address slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/address): Redux slice · Shipping address state · `src/redux-store/address`
- [Categories slice](https://github.com/joshibhaskar684/e-commerece-frontend/tree/main/src/redux-store/Categories): Redux slice · Category browsing state · `src/redux-store/Categories`

### Shared components

Feature-first reusable UI modules

- [Home modules](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/Home/MainHomePage.jsx): UI composition · Composed home page sections · `src/components/Home/MainHomePage.jsx`
- [Navbar](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/Navbar/page.jsx): Navigation UI · Top-level navigation and search · `src/components/Navbar/page.jsx`
- [Footer](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/Footer/page.jsx): Site chrome · Global footer component · `src/components/Footer/page.jsx`
- [Product list](https://github.com/joshibhaskar684/e-commerece-frontend/blob/main/src/components/UniversalComponnets/ProductListComponent/ProductListComponent.jsx): List UI · Reusable product listing view · `src/components/UniversalComponnets/ProductListComponent/ProductListComponent.jsx`

## Connections

- Root layout → Redux provider: wraps · Makes the store available to all routes
- Root layout → Global styles: loads · Applies global styling
- Root layout → Public layout: renders · Entrypoint into the storefront route tree
- Root layout → Robots: serves · SEO metadata endpoints
- Root layout → Sitemap: serves · SEO metadata endpoints
- Root layout → Not found: falls back to · Handles missing routes
- Public layout → Navbar: contains · Shared storefront navigation
- Public layout → Footer: contains · Shared storefront footer
- Public layout → Home: frames · Public browsing surfaces
- Public layout → Products layout: nests · Catalog route subtree
- Public layout → Account layout: nests · Authenticated account subtree
- Public layout → Search: routes to · Discovery view
- Public layout → Privacy: routes to · Policy page
- Public layout → Terms: routes to · Policy page
- Products layout → Products: frames · Catalog listing route
- Products layout → Product detail: frames · Single-product route
- Products → Product list: uses · Renders catalog results
- Products → Products slice: reads · Consumes catalog state
- Products → Categories slice: filters by · Category-driven browsing
- Product detail → Products slice: reads · Looks up the selected product
- Search → Product list: uses · Displays search results with shared list UI
- Home → Home modules: composes · Assembles merchandised sections
- Home → Categories slice: reads · Category landing content
- Account layout → Cart: contains · Customer workspace routes
- Account layout → Orders: contains · Customer workspace routes
- Account layout → Order detail: contains · Customer workspace routes
- Account layout → Profile: contains · Customer workspace routes
- Account layout → Wishlist: contains · Customer workspace routes
- Cart → Cart slice: reads · Cart state drives the view
- Cart → Checkout slice: advances to · Checkout handoff
- Cart → Address slice: uses · Shipping information
- Orders → Order slice: reads · Shows order history
- Order detail → Order slice: reads · Shows one order
- Profile → User slice: reads · Account profile state
- Wishlist → WishList slice: reads · Saved items state
- Redux provider → Store: provides · Binds the root store to React
- Store → Products slice: combines · Root reducer domain
- Store → Cart slice: combines · Root reducer domain
- Store → User slice: combines · Root reducer domain
- Store → WishList slice: combines · Root reducer domain
- Store → Order slice: combines · Root reducer domain
- Store → Checkout slice: combines · Root reducer domain
- Store → Address slice: combines · Root reducer domain
- Store → Categories slice: combines · Root reducer domain
- Route proxy → Account layout: protects · Gatekeeping for authenticated areas
- Route proxy → User slice: depends on · Session-aware routing
