# denaxlare/projeto_sprint_1 architecture

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

- Interactive diagram: https://gitdiagram.com/denaxlare/projeto_sprint_1
- Repository: https://github.com/denaxlare/projeto_sprint_1

## Overview

This is a small interactive asset and vulnerability management CLI. A user enters through the main menu to register, consult, update, or remove assets, and to manage vulnerabilities associated with an asset; the application loads state at startup and saves it on exit. Runtime state and enums live in one module, while persistence serializes them to `dados.json`. The graph reflects the sampled source; no README documentation was provided.

Main entry points: [`sprint1/main.py`](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/main.py) (Main menu), [`sprint1/modelos.py`](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/modelos.py) (Enums and state), [`sprint1/ativos.py`](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/ativos.py) (Asset management), [`sprint1/vulnerabilidades.py`](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/vulnerabilidades.py) (Vulnerability management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["CLI application"]
  node_menu["Main menu<br/>[main.py]"]
end

subgraph group_domain["Domain management"]
  node_asset_ops["Asset management<br/>[ativos.py]"]
  node_vuln_ops["Vulnerability management"]
  node_helpers["Input helpers<br/>[auxiliares.py]"]
end

subgraph group_state["State and persistence"]
  node_models["Enums and state<br/>[modelos.py]"]
  node_persistence["JSON persistence<br/>[persistencia.py]"]
end

node_user(("User"))
node_json_file["dados.json<br/>[dados.json]"]

node_user -->|"chooses actions"| node_menu
node_menu -->|"dispatches asset actions"| node_asset_ops
node_menu -->|"dispatches vulnerability actions"| node_vuln_ops
node_menu -->|"loads at startup; saves on exit"| node_persistence
node_asset_ops -->|"uses input selection"| node_helpers
node_vuln_ops -->|"selects responsible assets"| node_helpers
node_asset_ops -->|"reads and updates state"| node_models
node_vuln_ops -->|"reads and updates state"| node_models
node_helpers -->|"reads asset state"| node_models
node_persistence -->|"loads and saves state"| node_models
node_persistence -->|"reads and writes"| node_json_file

click node_menu "https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/main.py"
click node_asset_ops "https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/ativos.py"
click node_vuln_ops "https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/vulnerabilidades.py"
click node_helpers "https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/auxiliares.py"
click node_models "https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/modelos.py"
click node_persistence "https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/persistencia.py"
click node_json_file "https://github.com/denaxlare/projeto_sprint_1/blob/main/dados.json"

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_menu,node_user toneBlue
class node_asset_ops,node_vuln_ops,node_helpers toneAmber
class node_models,node_persistence toneMint
class node_json_file toneTeal
```

## Components

### CLI application

- [Main menu](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/main.py): `sprint1/main.py`

### Domain management

- [Asset management](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/ativos.py): `sprint1/ativos.py`
- [Vulnerability management](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/vulnerabilidades.py): `sprint1/vulnerabilidades.py`
- [Input helpers](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/auxiliares.py): `sprint1/auxiliares.py`

### State and persistence

- [Enums and state](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/modelos.py): `sprint1/modelos.py`
- [JSON persistence](https://github.com/denaxlare/projeto_sprint_1/blob/main/sprint1/persistencia.py): `sprint1/persistencia.py`

### Other components

- **User**
- [dados.json](https://github.com/denaxlare/projeto_sprint_1/blob/main/dados.json): `dados.json`

## Connections

- User → Main menu: chooses actions
- Main menu → Asset management: dispatches asset actions
- Main menu → Vulnerability management: dispatches vulnerability actions
- Main menu → JSON persistence: loads at startup; saves on exit
- Asset management → Input helpers: uses input selection
- Vulnerability management → Input helpers: selects responsible assets
- Asset management → Enums and state: reads and updates state
- Vulnerability management → Enums and state: reads and updates state
- Input helpers → Enums and state: reads asset state
- JSON persistence → Enums and state: loads and saves state
- JSON persistence → dados.json: reads and writes
