# jain-mohansh/python-learning-roadmap architecture

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

- Interactive diagram: https://gitdiagram.com/jain-mohansh/python-learning-roadmap
- Repository: https://github.com/jain-mohansh/python-learning-roadmap

## Overview

This repository is a collection of standalone Python practice exercises, not a single application. The typical workflow is that a learner runs an exercise, supplies input when it prompts, and reads the printed result; each script performs its own logic without a shared runtime or data flow between exercises. The graph groups representative exercises by topic. Relationships are shown only for sampled scripts whose input/output behavior is visible; other listed exercises are not presumed to call them.

Main entry points: [`2_User Input/Challenge/Build a simple ATM menu using user input.py`](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/2_User%20Input/Challenge/Build%20a%20simple%20ATM%20menu%20using%20user%20input.py) (ATM menu), [`2_User Input/medium/Create a simple calculator using user input.py`](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/2_User%20Input/medium/Create%20a%20simple%20calculator%20using%20user%20input.py) (Input calculator), [`4_Conditional Statements/medium/Calculate tax using different income ranges..py`](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/4_Conditional%20Statements/medium/Calculate%20tax%20using%20different%20income%20ranges..py) (Tax calculator), [`5_Match-Case Statements/easy/Print a month based on a number.py`](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/5_Match-Case%20Statements/easy/Print%20a%20month%20based%20on%20a%20number.py) (Month match)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_input["Input and menus"]
  node_atm_user["ATM menu"]
  node_calculator["Input calculator"]
end

subgraph group_logic["Conditionals and matching"]
  node_tax["Tax calculator"]
  node_month["Month match"]
  node_atm_match["ATM match menu"]
end

subgraph group_loops["Loops and games"]
  node_guessing["Guessing game"]
  node_prime["Prime checker"]
end

subgraph group_functions["Functions"]
  node_menu_functions["Function menu"]
  node_average["Average function"]
end

subgraph group_collections["Collections"]
  node_duplicates["Duplicate finder"]
end

node_learner(("Learner"))
node_terminal["Terminal output"]

node_learner -->|"enters choices"| node_atm_user
node_atm_user -->|"prints balance"| node_terminal
node_learner -->|"enters operands"| node_calculator
node_calculator -->|"prints result"| node_terminal
node_learner -->|"enters income"| node_tax
node_tax -->|"prints tax"| node_terminal
node_learner -->|"enters number"| node_month
node_month -->|"prints month"| node_terminal
node_learner -->|"chooses operation"| node_atm_match
node_atm_match -->|"prints status"| node_terminal
node_learner -->|"enters guesses"| node_guessing
node_guessing -->|"prints feedback"| node_terminal
node_learner -->|"enters number"| node_prime
node_prime -->|"prints verdict"| node_terminal
node_learner -->|"chooses operation"| node_menu_functions
node_menu_functions -->|"prints result"| node_terminal
node_average -->|"prints average"| node_terminal
node_duplicates -->|"prints duplicates"| node_terminal

