# augxusto/aep-2s architecture

> Architecture diagram of the GitHub repository augxusto/aep-2s, 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/augxusto/aep-2s
- Repository: https://github.com/augxusto/aep-2s

## Overview

AEP-2S is a small Windows console application for managing usernames and passwords. Its visible workflow starts in the menu, where the add-user action validates and confirms a password, sorts the in-memory users, and saves them. Other implemented operations include listing, changing, and deleting users. User records are stored in users.txt, with the program applying a reversible character transformation when displaying or persisting passwords. The excerpt is incomplete, so menu dispatches beyond adding a user are not shown.

Main entry points: [`AEP 5.0.cpp`](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp) (Add user)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Console interface"]
  node_main["Application entry<br/>[AEP 5.0.cpp]"]
  node_menu["Main menu<br/>[AEP 5.0.cpp]"]
end

subgraph group_user_ops["User management"]
  node_add_user["Add user<br/>[AEP 5.0.cpp]"]
  node_validate_password["Password validation<br/>[AEP 5.0.cpp]"]
  node_sort_users["Sort users<br/>[AEP 5.0.cpp]"]
  node_list_users["List users<br/>[AEP 5.0.cpp]"]
  node_change_password["Change password<br/>[AEP 5.0.cpp]"]
  node_delete_user["Delete user<br/>[AEP 5.0.cpp]"]
end

subgraph group_data["Persistence and encoding"]
  node_file_io["User file I/O<br/>[AEP 5.0.cpp]"]
  node_crypto["Character transform<br/>[AEP 5.0.cpp]"]
  node_users_file[("users.txt")]
end

node_operator(("Operator"))

node_operator -->|"starts"| node_main
node_main -->|"loads and saves"| node_file_io
node_main -->|"opens"| node_menu
node_menu -->|"dispatches"| node_add_user
node_add_user -->|"validates"| node_validate_password
node_add_user -->|"sorts"| node_sort_users
node_add_user -->|"saves"| node_file_io
node_list_users -->|"transforms"| node_crypto
node_file_io -->|"encodes"| node_crypto
node_file_io -->|"reads and writes"| node_users_file

click node_main "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_menu "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_add_user "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_validate_password "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_sort_users "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_list_users "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_change_password "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_delete_user "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_file_io "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"
click node_crypto "https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp"

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 toneBlue
class node_add_user,node_validate_password,node_sort_users,node_list_users,node_change_password,node_delete_user toneAmber
class node_file_io,node_crypto,node_users_file toneMint
class node_operator toneIndigo
```

## Components

### Console interface

- [Application entry](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- [Main menu](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`

### User management

- [Add user](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- [Password validation](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- [Sort users](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- [List users](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- [Change password](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- [Delete user](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`

### Persistence and encoding

- [User file I/O](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- [Character transform](https://github.com/augxusto/aep-2s/blob/main/AEP%205.0.cpp): `AEP 5.0.cpp`
- **users.txt**

### Other components

- **Operator**

## Connections

- Operator → Application entry: starts (evidence: `README.md`)
- Application entry → User file I/O: loads and saves (evidence: `AEP 5.0.cpp`)
- Application entry → Main menu: opens (evidence: `AEP 5.0.cpp`)
- Main menu → Add user: dispatches (evidence: `AEP 5.0.cpp`)
- Add user → Password validation: validates (evidence: `AEP 5.0.cpp`)
- Add user → Sort users: sorts (evidence: `AEP 5.0.cpp`)
- Add user → User file I/O: saves (evidence: `AEP 5.0.cpp`)
- List users → Character transform: transforms (evidence: `AEP 5.0.cpp`)
- User file I/O → Character transform: encodes (evidence: `AEP 5.0.cpp`)
- User file I/O → users.txt: reads and writes (evidence: `AEP 5.0.cpp`)
