# nadja75/myeset-keygen architecture

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

- Interactive diagram: https://gitdiagram.com/nadja75/myeset-keygen
- Repository: https://github.com/nadja75/myeset-keygen

## Overview

ESET-KeyGen is a command-line and menu-driven tool for creating ESET accounts and requesting trial keys; it also documents VPN-code, installer, updater, and VPN-reset modes. The principal workflow is configured in main.py: select an email provider and browser, use browser automation for ESET account registration/confirmation, then request and report account or license results. Email handling, browser setup, and shared automation are internal layers. The excerpts establish these integrations, but do not show every branch or the implementations of all documented modes.

Main entry points: [`main.py`](https://github.com/nadja75/myeset-keygen/blob/main/main.py) (CLI workflow), [`modules/EmailAPIs.py`](https://github.com/nadja75/myeset-keygen/blob/main/modules/EmailAPIs.py) (Email providers), [`modules/WebDriverInstaller.py`](https://github.com/nadja75/myeset-keygen/blob/main/modules/WebDriverInstaller.py) (Browser driver setup), [`modules/SharedTools.py`](https://github.com/nadja75/myeset-keygen/blob/main/modules/SharedTools.py) (Browser and shared tools)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and configuration"]
  node_main["CLI workflow<br/>[main.py]"]
  node_menu["Menu interface<br/>[MBCI.py]"]
end

subgraph group_generation["Account and license generation"]
  node_email["Email providers<br/>[EmailAPIs.py]"]
  node_eset["ESET workflows<br/>[EsetTools.py]"]
  node_vpn_reset["VPN reset mode<br/>[main.py]"]
end

subgraph group_runtime["Runtime services"]
  node_webdriver["Browser driver setup"]
  node_shared["Browser and shared tools<br/>[SharedTools.py]"]
end

subgraph group_utilities["Maintenance and interface"]
  node_updater["Updater<br/>[Updater.py]"]
  node_progress["Progress display<br/>[ProgressBar.py]"]
  node_installer["Program installer<br/>[SharedTools.py]"]
end

node_user(("Operator"))
node_eset_service["ESET services"]
node_mail_services["Temporary mail services"]
node_browser["Browser"]

node_user -->|"configures and starts"| node_main
node_user -->|"chooses options"| node_menu
node_main -->|"builds menu"| node_menu
node_main -->|"selects provider"| node_email
node_main -->|"sets up driver"| node_webdriver
node_main -->|"runs generation"| node_eset
node_main -->|"checks updates"| node_updater
node_main -.->|"supports installation"| node_installer
node_main -.->|"offers reset mode"| node_vpn_reset
node_email -->|"uses shared tools"| node_shared
node_email -->|"requests and reads mail"| node_mail_services
node_eset -->|"uses email APIs"| node_email
node_eset -->|"registers and requests licenses"| node_eset_service
node_webdriver -->|"uses shared tools"| node_shared
node_webdriver -->|"detects browser and driver"| node_browser
node_shared -->|"initializes automation"| node_browser
node_shared -.->|"supports driver setup"| node_webdriver
node_updater -->|"renders download progress"| node_progress

click node_main "https://github.com/nadja75/myeset-keygen/blob/main/main.py"
click node_menu "https://github.com/nadja75/myeset-keygen/blob/main/modules/MBCI.py"
click node_email "https://github.com/nadja75/myeset-keygen/blob/main/modules/EmailAPIs.py"
click node_eset "https://github.com/nadja75/myeset-keygen/blob/main/modules/EsetTools.py"
click node_webdriver "https://github.com/nadja75/myeset-keygen/blob/main/modules/WebDriverInstaller.py"
click node_shared "https://github.com/nadja75/myeset-keygen/blob/main/modules/SharedTools.py"
click node_updater "https://github.com/nadja75/myeset-keygen/blob/main/modules/Updater.py"
click node_progress "https://github.com/nadja75/myeset-keygen/blob/main/modules/ProgressBar.py"
click node_installer "https://github.com/nadja75/myeset-keygen/blob/main/modules/SharedTools.py"
click node_vpn_reset "https://github.com/nadja75/myeset-keygen/blob/main/main.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_main,node_menu,node_browser toneBlue
class node_email,node_eset,node_vpn_reset toneAmber
class node_webdriver,node_shared toneMint
class node_updater,node_progress,node_installer toneRose
class node_user,node_eset_service,node_mail_services toneIndigo
```

## Components

### Entry and configuration

- [CLI workflow](https://github.com/nadja75/myeset-keygen/blob/main/main.py): `main.py`
- [Menu interface](https://github.com/nadja75/myeset-keygen/blob/main/modules/MBCI.py): `modules/MBCI.py`

### Account and license generation

- [Email providers](https://github.com/nadja75/myeset-keygen/blob/main/modules/EmailAPIs.py): `modules/EmailAPIs.py`
- [ESET workflows](https://github.com/nadja75/myeset-keygen/blob/main/modules/EsetTools.py): `modules/EsetTools.py`
- [VPN reset mode](https://github.com/nadja75/myeset-keygen/blob/main/main.py): `main.py`

### Runtime services

- [Browser driver setup](https://github.com/nadja75/myeset-keygen/blob/main/modules/WebDriverInstaller.py): `modules/WebDriverInstaller.py`
- [Browser and shared tools](https://github.com/nadja75/myeset-keygen/blob/main/modules/SharedTools.py): `modules/SharedTools.py`

### Maintenance and interface

- [Updater](https://github.com/nadja75/myeset-keygen/blob/main/modules/Updater.py): `modules/Updater.py`
- [Progress display](https://github.com/nadja75/myeset-keygen/blob/main/modules/ProgressBar.py): `modules/ProgressBar.py`
- [Program installer](https://github.com/nadja75/myeset-keygen/blob/main/modules/SharedTools.py): `modules/SharedTools.py`

### Other components

- **Operator**
- **ESET services**
- **Temporary mail services**
- **Browser**

## Connections

- Operator → CLI workflow: configures and starts (evidence: `README.md`)
- Operator → Menu interface: chooses options (evidence: `README.md`)
- CLI workflow → Menu interface: builds menu (evidence: `main.py`)
- CLI workflow → Email providers: selects provider (evidence: `main.py`)
- CLI workflow → Browser driver setup: sets up driver (evidence: `main.py`)
- CLI workflow → ESET workflows: runs generation (evidence: `main.py`)
- CLI workflow → Updater: checks updates (evidence: `main.py`)
- CLI workflow → Program installer: supports installation (evidence: `README.md`)
- CLI workflow → VPN reset mode: offers reset mode (evidence: `README.md`)
- Email providers → Browser and shared tools: uses shared tools (evidence: `modules/EmailAPIs.py`)
- Email providers → Temporary mail services: requests and reads mail (evidence: `modules/EmailAPIs.py`)
- ESET workflows → Email providers: uses email APIs (evidence: `modules/EsetTools.py`)
- ESET workflows → ESET services: registers and requests licenses (evidence: `modules/EsetTools.py`)
- Browser driver setup → Browser and shared tools: uses shared tools (evidence: `modules/WebDriverInstaller.py`)
- Browser driver setup → Browser: detects browser and driver (evidence: `modules/WebDriverInstaller.py`)
- Browser and shared tools → Browser: initializes automation (evidence: `modules/SharedTools.py`)
- Browser and shared tools → Browser driver setup: supports driver setup (evidence: `modules/SharedTools.py`)
- Updater → Progress display: renders download progress (evidence: `modules/Updater.py`)
