# b3rou/polyglot-calculators architecture

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

- Interactive diagram: https://gitdiagram.com/b3rou/polyglot-calculators
- Repository: https://github.com/b3rou/polyglot-calculators

## Overview

Polyglot-Calculators is a community collection of independent calculator and algorithm projects, not a single calculator application. A user or learner chooses a project, supplies inputs through that project’s interface, and receives a calculation or conversion result. Playground examples emphasize introductory tools; Showcase contains advanced projects such as cryptography and scientific calculators. Sampled files support a few concrete UI-to-calculation links; other project wiring is intentionally left unspecified because the source was not sampled.

Main entry points: [`Playground/KHALED-077/Java-CLI-Calculator/src/calculator/ui/CalculatorApp.java`](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/ui/CalculatorApp.java) (CLI interface), [`Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/main.py`](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/main.py) (Physics GUI), [`Playground/KHALED-077/Java-CLI-Calculator/src/calculator/service/CalculatorService.java`](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/service/CalculatorService.java) (Arithmetic service), [`Playground`](https://github.com/b3rou/polyglot-calculators/tree/main/Playground) (Beginner examples)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_playground["Playground projects"]
  node_playground_collection["Beginner examples"]
  node_khaled_ui["CLI interface<br/>[CalculatorApp.java]"]
  node_physics_ui["Physics GUI<br/>[main.py]"]
  node_cooking_app["Cooking converter<br/>[main.py]"]
  node_area_app["Area calculator<br/>[Main.java]"]
  node_scientific_app["Scientific calculator<br/>[Main.java]"]
end

subgraph group_showcase["Showcase projects"]
  node_showcase_collection["Advanced projects"]
  node_crypto_cli["Crypto calculator CLI<br/>[main.go]"]
  node_php_scientific["PHP scientific calculator<br/>[index.php]"]
  node_matrix_numerical["Matrix and numerical tools"]
end

subgraph group_calc_layers["Calculation layers"]
  node_khaled_service["Arithmetic service"]
  node_khaled_operator["Operator model<br/>[Operator.java]"]
  node_physics_functions["Physics formulas<br/>[functions.py]"]
  node_crypto_input["Input handling<br/>[input.go]"]
  node_crypto_aes["AES operations<br/>[aes.go]"]
  node_crypto_base["Base conversion<br/>[base.go]"]
  node_crypto_hash["Hash operations<br/>[hash.go]"]
  node_crypto_hmac["HMAC operations<br/>[hmac.go]"]
  node_crypto_rsa["RSA operations<br/>[rsa.go]"]
  node_crypto_filehash["File hashing<br/>[filehash.go]"]
end

node_user(("Learner or user"))

node_user -->|"chooses example"| node_playground_collection
node_user -->|"chooses project"| node_showcase_collection
node_khaled_ui -->|"calls calculate"| node_khaled_service
node_khaled_service -->|"uses operator"| node_khaled_operator
node_physics_ui -->|"calls formulas"| node_physics_functions
node_user -->|"enters operands"| node_khaled_ui
node_user -->|"enters values"| node_physics_ui
node_user -->|"enters conversion"| node_cooking_app
node_user -->|"selects shape"| node_area_app
node_user -->|"selects operation"| node_scientific_app
node_user -->|"starts calculator"| node_crypto_cli
node_user -->|"uses calculator"| node_php_scientific

click node_playground_collection "https://github.com/b3rou/polyglot-calculators/tree/main/Playground"
click node_khaled_ui "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/ui/CalculatorApp.java"
click node_khaled_service "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/service/CalculatorService.java"
click node_khaled_operator "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/domain/Operator.java"
click node_physics_ui "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/main.py"
click node_physics_functions "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/functions.py"
click node_cooking_app "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Akshad04/CookingConverter-Python-Akshad04/main.py"
click node_area_app "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Perouvianoss/AreaCalculator-Java-Perouvianoss/Main.java"
click node_scientific_app "https://github.com/b3rou/polyglot-calculators/blob/main/Playground/AleksandraSieg/ScientificCalculator-Java-AleksandraSieg/Main.java"
click node_showcase_collection "https://github.com/b3rou/polyglot-calculators/tree/main/Showcase"
click node_crypto_cli "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/cmd/CryptoCalculator-Go-vishwasio/main.go"
click node_crypto_input "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/input/input.go"
click node_crypto_aes "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/aescalc/aes.go"
click node_crypto_base "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/basecalc/base.go"
click node_crypto_hash "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/hashcalc/hash.go"
click node_crypto_hmac "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/hmaccalc/hmac.go"
click node_crypto_rsa "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/rsacalc/rsa.go"
click node_crypto_filehash "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/filehash/filehash.go"
click node_php_scientific "https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/PHP/Scientific-Calculator/index.php"
click node_matrix_numerical "https://github.com/b3rou/polyglot-calculators/tree/main/Showcase"

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_playground_collection,node_khaled_ui,node_physics_ui,node_cooking_app,node_area_app,node_scientific_app,node_user toneBlue
class node_showcase_collection,node_crypto_cli,node_php_scientific,node_matrix_numerical toneAmber
class node_khaled_service,node_khaled_operator,node_physics_functions,node_crypto_input,node_crypto_aes,node_crypto_base,node_crypto_hash,node_crypto_hmac,node_crypto_rsa,node_crypto_filehash toneMint
```

## Components

### Playground projects

- [Beginner examples](https://github.com/b3rou/polyglot-calculators/tree/main/Playground): `Playground`
- [CLI interface](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/ui/CalculatorApp.java): `Playground/KHALED-077/Java-CLI-Calculator/src/calculator/ui/CalculatorApp.java`
- [Physics GUI](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/main.py): `Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/main.py`
- [Cooking converter](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Akshad04/CookingConverter-Python-Akshad04/main.py): `Playground/Akshad04/CookingConverter-Python-Akshad04/main.py`
- [Area calculator](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Perouvianoss/AreaCalculator-Java-Perouvianoss/Main.java): `Playground/Perouvianoss/AreaCalculator-Java-Perouvianoss/Main.java`
- [Scientific calculator](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/AleksandraSieg/ScientificCalculator-Java-AleksandraSieg/Main.java): `Playground/AleksandraSieg/ScientificCalculator-Java-AleksandraSieg/Main.java`

### Showcase projects

- [Advanced projects](https://github.com/b3rou/polyglot-calculators/tree/main/Showcase): `Showcase`
- [Crypto calculator CLI](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/cmd/CryptoCalculator-Go-vishwasio/main.go): `Showcase/Golang/Crypto-Calculator/cmd/CryptoCalculator-Go-vishwasio/main.go`
- [PHP scientific calculator](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/PHP/Scientific-Calculator/index.php): `Showcase/PHP/Scientific-Calculator/index.php`
- [Matrix and numerical tools](https://github.com/b3rou/polyglot-calculators/tree/main/Showcase): `Showcase`

### Calculation layers

- [Arithmetic service](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/service/CalculatorService.java): `Playground/KHALED-077/Java-CLI-Calculator/src/calculator/service/CalculatorService.java`
- [Operator model](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/KHALED-077/Java-CLI-Calculator/src/calculator/domain/Operator.java): `Playground/KHALED-077/Java-CLI-Calculator/src/calculator/domain/Operator.java`
- [Physics formulas](https://github.com/b3rou/polyglot-calculators/blob/main/Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/functions.py): `Playground/Avnoor000/Ohm-WaveCalculatorGUI-Python-Avnoor000/functions.py`
- [Input handling](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/input/input.go): `Showcase/Golang/Crypto-Calculator/internal/input/input.go`
- [AES operations](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/aescalc/aes.go): `Showcase/Golang/Crypto-Calculator/internal/aescalc/aes.go`
- [Base conversion](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/basecalc/base.go): `Showcase/Golang/Crypto-Calculator/internal/basecalc/base.go`
- [Hash operations](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/hashcalc/hash.go): `Showcase/Golang/Crypto-Calculator/internal/hashcalc/hash.go`
- [HMAC operations](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/hmaccalc/hmac.go): `Showcase/Golang/Crypto-Calculator/internal/hmaccalc/hmac.go`
- [RSA operations](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/rsacalc/rsa.go): `Showcase/Golang/Crypto-Calculator/internal/rsacalc/rsa.go`
- [File hashing](https://github.com/b3rou/polyglot-calculators/blob/main/Showcase/Golang/Crypto-Calculator/internal/filehash/filehash.go): `Showcase/Golang/Crypto-Calculator/internal/filehash/filehash.go`

### Other components

- **Learner or user**

## Connections

- Learner or user → Beginner examples: chooses example
- Learner or user → Advanced projects: chooses project
- CLI interface → Arithmetic service: calls calculate
- Arithmetic service → Operator model: uses operator
- Physics GUI → Physics formulas: calls formulas
- Learner or user → CLI interface: enters operands
- Learner or user → Physics GUI: enters values
- Learner or user → Cooking converter: enters conversion
- Learner or user → Area calculator: selects shape
- Learner or user → Scientific calculator: selects operation
- Learner or user → Crypto calculator CLI: starts calculator
- Learner or user → PHP scientific calculator: uses calculator
