# sheilajb/demo-proyecto architecture

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

- Interactive diagram: https://gitdiagram.com/sheilajb/demo-proyecto
- Repository: https://github.com/sheilajb/demo-proyecto

## Overview

G3 is a network-slice design and deployment orchestrator. An operator uses the unified CLI to create a linear, ring, or tree draft, validate and visualize it, optionally save it as JSON, then deploy, verify connectivity, inspect status, or tear down resources in the VNRT cluster. Draft modeling and cluster deployment are distinct layers; deployment uses an SSH executor to run cluster automation scripts. The README documents the major capabilities, but several implementation links are based on that documentation because the relevant source excerpts are partial.

Main entry points: [`cli/orchestrator_cli.py`](https://github.com/sheilajb/demo-proyecto/blob/main/cli/orchestrator_cli.py) (Unified CLI), [`core/graph_validator.py`](https://github.com/sheilajb/demo-proyecto/blob/main/core/graph_validator.py) (Graph Validation), [`cli/cli_draft.py`](https://github.com/sheilajb/demo-proyecto/blob/main/cli/cli_draft.py) (Draft CLI), [`core/draft_storage.py`](https://github.com/sheilajb/demo-proyecto/blob/main/core/draft_storage.py) (JSON Storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Operator Interface"]
  node_entrypoint["Program Entry<br/>[main.py]"]
  node_cli["Unified CLI"]
  node_draft_cli["Draft CLI<br/>[cli_draft.py]"]
end

subgraph group_design["Draft Design"]
  node_models["Draft Models<br/>[models.py]"]
  node_factory["Topology Factory<br/>[draft_factory.py]"]
  node_validator["Graph Validation<br/>[graph_validator.py]"]
end

subgraph group_deploy["Cluster Operations"]
  node_deployer["VNRT Deployer<br/>[deployer_vnrt.py]"]
  node_executor["SSH Executor<br/>[vnrt_executor.py]"]
  node_scripts["Cluster Automation"]
end

subgraph group_artifacts["Draft Artifacts"]
  node_storage["JSON Storage<br/>[draft_storage.py]"]
  node_json_drafts["Draft JSON"]
  node_png_diagrams["Topology PNGs"]
end

node_operator(("Operator"))
node_cluster["VNRT Cluster"]

node_operator -->|"runs"| node_entrypoint
node_entrypoint -->|"invokes"| node_cli
node_operator -->|"uses"| node_cli
node_operator -->|"uses"| node_draft_cli
node_cli -->|"creates drafts"| node_factory
node_draft_cli -->|"creates drafts"| node_factory
node_factory -->|"builds"| node_models
node_cli -->|"validates drafts"| node_validator
node_draft_cli -->|"validates drafts"| node_validator
node_validator -->|"reads and updates"| node_models
node_cli -->|"renders diagrams"| node_validator
node_draft_cli -->|"renders diagrams"| node_validator
node_validator -->|"writes PNG"| node_png_diagrams
node_cli -->|"imports and exports"| node_storage
node_draft_cli -->|"exports drafts"| node_storage
node_storage -->|"serializes drafts"| node_models
node_storage -->|"reads and writes"| node_json_drafts
node_cli -->|"controls deployment"| node_deployer
node_deployer -->|"runs remote actions"| node_executor
node_executor -->|"loads scripts"| node_scripts
node_executor -->|"executes over SSH"| node_cluster
node_deployer -->|"deploys and verifies"| node_cluster

click node_entrypoint "https://github.com/sheilajb/demo-proyecto/blob/main/main.py"
click node_cli "https://github.com/sheilajb/demo-proyecto/blob/main/cli/orchestrator_cli.py"
click node_draft_cli "https://github.com/sheilajb/demo-proyecto/blob/main/cli/cli_draft.py"
click node_models "https://github.com/sheilajb/demo-proyecto/blob/main/core/models.py"
click node_factory "https://github.com/sheilajb/demo-proyecto/blob/main/core/draft_factory.py"
click node_validator "https://github.com/sheilajb/demo-proyecto/blob/main/core/graph_validator.py"
click node_storage "https://github.com/sheilajb/demo-proyecto/blob/main/core/draft_storage.py"
click node_deployer "https://github.com/sheilajb/demo-proyecto/blob/main/orchestration/deployer_vnrt.py"
click node_executor "https://github.com/sheilajb/demo-proyecto/blob/main/orchestration/vnrt_executor.py"
click node_scripts "https://github.com/sheilajb/demo-proyecto/tree/main/scripts"

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_entrypoint,node_cli,node_draft_cli toneBlue
class node_models,node_factory,node_validator toneAmber
class node_deployer,node_executor,node_scripts toneMint
class node_storage,node_json_drafts,node_png_diagrams toneRose
class node_operator,node_cluster toneIndigo
```

## Components

### Operator Interface

- [Program Entry](https://github.com/sheilajb/demo-proyecto/blob/main/main.py): `main.py`
- [Unified CLI](https://github.com/sheilajb/demo-proyecto/blob/main/cli/orchestrator_cli.py): `cli/orchestrator_cli.py`
- [Draft CLI](https://github.com/sheilajb/demo-proyecto/blob/main/cli/cli_draft.py): `cli/cli_draft.py`

### Draft Design

- [Draft Models](https://github.com/sheilajb/demo-proyecto/blob/main/core/models.py): `core/models.py`
- [Topology Factory](https://github.com/sheilajb/demo-proyecto/blob/main/core/draft_factory.py): `core/draft_factory.py`
- [Graph Validation](https://github.com/sheilajb/demo-proyecto/blob/main/core/graph_validator.py): `core/graph_validator.py`

### Cluster Operations

- [VNRT Deployer](https://github.com/sheilajb/demo-proyecto/blob/main/orchestration/deployer_vnrt.py): `orchestration/deployer_vnrt.py`
- [SSH Executor](https://github.com/sheilajb/demo-proyecto/blob/main/orchestration/vnrt_executor.py): `orchestration/vnrt_executor.py`
- [Cluster Automation](https://github.com/sheilajb/demo-proyecto/tree/main/scripts): `scripts`

### Draft Artifacts

- [JSON Storage](https://github.com/sheilajb/demo-proyecto/blob/main/core/draft_storage.py): `core/draft_storage.py`
- **Draft JSON**
- **Topology PNGs**

### Other components

- **Operator**
- **VNRT Cluster**

## Connections

- Operator → Program Entry: runs (evidence: `README.md`)
- Program Entry → Unified CLI: invokes (evidence: `main.py`)
- Operator → Unified CLI: uses (evidence: `README.md`)
- Operator → Draft CLI: uses (evidence: `README.md`)
- Unified CLI → Topology Factory: creates drafts (evidence: `README.md`)
- Draft CLI → Topology Factory: creates drafts (evidence: `cli/cli_draft.py`)
- Topology Factory → Draft Models: builds (evidence: `core/draft_factory.py`)
- Unified CLI → Graph Validation: validates drafts (evidence: `cli/orchestrator_cli.py`)
- Draft CLI → Graph Validation: validates drafts (evidence: `cli/cli_draft.py`)
- Graph Validation → Draft Models: reads and updates (evidence: `core/graph_validator.py`)
- Unified CLI → Graph Validation: renders diagrams (evidence: `cli/orchestrator_cli.py`)
- Draft CLI → Graph Validation: renders diagrams (evidence: `cli/cli_draft.py`)
- Graph Validation → Topology PNGs: writes PNG (evidence: `README.md`)
- Unified CLI → JSON Storage: imports and exports (evidence: `README.md`)
- Draft CLI → JSON Storage: exports drafts (evidence: `cli/cli_draft.py`)
- JSON Storage → Draft Models: serializes drafts (evidence: `core/draft_storage.py`)
- JSON Storage → Draft JSON: reads and writes (evidence: `core/draft_storage.py`)
- Unified CLI → VNRT Deployer: controls deployment (evidence: `README.md`)
- VNRT Deployer → SSH Executor: runs remote actions (evidence: `orchestration/deployer_vnrt.py`)
- SSH Executor → Cluster Automation: loads scripts (evidence: `orchestration/vnrt_executor.py`)
- SSH Executor → VNRT Cluster: executes over SSH (evidence: `orchestration/vnrt_executor.py`)
- VNRT Deployer → VNRT Cluster: deploys and verifies (evidence: `README.md`)
