# zeeshan1903/software-engineering architecture

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

- Interactive diagram: https://gitdiagram.com/zeeshan1903/software-engineering
- Repository: https://github.com/zeeshan1903/software-engineering

## Overview

A small Builder-pattern class library for assembling immutable computer configurations. A client can either supply parts fluently through the builder or request the director’s gaming/office recipes; the concrete builder validates required parts and creates the product. Source confirms these core relationships, while README documents both usage modes and optional graphics.

Main entry points: [`CustomComputerBuilder/src/CustomComputerBuilder/ComputerBuilder.cs`](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/ComputerBuilder.cs) (Computer Builder), [`CustomComputerBuilder/src/CustomComputerBuilder/ComputerDirector.cs`](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/ComputerDirector.cs) (Computer Director), [`CustomComputerBuilder/src/CustomComputerBuilder/IComputerBuilder.cs`](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/IComputerBuilder.cs) (Builder Interface), [`CustomComputerBuilder/src/CustomComputerBuilder/Computer.cs`](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/Computer.cs) (Computer Product)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_client(("Client"))
node_director["Computer Director"]
node_contract["Builder Interface"]
node_builder["Computer Builder<br/>[ComputerBuilder.cs]"]
node_computer["Computer Product<br/>[Computer.cs]"]

node_client -->|"requests recipe"| node_director
node_client -->|"sets parts"| node_builder
node_director -->|"calls recipes"| node_contract
node_builder -.->|"implements"| node_contract
node_builder -->|"creates"| node_computer
node_builder -->|"returns product"| node_client
node_director -->|"returns product"| node_client

click node_director "https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/ComputerDirector.cs"
click node_contract "https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/IComputerBuilder.cs"
click node_builder "https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/ComputerBuilder.cs"
click node_computer "https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/Computer.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_client toneBlue
class node_director,node_contract,node_builder,node_computer toneTeal
```

## Components

### Other components

- **Client**
- [Computer Director](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/ComputerDirector.cs): `CustomComputerBuilder/src/CustomComputerBuilder/ComputerDirector.cs`
- [Builder Interface](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/IComputerBuilder.cs): `CustomComputerBuilder/src/CustomComputerBuilder/IComputerBuilder.cs`
- [Computer Builder](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/ComputerBuilder.cs): `CustomComputerBuilder/src/CustomComputerBuilder/ComputerBuilder.cs`
- [Computer Product](https://github.com/zeeshan1903/software-engineering/blob/main/CustomComputerBuilder/src/CustomComputerBuilder/Computer.cs): `CustomComputerBuilder/src/CustomComputerBuilder/Computer.cs`

## Connections

- Client → Computer Director: requests recipe
- Client → Computer Builder: sets parts
- Computer Director → Builder Interface: calls recipes
- Computer Builder → Builder Interface: implements
- Computer Builder → Computer Product: creates
- Computer Builder → Client: returns product
- Computer Director → Client: returns product
