# tokhalyok/crud_2 architecture

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

## Overview

CRUD Project is a product-catalog application: a user works with products in the Angular client, which sends list, create, update, and delete requests to an ASP.NET API; the API persists product records through Entity Framework Core to PostgreSQL. The README documents the client, API, and PostgreSQL setup. The page template and component implementation were not sampled, so the UI-to-service relationship reflects the product workflow and available service/page paths; no finer UI interaction details are inferred.

Main entry points: [`ProductApp/ProductApi/Data/AppDbContext.cs`](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Data/AppDbContext.cs) (EF Core context), [`ProductApp/product-client/src/app/pages/products`](https://github.com/tokhalyok/crud_2/tree/main/ProductApp/product-client/src/app/pages/products) (Products page), [`ProductApp/product-client/src/app/app.ts`](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/app.ts) (Root app), [`ProductApp/product-client/src/app/app.routes.ts`](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/app.routes.ts) (App routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Angular client"]
  node_bootstrap["Client bootstrap<br/>[main.ts]"]
  node_app["Root app<br/>[app.ts]"]
  node_routes["App routes<br/>[app.routes.ts]"]
  node_products_ui["Products page"]
  node_product_service["Product service<br/>[product.service.ts]"]
end

subgraph group_api["Product API"]
  node_api_host["ASP.NET API<br/>[Program.cs]"]
  node_products_controller["Products controller"]
end

subgraph group_persistence["Product persistence"]
  node_product_model["Product model<br/>[Product.cs]"]
  node_db_context["EF Core context<br/>[AppDbContext.cs]"]
  node_postgres[("PostgreSQL")]
end

node_user(("User"))

node_user -->|"manages products"| node_products_ui
node_bootstrap -->|"bootstraps"| node_app
node_app -->|"hosts routes"| node_routes
node_routes -->|"routes to"| node_products_ui
node_products_ui -->|"requests CRUD"| node_product_service
node_product_service -->|"HTTP CRUD"| node_api_host
node_api_host -->|"dispatches requests"| node_products_controller
node_products_controller -->|"queries and saves"| node_db_context
node_db_context -->|"maps entity"| node_product_model
node_db_context -->|"reads and writes"| node_postgres

click node_bootstrap "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/main.ts"
click node_app "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/app.ts"
click node_routes "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/app.routes.ts"
click node_products_ui "https://github.com/tokhalyok/crud_2/tree/main/ProductApp/product-client/src/app/pages/products"
click node_product_service "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/pages/products/services/product.service.ts"
click node_api_host "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Program.cs"
click node_products_controller "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Controllers/ProductsController.cs"
click node_product_model "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Models/Product.cs"
click node_db_context "https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Data/AppDbContext.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_bootstrap,node_app,node_routes,node_products_ui,node_product_service,node_user toneBlue
class node_api_host,node_products_controller toneAmber
class node_product_model,node_db_context,node_postgres toneMint
```

## Components

### Angular client

- [Client bootstrap](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/main.ts): `ProductApp/product-client/src/main.ts`
- [Root app](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/app.ts): `ProductApp/product-client/src/app/app.ts`
- [App routes](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/app.routes.ts): `ProductApp/product-client/src/app/app.routes.ts`
- [Products page](https://github.com/tokhalyok/crud_2/tree/main/ProductApp/product-client/src/app/pages/products): `ProductApp/product-client/src/app/pages/products`
- [Product service](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/product-client/src/app/pages/products/services/product.service.ts): `ProductApp/product-client/src/app/pages/products/services/product.service.ts`

### Product API

- [ASP.NET API](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Program.cs): `ProductApp/ProductApi/Program.cs`
- [Products controller](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Controllers/ProductsController.cs): `ProductApp/ProductApi/Controllers/ProductsController.cs`

### Product persistence

- [Product model](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Models/Product.cs): `ProductApp/ProductApi/Models/Product.cs`
- [EF Core context](https://github.com/tokhalyok/crud_2/blob/main/ProductApp/ProductApi/Data/AppDbContext.cs): `ProductApp/ProductApi/Data/AppDbContext.cs`
- **PostgreSQL**

### Other components

- **User**

## Connections

- User → Products page: manages products
- Client bootstrap → Root app: bootstraps
- Root app → App routes: hosts routes
- App routes → Products page: routes to
- Products page → Product service: requests CRUD
- Product service → ASP.NET API: HTTP CRUD
- ASP.NET API → Products controller: dispatches requests
- Products controller → EF Core context: queries and saves
- EF Core context → Product model: maps entity
- EF Core context → PostgreSQL: reads and writes
