# clifftech123/clifftechyoutube architecture

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

## Overview

This repository is a collection of independent CliffTech .NET and Azure tutorial projects, not one deployed application. The main request-to-result patterns shown in the sampled code are API controllers delegating to services or repositories, with some examples adding validation, persistence, caching, authentication, or a React client. The graph highlights those patterns and other substantial projects evident in the tree; links for unsampled implementations are omitted rather than inferred.

Main entry points: [`dotnet9-crash-course/dotnet9-crash-course/Controllers/ProductController.cs`](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnet9-crash-course/dotnet9-crash-course/Controllers/ProductController.cs) (Product API), [`dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Controllers/CountryDataController.cs`](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Controllers/CountryDataController.cs) (Country data API), [`QueryableIEnumerableAPI/QueryableIEnumerableAPI/Controllers/EmployeesController.cs`](https://github.com/clifftech123/clifftechyoutube/blob/main/QueryableIEnumerableAPI/QueryableIEnumerableAPI/Controllers/EmployeesController.cs) (Employee API), [`DotnetAzureCosmosDb/DotnetAzureCosmosDb/Controllers/StudentController.cs`](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAzureCosmosDb/DotnetAzureCosmosDb/Controllers/StudentController.cs) (Cosmos student API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API Patterns"]
  node_product_controller["Product API"]
  node_product_validation["Product validators"]
  node_product_service["Product service<br/>[ProductService.cs]"]
  node_versioned_api["Versioned products"]
  node_fluent_api["Validation API<br/>[BaseController.cs]"]
  node_employee_api["Employee API"]
  node_employee_service["Employee service<br/>[Employee.cs]"]
end

subgraph group_data["Data Access"]
  node_student_api["Cosmos student API"]
  node_student_service["Student service<br/>[StudentService.cs]"]
  node_cosmos_store[("Cosmos DB")]
  node_author_api["Author API"]
  node_author_repository["Repository layer<br/>[BaseRepository.cs]"]
  node_relational_store[("EF Core context<br/>[AppDbContext.cs]")]
  node_mongo_api["Mongo product API"]
  node_mongo_service["Mongo product service<br/>[ProductService.cs]"]
  node_mongo_context[("Mongo context<br/>[AppDbContext.cs]")]
end

subgraph group_identity["Identity and Services"]
  node_auth_api["Auth API<br/>[AuthController.cs]"]
  node_user_service["User service<br/>[UserServiceImpl.cs]"]
  node_auth_store[("User data context")]
  node_token_service["Token service"]
  node_redis_api["Placeholder API"]
  node_placeholder_service["Placeholder service"]
  node_redis_service["Redis service<br/>[RedisService.cs]"]
  node_country_api["Country data API"]
  node_country_service["Country data service"]
end

subgraph group_clients["Client Applications"]
  node_react_client["Product React client<br/>[App.tsx]"]
  node_react_api["HTTP API client<br/>[api.ts]"]
  node_blazor_client["Country Blazor client<br/>[CountryClient.cs]"]
end

subgraph group_crosscut["API Concerns"]
  node_logging_api["Structured logging demo"]
  node_di_api["DI lifetime demo"]
  node_exception_handler["Exception handling"]
end

node_developer(("API caller"))

node_developer -->|"sends requests"| node_product_controller
node_product_controller -->|"validates input"| node_product_validation
node_product_controller -->|"delegates operations"| node_product_service
node_developer -->|"requests products"| node_versioned_api
node_developer -->|"submits data"| node_fluent_api
node_developer -->|"requests employee data"| node_employee_api
node_employee_api -->|"delegates queries"| node_employee_service
node_developer -->|"requests student data"| node_student_api
node_student_api -->|"delegates operations"| node_student_service
node_developer -->|"requests author data"| node_author_api
node_author_api -->|"calls repository"| node_author_repository
node_author_repository -->|"accesses data"| node_relational_store
node_developer -->|"sends auth requests"| node_auth_api
node_auth_api -->|"delegates operations"| node_user_service
node_developer -->|"requests content"| node_redis_api
node_redis_api -->|"delegates requests"| node_placeholder_service
node_developer -->|"requests country data"| node_country_api
node_country_api -->|"delegates queries"| node_country_service
node_react_client -->|"uses API client"| node_react_api
node_blazor_client -->|"requests data"| node_country_api
node_developer -->|"requests forecast"| node_logging_api
node_developer -->|"requests lifetime data"| node_di_api

click node_product_controller "https://github.com/clifftech123/clifftechyoutube/blob/main/dotnet9-crash-course/dotnet9-crash-course/Controllers/ProductController.cs"
click node_product_validation "https://github.com/clifftech123/clifftechyoutube/blob/main/dotnet9-crash-course/dotnet9-crash-course/src/Domain/Validators/CreateProductRequestValidator.cs"
click node_product_service "https://github.com/clifftech123/clifftechyoutube/blob/main/dotnet9-crash-course/dotnet9-crash-course/src/Service/ProductService.cs"
click node_versioned_api "https://github.com/clifftech123/clifftechyoutube/blob/main/APIVersioning/Controllers/V2/VersionTwoController.cs"
click node_fluent_api "https://github.com/clifftech123/clifftechyoutube/blob/main/DotNetFluentCore9/DotNetFluentCore9/Controllers/BaseController.cs"
click node_employee_api "https://github.com/clifftech123/clifftechyoutube/blob/main/QueryableIEnumerableAPI/QueryableIEnumerableAPI/Controllers/EmployeesController.cs"
click node_employee_service "https://github.com/clifftech123/clifftechyoutube/blob/main/QueryableIEnumerableAPI/QueryableIEnumerableAPI/Service/Employee.cs"
click node_student_api "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAzureCosmosDb/DotnetAzureCosmosDb/Controllers/StudentController.cs"
click node_student_service "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAzureCosmosDb/DotnetAzureCosmosDb/Services/StudentService.cs"
click node_author_api "https://github.com/clifftech123/clifftechyoutube/blob/main/RepositoryPattern.API/RepositoryPattern.API/Controllers/AuthorController.cs"
click node_author_repository "https://github.com/clifftech123/clifftechyoutube/blob/main/RepositoryPattern.API/RepositoryPattern.API/Repositories/BaseRepository.cs"
click node_relational_store "https://github.com/clifftech123/clifftechyoutube/blob/main/RepositoryPattern.API/RepositoryPattern.API/Data/AppDbContext.cs"
click node_mongo_api "https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Controllers/ProductController.cs"
click node_mongo_service "https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Service/ProductService.cs"
click node_mongo_context "https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Data/AppDbContext.cs"
click node_auth_api "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Controllers/AuthController.cs"
click node_user_service "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Service/UserServiceImpl.cs"
click node_auth_store "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Infrastructure/Context/ApplicationDbContext.cs"
click node_token_service "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Service/ToekenServiceImple.cs"
click node_redis_api "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetRedisCacheAPI/DotnetRedisCacheAPI/Controllers/JsonPlaceholderController.cs"
click node_placeholder_service "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetRedisCacheAPI/DotnetRedisCacheAPI/Service/JsonPlaceholderService.cs"
click node_redis_service "https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetRedisCacheAPI/DotnetRedisCacheAPI/Service/RedisService.cs"
click node_country_api "https://github.com/clifftech123/clifftechyoutube/blob/main/dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Controllers/CountryDataController.cs"
click node_country_service "https://github.com/clifftech123/clifftechyoutube/blob/main/dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Services/CountryDataServices.cs"
click node_react_client "https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/client-react/MongoDbProductClinet/src/App.tsx"
click node_react_api "https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/client-react/MongoDbProductClinet/src/API/api.ts"
click node_blazor_client "https://github.com/clifftech123/clifftechyoutube/blob/main/dotnetBlazorFullStuck/dotnetBlazorFullStuck.Web/Components/Client/CountryClient.cs"
click node_logging_api "https://github.com/clifftech123/clifftechyoutube/blob/main/StructuredLoggingNET9/StructuredLoggingNET9/Controllers/WeatherForecastController.cs"
click node_di_api "https://github.com/clifftech123/clifftechyoutube/blob/main/DependencyInjection.API/DependencyInjection.API/Controllers/LifetimeDemoController.cs"
click node_exception_handler "https://github.com/clifftech123/clifftechyoutube/blob/main/GlobalExceptions/GlobalExceptions/src/Exceptions/GlobalExceptionHandler.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_product_controller,node_product_validation,node_product_service,node_versioned_api,node_fluent_api,node_employee_api,node_employee_service toneBlue
class node_student_api,node_student_service,node_cosmos_store,node_author_api,node_author_repository,node_relational_store,node_mongo_api,node_mongo_service,node_mongo_context toneAmber
class node_auth_api,node_user_service,node_auth_store,node_token_service,node_redis_api,node_placeholder_service,node_redis_service,node_country_api,node_country_service,node_developer toneMint
class node_react_client,node_react_api,node_blazor_client toneRose
class node_logging_api,node_di_api,node_exception_handler toneIndigo
```

## Components

### API Patterns

- [Product API](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnet9-crash-course/dotnet9-crash-course/Controllers/ProductController.cs): `dotnet9-crash-course/dotnet9-crash-course/Controllers/ProductController.cs`
- [Product validators](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnet9-crash-course/dotnet9-crash-course/src/Domain/Validators/CreateProductRequestValidator.cs): `dotnet9-crash-course/dotnet9-crash-course/src/Domain/Validators/CreateProductRequestValidator.cs`
- [Product service](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnet9-crash-course/dotnet9-crash-course/src/Service/ProductService.cs): `dotnet9-crash-course/dotnet9-crash-course/src/Service/ProductService.cs`
- [Versioned products](https://github.com/clifftech123/clifftechyoutube/blob/main/APIVersioning/Controllers/V2/VersionTwoController.cs): `APIVersioning/Controllers/V2/VersionTwoController.cs`
- [Validation API](https://github.com/clifftech123/clifftechyoutube/blob/main/DotNetFluentCore9/DotNetFluentCore9/Controllers/BaseController.cs): `DotNetFluentCore9/DotNetFluentCore9/Controllers/BaseController.cs`
- [Employee API](https://github.com/clifftech123/clifftechyoutube/blob/main/QueryableIEnumerableAPI/QueryableIEnumerableAPI/Controllers/EmployeesController.cs): `QueryableIEnumerableAPI/QueryableIEnumerableAPI/Controllers/EmployeesController.cs`
- [Employee service](https://github.com/clifftech123/clifftechyoutube/blob/main/QueryableIEnumerableAPI/QueryableIEnumerableAPI/Service/Employee.cs): `QueryableIEnumerableAPI/QueryableIEnumerableAPI/Service/Employee.cs`

### Data Access

- [Cosmos student API](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAzureCosmosDb/DotnetAzureCosmosDb/Controllers/StudentController.cs): `DotnetAzureCosmosDb/DotnetAzureCosmosDb/Controllers/StudentController.cs`
- [Student service](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAzureCosmosDb/DotnetAzureCosmosDb/Services/StudentService.cs): `DotnetAzureCosmosDb/DotnetAzureCosmosDb/Services/StudentService.cs`
- **Cosmos DB**
- [Author API](https://github.com/clifftech123/clifftechyoutube/blob/main/RepositoryPattern.API/RepositoryPattern.API/Controllers/AuthorController.cs): `RepositoryPattern.API/RepositoryPattern.API/Controllers/AuthorController.cs`
- [Repository layer](https://github.com/clifftech123/clifftechyoutube/blob/main/RepositoryPattern.API/RepositoryPattern.API/Repositories/BaseRepository.cs): `RepositoryPattern.API/RepositoryPattern.API/Repositories/BaseRepository.cs`
- [EF Core context](https://github.com/clifftech123/clifftechyoutube/blob/main/RepositoryPattern.API/RepositoryPattern.API/Data/AppDbContext.cs): `RepositoryPattern.API/RepositoryPattern.API/Data/AppDbContext.cs`
- [Mongo product API](https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Controllers/ProductController.cs): `MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Controllers/ProductController.cs`
- [Mongo product service](https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Service/ProductService.cs): `MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Service/ProductService.cs`
- [Mongo context](https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Data/AppDbContext.cs): `MongoDb-dotnet-react/server-dotnet/MogoDbProductAPI/MogoDbProductAPI/Data/AppDbContext.cs`

### Identity and Services

- [Auth API](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Controllers/AuthController.cs): `DotnetAuth/DotnetAuth/Controllers/AuthController.cs`
- [User service](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Service/UserServiceImpl.cs): `DotnetAuth/DotnetAuth/Service/UserServiceImpl.cs`
- [User data context](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Infrastructure/Context/ApplicationDbContext.cs): `DotnetAuth/DotnetAuth/Infrastructure/Context/ApplicationDbContext.cs`
- [Token service](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetAuth/DotnetAuth/Service/ToekenServiceImple.cs): `DotnetAuth/DotnetAuth/Service/ToekenServiceImple.cs`
- [Placeholder API](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetRedisCacheAPI/DotnetRedisCacheAPI/Controllers/JsonPlaceholderController.cs): `DotnetRedisCacheAPI/DotnetRedisCacheAPI/Controllers/JsonPlaceholderController.cs`
- [Placeholder service](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetRedisCacheAPI/DotnetRedisCacheAPI/Service/JsonPlaceholderService.cs): `DotnetRedisCacheAPI/DotnetRedisCacheAPI/Service/JsonPlaceholderService.cs`
- [Redis service](https://github.com/clifftech123/clifftechyoutube/blob/main/DotnetRedisCacheAPI/DotnetRedisCacheAPI/Service/RedisService.cs): `DotnetRedisCacheAPI/DotnetRedisCacheAPI/Service/RedisService.cs`
- [Country data API](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Controllers/CountryDataController.cs): `dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Controllers/CountryDataController.cs`
- [Country data service](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Services/CountryDataServices.cs): `dotnetBlazorFullStuck/dotnetBlazorFullStuck.ApiService/Services/CountryDataServices.cs`

### Client Applications

- [Product React client](https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/client-react/MongoDbProductClinet/src/App.tsx): `MongoDb-dotnet-react/client-react/MongoDbProductClinet/src/App.tsx`
- [HTTP API client](https://github.com/clifftech123/clifftechyoutube/blob/main/MongoDb-dotnet-react/client-react/MongoDbProductClinet/src/API/api.ts): `MongoDb-dotnet-react/client-react/MongoDbProductClinet/src/API/api.ts`
- [Country Blazor client](https://github.com/clifftech123/clifftechyoutube/blob/main/dotnetBlazorFullStuck/dotnetBlazorFullStuck.Web/Components/Client/CountryClient.cs): `dotnetBlazorFullStuck/dotnetBlazorFullStuck.Web/Components/Client/CountryClient.cs`

### API Concerns

- [Structured logging demo](https://github.com/clifftech123/clifftechyoutube/blob/main/StructuredLoggingNET9/StructuredLoggingNET9/Controllers/WeatherForecastController.cs): `StructuredLoggingNET9/StructuredLoggingNET9/Controllers/WeatherForecastController.cs`
- [DI lifetime demo](https://github.com/clifftech123/clifftechyoutube/blob/main/DependencyInjection.API/DependencyInjection.API/Controllers/LifetimeDemoController.cs): `DependencyInjection.API/DependencyInjection.API/Controllers/LifetimeDemoController.cs`
- [Exception handling](https://github.com/clifftech123/clifftechyoutube/blob/main/GlobalExceptions/GlobalExceptions/src/Exceptions/GlobalExceptionHandler.cs): `GlobalExceptions/GlobalExceptions/src/Exceptions/GlobalExceptionHandler.cs`

### Other components

- **API caller**

## Connections

- API caller → Product API: sends requests
- Product API → Product validators: validates input
- Product API → Product service: delegates operations
- API caller → Versioned products: requests products
- API caller → Validation API: submits data
- API caller → Employee API: requests employee data
- Employee API → Employee service: delegates queries
- API caller → Cosmos student API: requests student data
- Cosmos student API → Student service: delegates operations
- API caller → Author API: requests author data
- Author API → Repository layer: calls repository
- Repository layer → EF Core context: accesses data
- API caller → Auth API: sends auth requests
- Auth API → User service: delegates operations
- API caller → Placeholder API: requests content
- Placeholder API → Placeholder service: delegates requests
- API caller → Country data API: requests country data
- Country data API → Country data service: delegates queries
- Product React client → HTTP API client: uses API client
- Country Blazor client → Country data API: requests data
- API caller → Structured logging demo: requests forecast
- API caller → DI lifetime demo: requests lifetime data
