# jesskidding/network-analysis-port-scanner-tool architecture

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

- Interactive diagram: https://gitdiagram.com/jesskidding/network-analysis-port-scanner-tool
- Repository: https://github.com/jesskidding/network-analysis-port-scanner-tool

## Overview

A single-file command-line network analysis tool. Its main workflow gathers system and interface information, then runs speed, Wi-Fi, and port checks; an optional custom-analysis path is exposed but currently unimplemented. Results are printed, while the output-file option currently saves an empty list. The README describes these capabilities, and the sampled script confirms their implementation; external tool behavior is not inspected.

Main entry points: [`Network_Analysis_Port_Scanner_Tool.py`](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py) (CLI entry point)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI workflow"]
  node_entry["CLI entry point"]
  node_loading["Progress display"]
end

subgraph group_analysis["Network analysis"]
  node_custom["Custom analysis"]
  node_speed["Speed test"]
  node_wifi["Wi-Fi assessment"]
  node_ports["Port scanner"]
  node_port_info["Port descriptions"]
end

subgraph group_system["System inspection"]
  node_system_info["System information"]
  node_interface_detect["Interface discovery"]
end

subgraph group_output["Output and logging"]
  node_save["Result writer"]
  node_logger["Error logging"]
end

node_user(("Operator"))
node_speed_service{{"Speedtest service"}}
node_local_network{{"Local network target"}}
node_os_tools{{"OS network tools"}}
node_filesystem["Output file"]

node_user -->|"runs"| node_entry
node_entry -->|"gathers"| node_system_info
node_system_info -->|"returns"| node_entry
node_entry -->|"discovers"| node_interface_detect
node_entry -->|"dispatches"| node_custom
node_entry -->|"displays"| node_loading
node_entry -->|"invokes"| node_speed
node_speed -->|"tests bandwidth"| node_speed_service
node_entry -->|"invokes"| node_wifi
node_wifi -->|"queries signal"| node_os_tools
node_entry -->|"invokes"| node_ports
node_entry -->|"resolves target"| node_local_network
node_ports -->|"probes ports"| node_local_network
node_ports -->|"describes open ports"| node_port_info
node_entry -->|"writes requested output"| node_save
node_save -->|"writes file"| node_filesystem
node_system_info -->|"logs errors"| node_logger
node_interface_detect -->|"logs errors"| node_logger
node_custom -->|"logs errors"| node_logger
node_speed -->|"logs errors"| node_logger
node_wifi -->|"logs errors"| node_logger
node_ports -->|"logs errors"| node_logger
node_save -->|"logs errors"| node_logger
node_entry -->|"logs errors"| node_logger

click node_entry "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_system_info "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_interface_detect "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_custom "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_speed "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_wifi "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_ports "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_port_info "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_loading "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_save "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py"
click node_logger "https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.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_entry,node_loading toneBlue
class node_custom,node_speed,node_wifi,node_ports,node_port_info toneAmber
class node_system_info,node_interface_detect toneMint
class node_save,node_logger toneRose
class node_user,node_speed_service,node_local_network,node_os_tools,node_filesystem toneIndigo
```

## Components

### CLI workflow

- [CLI entry point](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`
- [Progress display](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`

### Network analysis

- [Custom analysis](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`
- [Speed test](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`
- [Wi-Fi assessment](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`
- [Port scanner](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`
- [Port descriptions](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`

### System inspection

- [System information](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`
- [Interface discovery](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`

### Output and logging

- [Result writer](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`
- [Error logging](https://github.com/jesskidding/network-analysis-port-scanner-tool/blob/main/Network_Analysis_Port_Scanner_Tool.py): `Network_Analysis_Port_Scanner_Tool.py`

### Other components

- **Operator**
- **Speedtest service**
- **Local network target**
- **OS network tools**
- **Output file**

## Connections

- Operator → CLI entry point: runs
- CLI entry point → System information: gathers
- System information → CLI entry point: returns
- CLI entry point → Interface discovery: discovers
- CLI entry point → Custom analysis: dispatches
- CLI entry point → Progress display: displays
- CLI entry point → Speed test: invokes
- Speed test → Speedtest service: tests bandwidth
- CLI entry point → Wi-Fi assessment: invokes
- Wi-Fi assessment → OS network tools: queries signal
- CLI entry point → Port scanner: invokes
- CLI entry point → Local network target: resolves target
- Port scanner → Local network target: probes ports
- Port scanner → Port descriptions: describes open ports
- CLI entry point → Result writer: writes requested output
- Result writer → Output file: writes file
- System information → Error logging: logs errors
- Interface discovery → Error logging: logs errors
- Custom analysis → Error logging: logs errors
- Speed test → Error logging: logs errors
- Wi-Fi assessment → Error logging: logs errors
- Port scanner → Error logging: logs errors
- Result writer → Error logging: logs errors
- CLI entry point → Error logging: logs errors
