# nicolasnunez05/proyecto-aws-eks-production-ai-platform architecture

> Architecture diagram of the GitHub repository nicolasnunez05/proyecto-aws-eks-production-ai-platform, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform
- Repository: https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform

## Overview

GpuChile is a GPU e-commerce platform with a React storefront and FastAPI API. The main user flow is browsing GPUs, adding items to a session-based cart, and receiving catalog-backed AI recommendations; users can also register or log in, and the API supports image uploads. The README documents PostgreSQL/pgvector, Redis caching, S3 image storage with asynchronous Lambda processing, and Prometheus monitoring. Sampled code confirms the API entry point, AI retrieval/generation, S3 operations, and frontend cart/catalog calls; some route-level wiring is documented but not sampled.

Main entry points: [`apps/backend/app/main.py`](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/main.py) (API Entry), [`apps/backend/app/services/ai_service.py`](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/services/ai_service.py) (RAG Service), [`apps/backend/app/db/database.py`](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/db/database.py) (DB Access), [`apps/frontend/src/App.tsx`](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/App.tsx) (React Storefront)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_webapp["React Storefront<br/>[App.tsx]"]
  node_gpu_pages["GPU Pages<br/>[HomePage.tsx]"]
  node_gpu_client["GPU Client<br/>[gpu.service.ts]"]
  node_cart_state["Cart State<br/>[CartContext.tsx]"]
  node_cart_client["Cart Client<br/>[cart.service.ts]"]
end

subgraph group_api["Backend API"]
  node_api_entry["API Entry<br/>[main.py]"]
  node_gpu_routes["GPU Routes<br/>[gpus.py]"]
  node_auth_routes["Auth Routes<br/>[auth.py]"]
  node_cart_routes["Cart Routes<br/>[cart.py]"]
  node_image_routes["Image Routes<br/>[images.py]"]
  node_ai_service["RAG Service<br/>[ai_service.py]"]
end

subgraph group_data["Data Services"]
  node_db_access["DB Access<br/>[database.py]"]
  node_postgres[("PostgreSQL pgvector")]
  node_redis[("Redis Cache")]
  node_s3_service["S3 Service<br/>[s3_service.py]"]
  node_gpu_models["GPU and User Models<br/>[gpu.py]"]
end

subgraph group_integrations["External Integrations"]
  node_groq["Groq Llama"]
  node_embedding_model["Embedding Model"]
  node_s3[("Amazon S3")]
  node_image_lambda["Image Resizer<br/>[lambda_function.py]"]
  node_prometheus["Prometheus"]
end

node_shopper(("Shopper"))

node_shopper -->|"uses"| node_webapp
node_webapp -->|"renders"| node_gpu_pages
node_gpu_pages -->|"requests catalog"| node_gpu_client
node_gpu_client -->|"calls API"| node_api_entry
node_webapp -->|"updates cart"| node_cart_state
node_cart_state -->|"requests cart"| node_cart_client
node_cart_client -->|"calls API"| node_api_entry
node_api_entry -->|"dispatches"| node_gpu_routes
node_api_entry -->|"dispatches"| node_auth_routes
node_api_entry -->|"dispatches"| node_cart_routes
node_api_entry -->|"dispatches"| node_image_routes
node_api_entry -->|"calls"| node_ai_service
node_gpu_routes -->|"queries"| node_db_access
node_auth_routes -->|"queries and writes"| node_db_access
node_cart_routes -->|"accesses data"| node_db_access
node_cart_routes -->|"caches cart"| node_redis
node_db_access -->|"reads and writes"| node_postgres
node_gpu_models -->|"maps records"| node_postgres
node_ai_service -->|"embeds queries"| node_embedding_model
node_ai_service -->|"retrieves products"| node_postgres
node_ai_service -->|"generates response"| node_groq
node_image_routes -->|"uploads images"| node_s3_service
node_s3_service -->|"stores objects"| node_s3
node_s3 -.->|"triggers processing"| node_image_lambda
node_prometheus -->|"scrapes metrics"| node_api_entry

