# ajaypatel001/google-store-devops-project architecture

> Architecture diagram of the GitHub repository ajaypatel001/google-store-devops-project, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ajaypatel001/google-store-devops-project
- Repository: https://github.com/ajaypatel001/google-store-devops-project

## Overview

This repository describes a Google-branded storefront deployed on EKS: shoppers reach the site through ingress, browse category-specific product pages, and can use the Flask API for account signup/login. The backend persists users in RDS. The deployment also includes ArgoCD-managed Kubernetes applications and EFK logging, with Grafana/Prometheus documented as monitoring capabilities. Frontend excerpts show local catalog, filtering, display, and cart interactions, but do not establish a checkout or payment flow. Some integrations are documented but their runtime wiring is not shown in sampled source.

Main entry points: [`EKS-Terraform/main.tf`](https://github.com/ajaypatel001/google-store-devops-project/blob/main/EKS-Terraform/main.tf) (EKS cluster), [`k8s-argocd`](https://github.com/ajaypatel001/google-store-devops-project/tree/main/k8s-argocd) (ArgoCD applications), [`frontend`](https://github.com/ajaypatel001/google-store-devops-project/tree/main/frontend) (Product category sites), [`backend/app.py`](https://github.com/ajaypatel001/google-store-devops-project/blob/main/backend/app.py) (Flask account API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_main_site["Store entry site<br/>[index.html]"]
  node_category_sites["Product category sites"]
  node_catalog_ui["Catalog and cart UI<br/>[script.js]"]
  node_auth_ui["Account interface<br/>[index.html]"]
end

subgraph group_account["Account services"]
  node_api["Flask account API<br/>[app.py]"]
  node_rds[("RDS user database<br/>[app.py]")]
end

subgraph group_platform["EKS platform"]
  node_ingress["Ingress routing<br/>[ingress.yml]"]
  node_eks["EKS cluster<br/>[main.tf]"]
  node_frontend_workloads["Frontend workloads"]
  node_backend_workload["Backend workload"]
  node_argocd["ArgoCD applications"]
end

subgraph group_operations["Operations"]
  node_fluentbit["Fluent Bit collection<br/>[fluentbit-ds.yml]"]
  node_elasticsearch[("Elasticsearch storage")]
  node_kibana["Kibana log views<br/>[kibana-deploy.yml]"]
  node_metrics["Metrics monitoring<br/>[README.md]"]
end

node_shopper(("Shopper"))
node_github["Git repository"]

node_shopper -->|"opens site"| node_ingress
node_ingress -->|"routes requests"| node_main_site
node_main_site -->|"links to categories"| node_category_sites
node_shopper -->|"browses products"| node_category_sites
node_category_sites -->|"renders catalog"| node_catalog_ui
node_shopper -->|"submits credentials"| node_auth_ui
node_auth_ui -->|"calls account API"| node_api
node_api -->|"reads and writes users"| node_rds
node_eks -->|"hosts routing"| node_ingress
node_eks -->|"runs workloads"| node_frontend_workloads
node_eks -->|"runs workload"| node_backend_workload
node_backend_workload -->|"serves API"| node_api
node_argocd -.->|"syncs manifests"| node_github
node_argocd -.->|"deploys apps"| node_frontend_workloads
node_argocd -.->|"deploys app"| node_backend_workload
node_eks -->|"runs log collector"| node_fluentbit
node_fluentbit -->|"ships logs"| node_elasticsearch
node_elasticsearch -->|"provides indexed logs"| node_kibana
node_eks -.->|"monitored by"| node_metrics

click node_ingress "https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/main/ingress.yml"
click node_main_site "https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/main/index.html"
click node_category_sites "https://github.com/ajaypatel001/google-store-devops-project/tree/main/frontend"
click node_catalog_ui "https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/phones/script.js"
click node_auth_ui "https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/main/index.html"
click node_api "https://github.com/ajaypatel001/google-store-devops-project/blob/main/backend/app.py"
click node_rds "https://github.com/ajaypatel001/google-store-devops-project/blob/main/backend/app.py"
click node_eks "https://github.com/ajaypatel001/google-store-devops-project/blob/main/EKS-Terraform/main.tf"
click node_frontend_workloads "https://github.com/ajaypatel001/google-store-devops-project/tree/main/frontend"
click node_backend_workload "https://github.com/ajaypatel001/google-store-devops-project/blob/main/backend/backend-deployment.yml"
click node_argocd "https://github.com/ajaypatel001/google-store-devops-project/tree/main/k8s-argocd"
click node_fluentbit "https://github.com/ajaypatel001/google-store-devops-project/blob/main/efk-stack/fluentbit-ds.yml"
click node_elasticsearch "https://github.com/ajaypatel001/google-store-devops-project/blob/main/efk-stack/elasticsearch-sts.yml"
click node_kibana "https://github.com/ajaypatel001/google-store-devops-project/blob/main/efk-stack/kibana-deploy.yml"
click node_metrics "https://github.com/ajaypatel001/google-store-devops-project/blob/main/grafana-prometheous/README.md"

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_main_site,node_category_sites,node_catalog_ui,node_auth_ui toneBlue
class node_api,node_rds toneAmber
class node_ingress,node_eks,node_frontend_workloads,node_backend_workload,node_argocd toneMint
class node_fluentbit,node_elasticsearch,node_kibana,node_metrics toneRose
class node_shopper,node_github toneIndigo
```

## Components

### Storefront

- [Store entry site](https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/main/index.html): `frontend/main/index.html`
- [Product category sites](https://github.com/ajaypatel001/google-store-devops-project/tree/main/frontend): `frontend`
- [Catalog and cart UI](https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/phones/script.js): `frontend/phones/script.js`
- [Account interface](https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/main/index.html): `frontend/main/index.html`

### Account services

- [Flask account API](https://github.com/ajaypatel001/google-store-devops-project/blob/main/backend/app.py): `backend/app.py`
- [RDS user database](https://github.com/ajaypatel001/google-store-devops-project/blob/main/backend/app.py): `backend/app.py`

### EKS platform

- [Ingress routing](https://github.com/ajaypatel001/google-store-devops-project/blob/main/frontend/main/ingress.yml): `frontend/main/ingress.yml`
- [EKS cluster](https://github.com/ajaypatel001/google-store-devops-project/blob/main/EKS-Terraform/main.tf): `EKS-Terraform/main.tf`
- [Frontend workloads](https://github.com/ajaypatel001/google-store-devops-project/tree/main/frontend): `frontend`
- [Backend workload](https://github.com/ajaypatel001/google-store-devops-project/blob/main/backend/backend-deployment.yml): `backend/backend-deployment.yml`
- [ArgoCD applications](https://github.com/ajaypatel001/google-store-devops-project/tree/main/k8s-argocd): `k8s-argocd`

### Operations

- [Fluent Bit collection](https://github.com/ajaypatel001/google-store-devops-project/blob/main/efk-stack/fluentbit-ds.yml): `efk-stack/fluentbit-ds.yml`
- [Elasticsearch storage](https://github.com/ajaypatel001/google-store-devops-project/blob/main/efk-stack/elasticsearch-sts.yml): `efk-stack/elasticsearch-sts.yml`
- [Kibana log views](https://github.com/ajaypatel001/google-store-devops-project/blob/main/efk-stack/kibana-deploy.yml): `efk-stack/kibana-deploy.yml`
- [Metrics monitoring](https://github.com/ajaypatel001/google-store-devops-project/blob/main/grafana-prometheous/README.md): `grafana-prometheous/README.md`

### Other components

- **Shopper**
- **Git repository**

## Connections

- Shopper → Ingress routing: opens site
- Ingress routing → Store entry site: routes requests
- Store entry site → Product category sites: links to categories
- Shopper → Product category sites: browses products
- Product category sites → Catalog and cart UI: renders catalog
- Shopper → Account interface: submits credentials
- Account interface → Flask account API: calls account API
- Flask account API → RDS user database: reads and writes users
- EKS cluster → Ingress routing: hosts routing
- EKS cluster → Frontend workloads: runs workloads
- EKS cluster → Backend workload: runs workload
- Backend workload → Flask account API: serves API
- ArgoCD applications → Git repository: syncs manifests
- ArgoCD applications → Frontend workloads: deploys apps
- ArgoCD applications → Backend workload: deploys app
- EKS cluster → Fluent Bit collection: runs log collector
- Fluent Bit collection → Elasticsearch storage: ships logs
- Elasticsearch storage → Kibana log views: provides indexed logs
- EKS cluster → Metrics monitoring: monitored by
