# victorcolmenaresmoa-max/guti-supplements architecture

> Architecture diagram of the GitHub repository victorcolmenaresmoa-max/guti-supplements, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/victorcolmenaresmoa-max/guti-supplements
- Repository: https://github.com/victorcolmenaresmoa-max/guti-supplements

## Overview

GutiSupplements is a Spanish-language supplement storefront with product and promotion browsing, product details, a request-based checkout, and a private store-management area. Customers browse the catalog, inspect products, and submit order requests for staff follow-up rather than automatic payment; administrators manage catalog content, orders, and sellers. The sampled API route confirms Supabase-backed product, promotion, order, and seller operations and session validation. Checkout wiring and several component/API implementations were not sampled, so uncertain internal links are omitted.

Main entry points: [`app/admin/page.tsx`](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/admin/page.tsx) (Admin console), [`lib/api.ts`](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/lib/api.ts) (API client), [`app/page.tsx`](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/page.tsx) (Storefront home), [`components/ProductDetailView.tsx`](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/ProductDetailView.tsx) (Product details)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_home["Storefront home<br/>[page.tsx]"]
  node_product_route["Product route<br/>[page.tsx]"]
  node_product_detail["Product details"]
  node_product_card["Product cards<br/>[ProductCard.tsx]"]
  node_promotions["Promotions"]
  node_creatina["Creatine feature<br/>[page.tsx]"]
end

subgraph group_purchase["Purchase"]
  node_cart["Cart state<br/>[CartContext.tsx]"]
  node_cart_drawer["Cart drawer<br/>[CartDrawer.tsx]"]
  node_checkout["Checkout form<br/>[CheckoutForm.tsx]"]
end

subgraph group_admin["Administration"]
  node_admin_page["Admin console<br/>[page.tsx]"]
  node_admin_products["Product management"]
  node_admin_product_form["Product editor"]
  node_admin_promotions["Promotion management"]
  node_admin_promo_form["Promotion editor"]
  node_admin_orders["Order management<br/>[AdminOrderList.tsx]"]
  node_admin_sellers["Seller dashboard"]
  node_admin_rates["Rate control"]
end

subgraph group_backend["Backend"]
  node_session_route["Session endpoint<br/>[route.ts]"]
  node_store_route["Store API<br/>[route.ts]"]
  node_api_client["API client<br/>[api.ts]"]
  node_admin_auth["Session validation<br/>[admin-auth.ts]"]
  node_supabase_rest["Supabase REST<br/>[supabase-rest.ts]"]
  node_database[("Store database")]
end

node_customer(("Customer"))
node_admin_user(("Administrator"))

node_customer -->|"browses"| node_home
node_home -->|"loads catalog"| node_api_client
node_home -->|"displays products"| node_product_card
node_home -->|"shows offers"| node_promotions
node_product_card -->|"opens product"| node_product_route
node_product_route -->|"renders"| node_product_detail
node_product_detail -->|"loads product"| node_api_client
node_product_detail -->|"adds items"| node_cart
node_cart -->|"provides state"| node_cart_drawer
node_cart_drawer -->|"starts request"| node_checkout
node_checkout -->|"submits order"| node_api_client
node_api_client -->|"requests data"| node_store_route
node_store_route -->|"queries"| node_supabase_rest
node_supabase_rest -->|"reads and writes"| node_database
node_admin_user -->|"manages store"| node_admin_page
node_admin_page -->|"checks session"| node_session_route
node_session_route -->|"validates credentials"| node_admin_auth
node_admin_page -->|"loads and updates"| node_api_client
node_admin_page -->|"manages products"| node_admin_products
node_admin_page -->|"edits products"| node_admin_product_form
node_admin_page -->|"manages offers"| node_admin_promotions
node_admin_page -->|"edits offers"| node_admin_promo_form
node_admin_page -->|"reviews orders"| node_admin_orders
node_admin_page -->|"manages sellers"| node_admin_sellers
node_admin_page -->|"controls rate"| node_admin_rates
node_store_route -->|"checks session"| node_admin_auth

