# manh02847/project1 architecture

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

## Overview

This repository is a collection of ASP.NET Core MVC lesson projects, not one unified application. Across the lessons, the user-facing workflow is an HTTP request handled by a controller, which prepares a view or JSON response; product and member examples progress from mock or in-memory data to EF-backed CRUD. The graph highlights representative implementations rather than every repeated lesson scaffold. No README was provided, and the tree does not include view files, so view-rendering details and unsampled project wiring are not shown.

Main entry points: [`NnmLesson08Lab/Controllers/NnmProductController.cs`](https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Controllers/NnmProductController.cs) (Product CRUD), [`NnmLesson09Annotation/Controllers/NnmMemberController.cs`](https://github.com/manh02847/project1/blob/main/NnmLesson09Annotation/Controllers/NnmMemberController.cs) (Mock member CRUD), [`NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Controllers/NguyenNgocManhEmployeesController.cs`](https://github.com/manh02847/project1/blob/main/NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Controllers/NguyenNgocManhEmployeesController.cs) (EF employee CRUD), [`NnmLesson10EFDbFirst/Controllers/NnmMembersController.cs`](https://github.com/manh02847/project1/blob/main/NnmLesson10EFDbFirst/Controllers/NnmMembersController.cs) (EF member CRUD)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mvc["MVC foundations"]
  node_mvc_entry["MVC app setup<br/>[Program.cs]"]
  node_mvc_home["Home actions<br/>[HomeController.cs]"]
end

subgraph group_products["Product examples"]
  node_product_json["JSON product list"]
  node_product_catalog["Product catalog"]
  node_product_crud["Product CRUD"]
  node_product_memory["Local product data<br/>[NnmDataLocal.cs]"]
  node_product_model["Product model<br/>[NnmProduct.cs]"]
  node_category_model["Category model<br/>[NnmCategory.cs]"]
end

subgraph group_members["Member examples"]
  node_member_mock["Mock member CRUD"]
  node_member_register["Registration model"]
  node_member_model["Member model<br/>[NnmMember.cs]"]
end

subgraph group_persistence["EF persistence"]
  node_member_db_crud["EF member CRUD"]
  node_employee_crud["EF employee CRUD"]
  node_member_context["Member EF context"]
  node_employee_context["Employee EF context"]
  node_employee_model["Employee model"]
end

node_user(("Browser user"))
node_relational_db[("Relational database")]
node_mvc_response["MVC response"]

node_user -->|"requests"| node_mvc_entry
node_mvc_entry -->|"routes"| node_mvc_home
node_mvc_home -->|"renders views"| node_mvc_response
node_user -->|"requests"| node_product_json
node_product_json -->|"returns JSON"| node_mvc_response
node_user -->|"requests"| node_product_catalog
node_product_catalog -->|"renders views"| node_mvc_response
node_user -->|"requests"| node_product_crud
node_product_crud -->|"reads and updates"| node_product_memory
node_product_crud -->|"binds data"| node_product_model
node_product_crud -->|"builds category list"| node_category_model
node_product_crud -->|"renders views"| node_mvc_response
node_user -->|"requests"| node_member_mock
node_member_mock -->|"binds registration"| node_member_register
node_member_mock -->|"reads and updates"| node_member_model
node_member_mock -->|"renders views"| node_mvc_response
node_user -->|"requests"| node_member_db_crud
node_member_db_crud -->|"queries and saves"| node_member_context
node_member_context -->|"persists data"| node_relational_db
node_member_db_crud -->|"renders views"| node_mvc_response
node_user -->|"requests"| node_employee_crud
node_employee_crud -->|"queries and saves"| node_employee_context
node_employee_crud -->|"binds data"| node_employee_model
node_employee_context -->|"persists data"| node_relational_db
node_employee_crud -->|"renders views"| node_mvc_response

click node_mvc_entry "https://github.com/manh02847/project1/blob/main/NnmLesson01Mvc/Program.cs"
click node_mvc_home "https://github.com/manh02847/project1/blob/main/NnmLesson06Views/Controllers/HomeController.cs"
click node_product_json "https://github.com/manh02847/project1/blob/main/NnmLesson03/Controllers/NnmProductController.cs"
click node_product_catalog "https://github.com/manh02847/project1/blob/main/NnmLesson04Lab/Controllers/NnmProductController.cs"
click node_product_crud "https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Controllers/NnmProductController.cs"
click node_product_memory "https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Models/NnmDataLocal.cs"
click node_product_model "https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Models/NnmProduct.cs"
click node_category_model "https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Models/NnmCategory.cs"
click node_member_mock "https://github.com/manh02847/project1/blob/main/NnmLesson09Annotation/Controllers/NnmMemberController.cs"
click node_member_register "https://github.com/manh02847/project1/blob/main/NnmLesson09Annotation/Models/DataViewModels/NnmMemberRegister.cs"
click node_member_model "https://github.com/manh02847/project1/blob/main/NnmLesson09Annotation/Models/DataModels/NnmMember.cs"
click node_member_db_crud "https://github.com/manh02847/project1/blob/main/NnmLesson10EFDbFirst/Controllers/NnmMembersController.cs"
click node_employee_crud "https://github.com/manh02847/project1/blob/main/NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Controllers/NguyenNgocManhEmployeesController.cs"
click node_member_context "https://github.com/manh02847/project1/blob/main/NnmLesson10EFDbFirst/Models/NnmK24cnt2lesson10EfdbContext.cs"
click node_employee_context "https://github.com/manh02847/project1/blob/main/NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Data/NguyenNgocManhDbContext.cs"
click node_employee_model "https://github.com/manh02847/project1/blob/main/NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Models/NguyenNgocManhEmployee.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_mvc_entry,node_mvc_home,node_user toneBlue
class node_product_json,node_product_catalog,node_product_crud,node_product_memory,node_product_model,node_category_model,node_relational_db toneAmber
class node_member_mock,node_member_register,node_member_model toneMint
class node_member_db_crud,node_employee_crud,node_member_context,node_employee_context,node_employee_model toneRose
class node_mvc_response toneIndigo
```

## Components

### MVC foundations

- [MVC app setup](https://github.com/manh02847/project1/blob/main/NnmLesson01Mvc/Program.cs): `NnmLesson01Mvc/Program.cs`
- [Home actions](https://github.com/manh02847/project1/blob/main/NnmLesson06Views/Controllers/HomeController.cs): `NnmLesson06Views/Controllers/HomeController.cs`

### Product examples

- [JSON product list](https://github.com/manh02847/project1/blob/main/NnmLesson03/Controllers/NnmProductController.cs): `NnmLesson03/Controllers/NnmProductController.cs`
- [Product catalog](https://github.com/manh02847/project1/blob/main/NnmLesson04Lab/Controllers/NnmProductController.cs): `NnmLesson04Lab/Controllers/NnmProductController.cs`
- [Product CRUD](https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Controllers/NnmProductController.cs): `NnmLesson08Lab/Controllers/NnmProductController.cs`
- [Local product data](https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Models/NnmDataLocal.cs): `NnmLesson08Lab/Models/NnmDataLocal.cs`
- [Product model](https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Models/NnmProduct.cs): `NnmLesson08Lab/Models/NnmProduct.cs`
- [Category model](https://github.com/manh02847/project1/blob/main/NnmLesson08Lab/Models/NnmCategory.cs): `NnmLesson08Lab/Models/NnmCategory.cs`

### Member examples

- [Mock member CRUD](https://github.com/manh02847/project1/blob/main/NnmLesson09Annotation/Controllers/NnmMemberController.cs): `NnmLesson09Annotation/Controllers/NnmMemberController.cs`
- [Registration model](https://github.com/manh02847/project1/blob/main/NnmLesson09Annotation/Models/DataViewModels/NnmMemberRegister.cs): `NnmLesson09Annotation/Models/DataViewModels/NnmMemberRegister.cs`
- [Member model](https://github.com/manh02847/project1/blob/main/NnmLesson09Annotation/Models/DataModels/NnmMember.cs): `NnmLesson09Annotation/Models/DataModels/NnmMember.cs`

### EF persistence

- [EF member CRUD](https://github.com/manh02847/project1/blob/main/NnmLesson10EFDbFirst/Controllers/NnmMembersController.cs): `NnmLesson10EFDbFirst/Controllers/NnmMembersController.cs`
- [EF employee CRUD](https://github.com/manh02847/project1/blob/main/NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Controllers/NguyenNgocManhEmployeesController.cs): `NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Controllers/NguyenNgocManhEmployeesController.cs`
- [Member EF context](https://github.com/manh02847/project1/blob/main/NnmLesson10EFDbFirst/Models/NnmK24cnt2lesson10EfdbContext.cs): `NnmLesson10EFDbFirst/Models/NnmK24cnt2lesson10EfdbContext.cs`
- [Employee EF context](https://github.com/manh02847/project1/blob/main/NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Data/NguyenNgocManhDbContext.cs): `NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Data/NguyenNgocManhDbContext.cs`
- [Employee model](https://github.com/manh02847/project1/blob/main/NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Models/NguyenNgocManhEmployee.cs): `NguyenNgocManh_2410900051/NguyenNgocManh2410900051/Models/NguyenNgocManhEmployee.cs`

### Other components

- **Browser user**
- **Relational database**
- **MVC response**

## Connections

- Browser user → MVC app setup: requests
- MVC app setup → Home actions: routes
- Home actions → MVC response: renders views
- Browser user → JSON product list: requests
- JSON product list → MVC response: returns JSON
- Browser user → Product catalog: requests
- Product catalog → MVC response: renders views
- Browser user → Product CRUD: requests
- Product CRUD → Local product data: reads and updates
- Product CRUD → Product model: binds data
- Product CRUD → Category model: builds category list
- Product CRUD → MVC response: renders views
- Browser user → Mock member CRUD: requests
- Mock member CRUD → Registration model: binds registration
- Mock member CRUD → Member model: reads and updates
- Mock member CRUD → MVC response: renders views
- Browser user → EF member CRUD: requests
- EF member CRUD → Member EF context: queries and saves
- Member EF context → Relational database: persists data
- EF member CRUD → MVC response: renders views
- Browser user → EF employee CRUD: requests
- EF employee CRUD → Employee EF context: queries and saves
- EF employee CRUD → Employee model: binds data
- Employee EF context → Relational database: persists data
- EF employee CRUD → MVC response: renders views
