# heluiz/projeto_ciberseguran-a architecture

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

- Interactive diagram: https://gitdiagram.com/heluiz/projeto_ciberseguran-a
- Repository: https://github.com/heluiz/projeto_ciberseguran-a

## Overview

Aplicação CLI para inventariar equipamentos de TI e vulnerabilidades associadas. O operador usa o menu em main.py, que coordena cadastro, busca, atualização e exclusão de ativos e falhas, exibe fichas e listas e apresenta pendências ordenadas por gravidade. As alterações são persistidas em JSON; falhas de equipamento também são removidas em cascata. Módulos de formatação e classificações apoiam as regras compartilhadas. O README documenta recursos cujo código não foi amostrado; as ligações abaixo refletem apenas chamadas evidenciadas ou capacidades documentadas.

Main entry points: [`main.py`](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/main.py) (Menu e ações), [`falhas.py`](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/falhas.py) (Operações de vulnerabilidades), [`arquivo.py`](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/arquivo.py) (Leitura e gravação JSON), [`equipamentos.py`](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/equipamentos.py) (Operações de ativos)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Interface e coordenação"]
  node_cli["Menu e ações<br/>[main.py]"]
end

subgraph group_domain["Inventário de domínio"]
  node_assets["Operações de ativos<br/>[equipamentos.py]"]
  node_vulnerabilities["Operações de vulnerabilidades<br/>[falhas.py]"]
  node_pending["Relatório de pendências<br/>[falhas.py]"]
end

subgraph group_persistence["Persistência"]
  node_storage["Leitura e gravação JSON<br/>[arquivo.py]"]
  node_jsonfile[("Base inventario.json")]
end

subgraph group_shared["Regras compartilhadas"]
  node_format["Normalização e busca textual<br/>[formatacao.py]"]
  node_enums["Categorias e estados<br/>[classificacoes.py]"]
end

node_operator(("Operador"))

node_operator -->|"usa menu"| node_cli
node_cli -->|"exibe resultados"| node_operator
node_cli -->|"carrega e salva"| node_storage
node_storage -->|"lê e grava"| node_jsonfile
node_cli -->|"coordena CRUD"| node_assets
node_cli -->|"coordena falhas"| node_vulnerabilities
node_cli -->|"solicita relatório"| node_pending
node_cli -->|"remove em cascata"| node_vulnerabilities
node_assets -->|"gera IDs"| node_storage
node_vulnerabilities -->|"gera IDs"| node_storage
node_assets -->|"normaliza e compara"| node_format
node_vulnerabilities -->|"normaliza texto"| node_format
node_assets -->|"usa categorias"| node_enums
node_vulnerabilities -->|"usa classificações"| node_enums
node_storage -->|"valida valores"| node_enums

click node_cli "https://github.com/heluiz/projeto_ciberseguran-a/blob/main/main.py"
click node_assets "https://github.com/heluiz/projeto_ciberseguran-a/blob/main/equipamentos.py"
click node_vulnerabilities "https://github.com/heluiz/projeto_ciberseguran-a/blob/main/falhas.py"
click node_pending "https://github.com/heluiz/projeto_ciberseguran-a/blob/main/falhas.py"
click node_storage "https://github.com/heluiz/projeto_ciberseguran-a/blob/main/arquivo.py"
click node_format "https://github.com/heluiz/projeto_ciberseguran-a/blob/main/formatacao.py"
click node_enums "https://github.com/heluiz/projeto_ciberseguran-a/blob/main/classificacoes.py"

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_cli toneBlue
class node_assets,node_vulnerabilities,node_pending toneAmber
class node_storage,node_jsonfile toneMint
class node_format,node_enums toneRose
class node_operator toneIndigo
```

## Components

### Interface e coordenação

- [Menu e ações](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/main.py): `main.py`

### Inventário de domínio

- [Operações de ativos](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/equipamentos.py): `equipamentos.py`
- [Operações de vulnerabilidades](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/falhas.py): `falhas.py`
- [Relatório de pendências](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/falhas.py): `falhas.py`

### Persistência

- [Leitura e gravação JSON](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/arquivo.py): `arquivo.py`
- **Base inventario.json**

### Regras compartilhadas

- [Normalização e busca textual](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/formatacao.py): `formatacao.py`
- [Categorias e estados](https://github.com/heluiz/projeto_ciberseguran-a/blob/main/classificacoes.py): `classificacoes.py`

### Other components

- **Operador**

## Connections

- Operador → Menu e ações: usa menu
- Menu e ações → Operador: exibe resultados
- Menu e ações → Leitura e gravação JSON: carrega e salva
- Leitura e gravação JSON → Base inventario.json: lê e grava
- Menu e ações → Operações de ativos: coordena CRUD
- Menu e ações → Operações de vulnerabilidades: coordena falhas
- Menu e ações → Relatório de pendências: solicita relatório
- Menu e ações → Operações de vulnerabilidades: remove em cascata
- Operações de ativos → Leitura e gravação JSON: gera IDs
- Operações de vulnerabilidades → Leitura e gravação JSON: gera IDs
- Operações de ativos → Normalização e busca textual: normaliza e compara
- Operações de vulnerabilidades → Normalização e busca textual: normaliza texto
- Operações de ativos → Categorias e estados: usa categorias
- Operações de vulnerabilidades → Categorias e estados: usa classificações
- Leitura e gravação JSON → Categorias e estados: valida valores