click node_webapp "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/App.tsx"
click node_gpu_pages "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/pages/HomePage.tsx"
click node_gpu_client "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/services/gpu.service.ts"
click node_cart_state "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/context/CartContext.tsx"
click node_cart_client "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/services/cart.service.ts"
click node_api_entry "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/main.py"
click node_gpu_routes "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/gpus.py"
click node_auth_routes "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/auth.py"
click node_cart_routes "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/cart.py"
click node_image_routes "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/images.py"
click node_ai_service "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/services/ai_service.py"
click node_db_access "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/db/database.py"
click node_s3_service "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/services/s3_service.py"
click node_gpu_models "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/models/gpu.py"
click node_image_lambda "https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/lambda/image-resizer/lambda_function.py"

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_webapp,node_gpu_pages,node_gpu_client,node_cart_state,node_cart_client toneBlue
class node_api_entry,node_gpu_routes,node_auth_routes,node_cart_routes,node_image_routes,node_ai_service toneAmber
class node_db_access,node_postgres,node_redis,node_s3_service,node_gpu_models toneMint
class node_groq,node_embedding_model,node_s3,node_image_lambda,node_prometheus toneRose
class node_shopper toneIndigo
```

## Components

### Storefront

- [React Storefront](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/App.tsx): `apps/frontend/src/App.tsx`
- [GPU Pages](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/pages/HomePage.tsx): `apps/frontend/src/pages/HomePage.tsx`
- [GPU Client](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/services/gpu.service.ts): `apps/frontend/src/services/gpu.service.ts`
- [Cart State](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/context/CartContext.tsx): `apps/frontend/src/context/CartContext.tsx`
- [Cart Client](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/frontend/src/services/cart.service.ts): `apps/frontend/src/services/cart.service.ts`

### Backend API

- [API Entry](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/main.py): `apps/backend/app/main.py`
- [GPU Routes](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/gpus.py): `apps/backend/app/api/routes/gpus.py`
- [Auth Routes](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/auth.py): `apps/backend/app/api/routes/auth.py`
- [Cart Routes](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/cart.py): `apps/backend/app/api/routes/cart.py`
- [Image Routes](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/api/routes/images.py): `apps/backend/app/api/routes/images.py`
- [RAG Service](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/services/ai_service.py): `apps/backend/app/services/ai_service.py`

### Data Services

- [DB Access](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/db/database.py): `apps/backend/app/db/database.py`
- **PostgreSQL pgvector**
- **Redis Cache**
- [S3 Service](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/services/s3_service.py): `apps/backend/app/services/s3_service.py`
- [GPU and User Models](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/apps/backend/app/models/gpu.py): `apps/backend/app/models/gpu.py`

### External Integrations

- **Groq Llama**
- **Embedding Model**
- **Amazon S3**
- [Image Resizer](https://github.com/nicolasnunez05/proyecto-aws-eks-production-ai-platform/blob/main/lambda/image-resizer/lambda_function.py): `lambda/image-resizer/lambda_function.py`
- **Prometheus**

### Other components

- **Shopper**

## Connections

- Shopper → React Storefront: uses
- React Storefront → GPU Pages: renders
- GPU Pages → GPU Client: requests catalog
- GPU Client → API Entry: calls API
- React Storefront → Cart State: updates cart
- Cart State → Cart Client: requests cart
- Cart Client → API Entry: calls API
- API Entry → GPU Routes: dispatches
- API Entry → Auth Routes: dispatches
- API Entry → Cart Routes: dispatches
- API Entry → Image Routes: dispatches
- API Entry → RAG Service: calls
- GPU Routes → DB Access: queries
- Auth Routes → DB Access: queries and writes
- Cart Routes → DB Access: accesses data
- Cart Routes → Redis Cache: caches cart
- DB Access → PostgreSQL pgvector: reads and writes
- GPU and User Models → PostgreSQL pgvector: maps records
- RAG Service → Embedding Model: embeds queries
- RAG Service → PostgreSQL pgvector: retrieves products
- RAG Service → Groq Llama: generates response
- Image Routes → S3 Service: uploads images
- S3 Service → Amazon S3: stores objects
- Amazon S3 → Image Resizer: triggers processing
- Prometheus → API Entry: scrapes metrics
