# hiteshchoudhary/python-udemy architecture

> Architecture diagram of the GitHub repository hiteshchoudhary/python-udemy, 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/hiteshchoudhary/python-udemy
- Repository: https://github.com/hiteshchoudhary/python-udemy

## Overview

This repository is a hands-on Python course, not a single application. Its main learning workflow progresses from fundamentals through language features and concurrency, then into practical challenge projects. The README documents those stages and project capabilities; sampled source confirms the URL shortener’s Flask-to-SQLite calls. Most lesson files are independent examples, so the graph does not invent calls between them. Challenge internals beyond the sampled files are represented at their exact directories.

Main entry points: [`challenges/06_url_shortner/app.py`](https://github.com/hiteshchoudhary/python-udemy/blob/main/challenges/06_url_shortner/app.py) (Shortener Flask App), [`challenges/06_url_shortner/models.py`](https://github.com/hiteshchoudhary/python-udemy/blob/main/challenges/06_url_shortner/models.py) (URL Data Access), [`00_python`](https://github.com/hiteshchoudhary/python-udemy/tree/main/00_python) (Syntax and Types), [`02_datatypes`](https://github.com/hiteshchoudhary/python-udemy/tree/main/02_datatypes) (Data Types)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_foundations["Python Foundations"]
  node_basics["Syntax and Types"]
  node_datatypes["Data Types"]
  node_control["Control Flow"]
  node_loops["Loops"]
end

subgraph group_language["Language Concepts"]
  node_functions["Functions"]
  node_chai_business["Modular Chai App"]
  node_comprehensions["Comprehensions"]
  node_generators["Generators"]
end

subgraph group_advanced["Advanced Python"]
  node_decorators["Decorators"]
  node_oop["Object-Oriented Python"]
  node_exceptions["Exceptions and Files"]
  node_concurrency["Threads and Processes"]
  node_async["Async Python"]
  node_pydantic["Validation and Serialization"]
end

subgraph group_projects["Applied Challenges"]
  node_utilities["Utility Exercises"]
  node_data["Data Handling"]
  node_scraping["Web Scraping"]
  node_automation["Automation"]
  node_science["Data Science"]
end

subgraph group_shortener["URL Shortener"]
  node_flask_app["Shortener Flask App<br/>[app.py]"]
  node_url_store["URL Data Access<br/>[models.py]"]
  node_sqlite[("SQLite Database")]
end

node_student(("Learner"))
node_web_user(("Web App User"))

node_student -->|"starts with"| node_basics
node_student -->|"studies"| node_datatypes
node_student -->|"studies"| node_control
node_student -->|"studies"| node_loops
node_student -->|"studies"| node_functions
node_student -->|"builds"| node_chai_business
node_student -->|"studies"| node_comprehensions
node_student -->|"studies"| node_generators
node_student -->|"studies"| node_decorators
node_student -->|"studies"| node_oop
node_student -->|"studies"| node_exceptions
node_student -->|"studies"| node_concurrency
node_student -->|"studies"| node_async
node_student -.->|"practices"| node_pydantic
node_student -->|"practices"| node_utilities
node_student -->|"practices"| node_data
node_student -->|"practices"| node_scraping
node_student -->|"practices"| node_automation
node_student -->|"practices"| node_science
node_web_user -->|"sends requests"| node_flask_app
node_flask_app -->|"calls"| node_url_store
node_url_store -->|"reads and writes"| node_sqlite

click node_basics "https://github.com/hiteshchoudhary/python-udemy/tree/main/00_python"
click node_datatypes "https://github.com/hiteshchoudhary/python-udemy/tree/main/02_datatypes"
click node_control "https://github.com/hiteshchoudhary/python-udemy/tree/main/03_conditionals"
click node_loops "https://github.com/hiteshchoudhary/python-udemy/tree/main/04_loops"
click node_functions "https://github.com/hiteshchoudhary/python-udemy/tree/main/05_functions"
click node_chai_business "https://github.com/hiteshchoudhary/python-udemy/tree/main/06_chai_business"
click node_comprehensions "https://github.com/hiteshchoudhary/python-udemy/tree/main/07_comprehensions"
click node_generators "https://github.com/hiteshchoudhary/python-udemy/tree/main/08_generators"
click node_decorators "https://github.com/hiteshchoudhary/python-udemy/tree/main/09_decorators"
click node_oop "https://github.com/hiteshchoudhary/python-udemy/tree/main/10_oop"
click node_exceptions "https://github.com/hiteshchoudhary/python-udemy/tree/main/11_exceptions"
click node_concurrency "https://github.com/hiteshchoudhary/python-udemy/tree/main/12_threads_concurrency"
click node_async "https://github.com/hiteshchoudhary/python-udemy/tree/main/13_async_python"
click node_pydantic "https://github.com/hiteshchoudhary/python-udemy/tree/main/14_pydantic"
click node_utilities "https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/01_utilities"
click node_data "https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/02_data_handling"
click node_scraping "https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/03_web_scraping"
click node_automation "https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/04_automation"
click node_science "https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/05_data_science"
click node_flask_app "https://github.com/hiteshchoudhary/python-udemy/blob/main/challenges/06_url_shortner/app.py"
click node_url_store "https://github.com/hiteshchoudhary/python-udemy/blob/main/challenges/06_url_shortner/models.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_basics,node_datatypes,node_control,node_loops,node_web_user toneBlue
class node_functions,node_chai_business,node_comprehensions,node_generators toneAmber
class node_decorators,node_oop,node_exceptions,node_concurrency,node_async,node_pydantic toneMint
class node_utilities,node_data,node_scraping,node_automation,node_science toneRose
class node_flask_app,node_url_store,node_sqlite,node_student toneIndigo
```

## Components

### Python Foundations

- [Syntax and Types](https://github.com/hiteshchoudhary/python-udemy/tree/main/00_python): `00_python`
- [Data Types](https://github.com/hiteshchoudhary/python-udemy/tree/main/02_datatypes): `02_datatypes`
- [Control Flow](https://github.com/hiteshchoudhary/python-udemy/tree/main/03_conditionals): `03_conditionals`
- [Loops](https://github.com/hiteshchoudhary/python-udemy/tree/main/04_loops): `04_loops`

### Language Concepts

- [Functions](https://github.com/hiteshchoudhary/python-udemy/tree/main/05_functions): `05_functions`
- [Modular Chai App](https://github.com/hiteshchoudhary/python-udemy/tree/main/06_chai_business): `06_chai_business`
- [Comprehensions](https://github.com/hiteshchoudhary/python-udemy/tree/main/07_comprehensions): `07_comprehensions`
- [Generators](https://github.com/hiteshchoudhary/python-udemy/tree/main/08_generators): `08_generators`

### Advanced Python

- [Decorators](https://github.com/hiteshchoudhary/python-udemy/tree/main/09_decorators): `09_decorators`
- [Object-Oriented Python](https://github.com/hiteshchoudhary/python-udemy/tree/main/10_oop): `10_oop`
- [Exceptions and Files](https://github.com/hiteshchoudhary/python-udemy/tree/main/11_exceptions): `11_exceptions`
- [Threads and Processes](https://github.com/hiteshchoudhary/python-udemy/tree/main/12_threads_concurrency): `12_threads_concurrency`
- [Async Python](https://github.com/hiteshchoudhary/python-udemy/tree/main/13_async_python): `13_async_python`
- [Validation and Serialization](https://github.com/hiteshchoudhary/python-udemy/tree/main/14_pydantic): `14_pydantic`

### Applied Challenges

- [Utility Exercises](https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/01_utilities): `challenges/01_utilities`
- [Data Handling](https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/02_data_handling): `challenges/02_data_handling`
- [Web Scraping](https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/03_web_scraping): `challenges/03_web_scraping`
- [Automation](https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/04_automation): `challenges/04_automation`
- [Data Science](https://github.com/hiteshchoudhary/python-udemy/tree/main/challenges/05_data_science): `challenges/05_data_science`

### URL Shortener

- [Shortener Flask App](https://github.com/hiteshchoudhary/python-udemy/blob/main/challenges/06_url_shortner/app.py): `challenges/06_url_shortner/app.py`
- [URL Data Access](https://github.com/hiteshchoudhary/python-udemy/blob/main/challenges/06_url_shortner/models.py): `challenges/06_url_shortner/models.py`
- **SQLite Database**

### Other components

- **Learner**
- **Web App User**

## Connections

- Learner → Syntax and Types: starts with
- Learner → Data Types: studies
- Learner → Control Flow: studies
- Learner → Loops: studies
- Learner → Functions: studies
- Learner → Modular Chai App: builds
- Learner → Comprehensions: studies
- Learner → Generators: studies
- Learner → Decorators: studies
- Learner → Object-Oriented Python: studies
- Learner → Exceptions and Files: studies
- Learner → Threads and Processes: studies
- Learner → Async Python: studies
- Learner → Validation and Serialization: practices
- Learner → Utility Exercises: practices
- Learner → Data Handling: practices
- Learner → Web Scraping: practices
- Learner → Automation: practices
- Learner → Data Science: practices
- Web App User → Shortener Flask App: sends requests (evidence: `challenges/06_url_shortner/app.py`)
- Shortener Flask App → URL Data Access: calls (evidence: `challenges/06_url_shortner/app.py`)
- URL Data Access → SQLite Database: reads and writes (evidence: `challenges/06_url_shortner/models.py`)