click node_atm_user "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/2_User%20Input/Challenge/Build%20a%20simple%20ATM%20menu%20using%20user%20input.py"
click node_calculator "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/2_User%20Input/medium/Create%20a%20simple%20calculator%20using%20user%20input.py"
click node_tax "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/4_Conditional%20Statements/medium/Calculate%20tax%20using%20different%20income%20ranges..py"
click node_month "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/5_Match-Case%20Statements/easy/Print%20a%20month%20based%20on%20a%20number.py"
click node_atm_match "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/5_Match-Case%20Statements/Challenge/Build%20a%20command-line%20application%20using%20match-case%20for%20all%20menu%20operations.py"
click node_guessing "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/6_Loops/Challenge/Create%20a%20number%20guessing%20game.py"
click node_prime "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/6_Loops/medium/Check%20whether%20a%20number%20is%20prime.py"
click node_menu_functions "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/8_Functions/Challenge/Build%20a%20menu-driven%20program%20using%20functions.py"
click node_average "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/8_Functions/medium/Create%20calculate_average(numbers).py"
click node_duplicates "https://github.com/jain-mohansh/python-learning-roadmap/blob/main/9_Lists/Challenge/Find%20duplicate%20elements.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_atm_user,node_calculator toneBlue
class node_tax,node_month,node_atm_match toneAmber
class node_guessing,node_prime toneMint
class node_menu_functions,node_average toneRose
class node_duplicates,node_learner,node_terminal toneIndigo
```

## Components

### Input and menus

- [ATM menu](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/2_User%20Input/Challenge/Build%20a%20simple%20ATM%20menu%20using%20user%20input.py): `2_User Input/Challenge/Build a simple ATM menu using user input.py`
- [Input calculator](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/2_User%20Input/medium/Create%20a%20simple%20calculator%20using%20user%20input.py): `2_User Input/medium/Create a simple calculator using user input.py`

### Conditionals and matching

- [Tax calculator](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/4_Conditional%20Statements/medium/Calculate%20tax%20using%20different%20income%20ranges..py): `4_Conditional Statements/medium/Calculate tax using different income ranges..py`
- [Month match](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/5_Match-Case%20Statements/easy/Print%20a%20month%20based%20on%20a%20number.py): `5_Match-Case Statements/easy/Print a month based on a number.py`
- [ATM match menu](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/5_Match-Case%20Statements/Challenge/Build%20a%20command-line%20application%20using%20match-case%20for%20all%20menu%20operations.py): `5_Match-Case Statements/Challenge/Build a command-line application using match-case for all menu operations.py`

### Loops and games

- [Guessing game](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/6_Loops/Challenge/Create%20a%20number%20guessing%20game.py): `6_Loops/Challenge/Create a number guessing game.py`
- [Prime checker](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/6_Loops/medium/Check%20whether%20a%20number%20is%20prime.py): `6_Loops/medium/Check whether a number is prime.py`

### Functions

- [Function menu](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/8_Functions/Challenge/Build%20a%20menu-driven%20program%20using%20functions.py): `8_Functions/Challenge/Build a menu-driven program using functions.py`
- [Average function](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/8_Functions/medium/Create%20calculate_average(numbers).py): `8_Functions/medium/Create calculate_average(numbers).py`

### Collections

- [Duplicate finder](https://github.com/jain-mohansh/python-learning-roadmap/blob/main/9_Lists/Challenge/Find%20duplicate%20elements.py): `9_Lists/Challenge/Find duplicate elements.py`

### Other components

- **Learner**
- **Terminal output**

## Connections

- Learner → ATM menu: enters choices (evidence: `2_User Input/Challenge/Build a simple ATM menu using user input.py`)
- ATM menu → Terminal output: prints balance (evidence: `2_User Input/Challenge/Build a simple ATM menu using user input.py`)
- Learner → Input calculator: enters operands (evidence: `2_User Input/medium/Create a simple calculator using user input.py`)
- Input calculator → Terminal output: prints result (evidence: `2_User Input/medium/Create a simple calculator using user input.py`)
- Learner → Tax calculator: enters income (evidence: `4_Conditional Statements/medium/Calculate tax using different income ranges..py`)
- Tax calculator → Terminal output: prints tax (evidence: `4_Conditional Statements/medium/Calculate tax using different income ranges..py`)
- Learner → Month match: enters number (evidence: `5_Match-Case Statements/easy/Print a month based on a number.py`)
- Month match → Terminal output: prints month (evidence: `5_Match-Case Statements/easy/Print a month based on a number.py`)
- Learner → ATM match menu: chooses operation (evidence: `5_Match-Case Statements/Challenge/Build a command-line application using match-case for all menu operations.py`)
- ATM match menu → Terminal output: prints status (evidence: `5_Match-Case Statements/Challenge/Build a command-line application using match-case for all menu operations.py`)
- Learner → Guessing game: enters guesses (evidence: `6_Loops/Challenge/Create a number guessing game.py`)
- Guessing game → Terminal output: prints feedback (evidence: `6_Loops/Challenge/Create a number guessing game.py`)
- Learner → Prime checker: enters number (evidence: `6_Loops/medium/Check whether a number is prime.py`)
- Prime checker → Terminal output: prints verdict (evidence: `6_Loops/medium/Check whether a number is prime.py`)
- Learner → Function menu: chooses operation (evidence: `8_Functions/Challenge/Build a menu-driven program using functions.py`)
- Function menu → Terminal output: prints result (evidence: `8_Functions/Challenge/Build a menu-driven program using functions.py`)
- Average function → Terminal output: prints average (evidence: `8_Functions/medium/Create calculate_average(numbers).py`)
- Duplicate finder → Terminal output: prints duplicates (evidence: `9_Lists/Challenge/Find duplicate elements.py`)
