# tvijaykumarsoftware-git/ecommerceportal architecture

> Architecture diagram of the GitHub repository tvijaykumarsoftware-git/ecommerceportal, 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/tvijaykumarsoftware-git/ecommerceportal
- Repository: https://github.com/tvijaykumarsoftware-git/ecommerceportal

## Overview

EcommerceAPI is an ASP.NET Core e-commerce API. A customer authenticates, browses products and categories, manages a cart, and submits an order; order creation converts cart items into order items, records a transaction and invoice, then clears the cart. Users can also manage profiles and retrieve invoices, while administrative endpoints cover catalog and transaction management. The graph reflects sampled controller behavior and the DbContext; several controller implementations were not sampled, so their internal wiring is left unspecified.

Main entry points: [`EcommerceAPI/Program.cs`](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Program.cs) (App pipeline), [`EcommerceAPI/Data/EcommerceStoreDbContext.cs`](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Data/EcommerceStoreDbContext.cs) (Store context), [`EcommerceAPI/Controllers/AuthController.cs`](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/AuthController.cs) (Authentication), [`EcommerceAPI/Controllers/ProductsController.cs`](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/ProductsController.cs) (Products API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["API runtime"]
  node_program["App pipeline<br/>[Program.cs]"]
end

subgraph group_identity["Identity and catalog"]
  node_auth["Authentication<br/>[AuthController.cs]"]
  node_registerdto["Account DTOs<br/>[RegisterDto.cs]"]
  node_products["Products API"]
  node_categories["Categories API"]
  node_productmodel["Product model<br/>[Product.cs]"]
end

subgraph group_commerce["Commerce operations"]
  node_cart["Cart API<br/>[CartController.cs]"]
  node_orders["Orders API"]
  node_transactions["Transactions API"]
  node_invoices["Invoices API"]
end

subgraph group_storage["Persistence"]
  node_dbcontext["Store context"]
end

node_client(("API client"))
node_database[("SQL Server")]
node_profilefiles[("Profile uploads")]

node_client -->|"sends requests"| node_program
node_program -->|"routes requests"| node_auth
node_program -->|"routes requests"| node_products
node_program -->|"routes requests"| node_categories
node_program -->|"routes requests"| node_cart
node_program -->|"routes requests"| node_orders
node_program -->|"routes requests"| node_transactions
node_program -->|"routes requests"| node_invoices
node_auth -->|"accepts DTOs"| node_registerdto
node_auth -->|"reads and writes"| node_dbcontext
node_auth -->|"writes uploads"| node_profilefiles
node_products -->|"reads and writes"| node_dbcontext
node_products -->|"uses model"| node_productmodel
node_categories -->|"reads and writes"| node_dbcontext
node_cart -->|"reads and writes"| node_dbcontext
node_orders -->|"reads and writes"| node_dbcontext
node_transactions -->|"reads transactions"| node_dbcontext
node_invoices -->|"reads invoices"| node_dbcontext
node_invoices -->|"returns PDF"| node_client
node_dbcontext -->|"persists entities"| node_database

click node_program "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Program.cs"
click node_auth "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/AuthController.cs"
click node_registerdto "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/DTOs/RegisterDto.cs"
click node_products "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/ProductsController.cs"
click node_categories "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/CategoriesController.cs"
click node_cart "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/CartController.cs"
click node_orders "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/OrdersController.cs"
click node_transactions "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/TransactionsController.cs"
click node_invoices "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/InvoicesController.cs"
click node_productmodel "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Models/Product.cs"
click node_dbcontext "https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Data/EcommerceStoreDbContext.cs"

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_program,node_client toneBlue
class node_auth,node_registerdto,node_products,node_categories,node_productmodel,node_database,node_profilefiles toneAmber
class node_cart,node_orders,node_transactions,node_invoices toneMint
class node_dbcontext toneRose
```

## Components

### API runtime

- [App pipeline](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Program.cs): `EcommerceAPI/Program.cs`

### Identity and catalog

- [Authentication](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/AuthController.cs): `EcommerceAPI/Controllers/AuthController.cs`
- [Account DTOs](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/DTOs/RegisterDto.cs): `EcommerceAPI/DTOs/RegisterDto.cs`
- [Products API](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/ProductsController.cs): `EcommerceAPI/Controllers/ProductsController.cs`
- [Categories API](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/CategoriesController.cs): `EcommerceAPI/Controllers/CategoriesController.cs`
- [Product model](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Models/Product.cs): `EcommerceAPI/Models/Product.cs`

### Commerce operations

- [Cart API](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/CartController.cs): `EcommerceAPI/Controllers/CartController.cs`
- [Orders API](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/OrdersController.cs): `EcommerceAPI/Controllers/OrdersController.cs`
- [Transactions API](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/TransactionsController.cs): `EcommerceAPI/Controllers/TransactionsController.cs`
- [Invoices API](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Controllers/InvoicesController.cs): `EcommerceAPI/Controllers/InvoicesController.cs`

### Persistence

- [Store context](https://github.com/tvijaykumarsoftware-git/ecommerceportal/blob/main/EcommerceAPI/Data/EcommerceStoreDbContext.cs): `EcommerceAPI/Data/EcommerceStoreDbContext.cs`

### Other components

- **API client**
- **SQL Server**
- **Profile uploads**

## Connections

- API client → App pipeline: sends requests
- App pipeline → Authentication: routes requests
- App pipeline → Products API: routes requests
- App pipeline → Categories API: routes requests
- App pipeline → Cart API: routes requests
- App pipeline → Orders API: routes requests
- App pipeline → Transactions API: routes requests
- App pipeline → Invoices API: routes requests
- Authentication → Account DTOs: accepts DTOs
- Authentication → Store context: reads and writes
- Authentication → Profile uploads: writes uploads
- Products API → Store context: reads and writes
- Products API → Product model: uses model
- Categories API → Store context: reads and writes
- Cart API → Store context: reads and writes
- Orders API → Store context: reads and writes
- Transactions API → Store context: reads transactions
- Invoices API → Store context: reads invoices
- Invoices API → API client: returns PDF
- Store context → SQL Server: persists entities