click node_home "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/page.tsx"
click node_product_route "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/producto/%5Bid%5D/page.tsx"
click node_product_detail "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/ProductDetailView.tsx"
click node_product_card "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/ProductCard.tsx"
click node_promotions "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/PromotionsSection.tsx"
click node_creatina "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/creatina/page.tsx"
click node_cart "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/context/CartContext.tsx"
click node_cart_drawer "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/CartDrawer.tsx"
click node_checkout "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/CheckoutForm.tsx"
click node_admin_page "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/admin/page.tsx"
click node_admin_products "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminProductList.tsx"
click node_admin_product_form "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminProductForm.tsx"
click node_admin_promotions "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminPromotionList.tsx"
click node_admin_promo_form "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminPromotionForm.tsx"
click node_admin_orders "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminOrderList.tsx"
click node_admin_sellers "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminSellerDashboard.tsx"
click node_admin_rates "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminRateControl.tsx"
click node_session_route "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/api/admin/session/route.ts"
click node_store_route "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/api/store/route.ts"
click node_api_client "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/lib/api.ts"
click node_admin_auth "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/lib/admin-auth.ts"
click node_supabase_rest "https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/lib/supabase-rest.ts"

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_home,node_product_route,node_product_detail,node_product_card,node_promotions,node_creatina toneBlue
class node_cart,node_cart_drawer,node_checkout toneAmber
class node_admin_page,node_admin_products,node_admin_product_form,node_admin_promotions,node_admin_promo_form,node_admin_orders,node_admin_sellers,node_admin_rates toneMint
class node_session_route,node_store_route,node_api_client,node_admin_auth,node_supabase_rest,node_database toneRose
class node_customer,node_admin_user toneIndigo
```

## Components

### Storefront

- [Storefront home](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/page.tsx): `app/page.tsx`
- [Product route](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/producto/%5Bid%5D/page.tsx): `app/producto/[id]/page.tsx`
- [Product details](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/ProductDetailView.tsx): `components/ProductDetailView.tsx`
- [Product cards](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/ProductCard.tsx): `components/ProductCard.tsx`
- [Promotions](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/PromotionsSection.tsx): `components/PromotionsSection.tsx`
- [Creatine feature](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/creatina/page.tsx): `app/creatina/page.tsx`

### Purchase

- [Cart state](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/context/CartContext.tsx): `context/CartContext.tsx`
- [Cart drawer](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/CartDrawer.tsx): `components/CartDrawer.tsx`
- [Checkout form](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/CheckoutForm.tsx): `components/CheckoutForm.tsx`

### Administration

- [Admin console](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/admin/page.tsx): `app/admin/page.tsx`
- [Product management](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminProductList.tsx): `components/AdminProductList.tsx`
- [Product editor](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminProductForm.tsx): `components/AdminProductForm.tsx`
- [Promotion management](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminPromotionList.tsx): `components/AdminPromotionList.tsx`
- [Promotion editor](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminPromotionForm.tsx): `components/AdminPromotionForm.tsx`
- [Order management](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminOrderList.tsx): `components/AdminOrderList.tsx`
- [Seller dashboard](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminSellerDashboard.tsx): `components/AdminSellerDashboard.tsx`
- [Rate control](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/components/AdminRateControl.tsx): `components/AdminRateControl.tsx`

### Backend

- [Session endpoint](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/api/admin/session/route.ts): `app/api/admin/session/route.ts`
- [Store API](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/app/api/store/route.ts): `app/api/store/route.ts`
- [API client](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/lib/api.ts): `lib/api.ts`
- [Session validation](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/lib/admin-auth.ts): `lib/admin-auth.ts`
- [Supabase REST](https://github.com/victorcolmenaresmoa-max/guti-supplements/blob/main/lib/supabase-rest.ts): `lib/supabase-rest.ts`
- **Store database**

### Other components

- **Customer**
- **Administrator**

## Connections

- Customer → Storefront home: browses
- Storefront home → API client: loads catalog
- Storefront home → Product cards: displays products
- Storefront home → Promotions: shows offers
- Product cards → Product route: opens product
- Product route → Product details: renders
- Product details → API client: loads product
- Product details → Cart state: adds items
- Cart state → Cart drawer: provides state
- Cart drawer → Checkout form: starts request
- Checkout form → API client: submits order
- API client → Store API: requests data
- Store API → Supabase REST: queries
- Supabase REST → Store database: reads and writes
- Administrator → Admin console: manages store
- Admin console → Session endpoint: checks session
- Session endpoint → Session validation: validates credentials
- Admin console → API client: loads and updates
- Admin console → Product management: manages products
- Admin console → Product editor: edits products
- Admin console → Promotion management: manages offers
- Admin console → Promotion editor: edits offers
- Admin console → Order management: reviews orders
- Admin console → Seller dashboard: manages sellers
- Admin console → Rate control: controls rate
- Store API → Session validation: checks session
