# grow-with-open-source/python-projects architecture

> Architecture diagram of the GitHub repository grow-with-open-source/python-projects, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-08-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/grow-with-open-source/python-projects
- Repository: https://github.com/grow-with-open-source/python-projects

## Overview

#### 1. Repository Role
This is a curated monorepo of independent Python learning projects, designed for open-source contributions and public project discovery. It is not a single deployable application: each top-level project directory generally owns its executable script, dependencies, and optional documentation.

#### 2. Project Execution Boundaries
Projects run independently from their own entry points; there is no shared runtime package or central dispatcher. Examples span CLI, GUI, computer-vision, games, and ML/data workflows:
- CLI/utility scripts: `Duplicate-File-Finder/duplicate_finder.py`, `File_Organizer/file-organizer.py`, `Web-Blocker/blocker.py`
- Interactive apps/games: `UNO/app.py`, `Secure_Password_Manager/gui/password_manager_gui.py`, `Music-Player/music_player.py`
- Vision/automation: `Motion-Detection/OpenCvPROJECT.py`, `Gesture_Volume_Control/volume_control.py`, `Bowling-Action-Tracking/main.py`

Each project’s dependency boundary is local where requirements files exist, e.g. `Auto-Clicker/requirements.txt`, `Titanic-Survival-Prediction/requirements.txt`, and `Spell-Sense/requirements.txt`.

#### 3. Data Science and Model Pipelines
Several directories implement stage-based local data workflows rather than services. Titanic prediction is the clearest pipeline: preprocessing, training, exploration, and prediction are separated in `Titanic-Survival-Prediction/preprocess.py`, `Titanic-Survival-Prediction/train.py`, and `Titanic-Survival-Prediction/predict.py`. Dataset-backed notebook work is isolated in projects such as `Weather_Forecasting/Weather_Forecasting.ipynb` with CSV inputs under `Weather_Forecasting/Datasets/`, and `credit-card-fraud-detection/DBSCAN_clustering.ipynb`.

#### 4. Multi-Module Application Components
Most contributions are standalone scripts, but a few projects have meaningful internal composition:
- Encryption separates algorithm implementations from the executable coordinator: `Encryption_Project/main.py`, `Encryption_Project/encryption/aes.py`, `Encryption_Project/encryption/sha.py`.
- UNO separates application setup, game rules/state logic, deck modeling, and display behavior: `UNO/app.py`, `UNO/deck.py`, `UNO/logic_rich.py`.
- Image watermarking places reusable transformation logic behind an app entry point: `Image_watermark_Adder/app.py`, `Image_watermark_Adder/utils/watermark.py`.

#### 5. Documentation and Public Site
The repository itself is published as a Jekyll GitHub Pages site. The root landing/documentation sources are `README.md` and `index.md`; Jekyll configuration and HTML customization reside in `_config.yml` and `_includes/head-custom.html`. Project folders and their README files are the source content surfaced for visitors, while visual assets are under `assets/img`.

#### 6. Contribution Metadata Automation
Repository-level automation maintains the contributor-facing catalog and metadata. Scripts in `.github/scripts/update_index_md.py` and `.github/scripts/update_contributors_log.py` update site/index and contributor information, with durable contributor data in `.github/data/contributors-log.json`. These are governance/content-management flows, separate from all project runtimes.

#### 7. CI, Deployment, and External Infrastructure
GitHub Actions is the primary infrastructure boundary. `.github/workflows/python-linter.yml` validates Python contributions; `.github/workflows/deploy-gh-pages.yml` deploys the Jekyll site to GitHub Pages. Additional workflows automate PR assignment, labeling, comments, staleness, and contributor-detail updates. External services are GitHub/GitHub Actions, GitHub Pages, and project-specific third-party Python libraries declared per project; no shared backend, database, or API gateway is indicated.

Main entry points: [`index.md`](https://github.com/grow-with-open-source/python-projects/blob/main/index.md) (Landing and project docs), [`Auto-Clicker/requirements.txt`](https://github.com/grow-with-open-source/python-projects/blob/main/Auto-Clicker/requirements.txt) (Per-project dependencies), [`_config.yml`](https://github.com/grow-with-open-source/python-projects/blob/main/_config.yml) (Jekyll site), [`UNO/app.py`](https://github.com/grow-with-open-source/python-projects/blob/main/UNO/app.py) (UNO application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_projects["Independent Projects"]
  node_cli_projects["CLI utilities<br/>Python scripts"]
  node_interactive_projects["Interactive apps<br/>Python apps"]
  node_vision_projects["Vision automation<br/>Python apps<br/>[OpenCvPROJECT.py]"]
  node_local_dependencies["Per-project dependencies<br/>requirements<br/>[requirements.txt]"]
  node_encryption_app["Encryption coordinator<br/>Python entry point<br/>[main.py]"]
  node_encryption_algorithms["Encryption algorithms<br/>Python modules<br/>[aes.py]"]
  node_uno_app["UNO application<br/>Python entry point<br/>[app.py]"]
  node_uno_game_logic["UNO rules and state<br/>Python module<br/>[logic_rich.py]"]
  node_uno_deck["UNO deck model<br/>Python module<br/>[deck.py]"]
  node_watermark_app["Watermark application<br/>Python entry point<br/>[app.py]"]
  node_watermark_transform["Watermark transform<br/>Python module<br/>[watermark.py]"]
end

subgraph group_pipelines["Data Workflows"]
  node_titanic_preprocess["Titanic preprocessing<br/>Python stage<br/>[preprocess.py]"]
  node_titanic_train["Titanic training<br/>Python stage<br/>[train.py]"]
  node_titanic_predict["Titanic prediction<br/>Python stage<br/>[predict.py]"]
  node_weather_notebook["Weather notebook<br/>Jupyter notebook"]
  node_weather_datasets[("Weather CSV inputs<br/>datasets")]
end

subgraph group_site["Documentation Site"]
  node_site_sources["Landing and project docs<br/>Markdown content<br/>[index.md]"]
  node_jekyll_site["Jekyll site<br/>static site build<br/>[_config.yml]"]
  node_site_assets["Visual assets<br/>static assets"]
end

subgraph group_automation["Repository Automation"]
  node_catalog_updater["Catalog updater<br/>Python automation<br/>[update_index_md.py]"]
  node_contributors_updater["Contributor log updater<br/>Python automation"]
  node_contributors_data[("Contributor data<br/>JSON metadata")]
  node_python_lint_ci{{"Python lint CI<br/>GitHub Actions workflow<br/>[python-linter.yml]"}}
  node_pages_deploy{{"Pages deployment<br/>GitHub Actions workflow"}}
end

node_github_pages["GitHub Pages<br/>external hosting"]

node_cli_projects -.->|"uses local dependencies"| node_local_dependencies
node_interactive_projects -.->|"uses local dependencies"| node_local_dependencies
node_vision_projects -.->|"uses local dependencies"| node_local_dependencies
node_encryption_app -->|"coordinates"| node_encryption_algorithms
node_uno_app -->|"runs rules and state"| node_uno_game_logic
node_uno_app -->|"uses deck model"| node_uno_deck
node_watermark_app -->|"applies transform"| node_watermark_transform
node_titanic_preprocess -->|"prepared data"| node_titanic_train
node_titanic_train -->|"trained model"| node_titanic_predict
node_weather_datasets -->|"input data"| node_weather_notebook
node_site_sources -->|"site content"| node_jekyll_site
node_site_assets -->|"visual content"| node_jekyll_site
node_catalog_updater -->|"updates index"| node_site_sources
node_contributors_updater -->|"updates"| node_contributors_data
node_contributors_data -.->|"catalog metadata"| node_site_sources
node_python_lint_ci -.->|"validates Python contributions"| node_cli_projects
node_pages_deploy -->|"builds and deploys"| node_jekyll_site
node_pages_deploy -->|"publishes"| node_github_pages

click node_cli_projects "https://github.com/grow-with-open-source/python-projects/blob/main/Duplicate-File-Finder/duplicate_finder.py"
click node_interactive_projects "https://github.com/grow-with-open-source/python-projects/blob/main/Secure_Password_Manager/gui/password_manager_gui.py"
click node_vision_projects "https://github.com/grow-with-open-source/python-projects/blob/main/Motion-Detection/OpenCvPROJECT.py"
click node_local_dependencies "https://github.com/grow-with-open-source/python-projects/blob/main/Auto-Clicker/requirements.txt"
click node_encryption_app "https://github.com/grow-with-open-source/python-projects/blob/main/Encryption_Project/main.py"
click node_encryption_algorithms "https://github.com/grow-with-open-source/python-projects/blob/main/Encryption_Project/encryption/aes.py"
click node_uno_app "https://github.com/grow-with-open-source/python-projects/blob/main/UNO/app.py"
click node_uno_game_logic "https://github.com/grow-with-open-source/python-projects/blob/main/UNO/logic_rich.py"
click node_uno_deck "https://github.com/grow-with-open-source/python-projects/blob/main/UNO/deck.py"
click node_watermark_app "https://github.com/grow-with-open-source/python-projects/blob/main/Image_watermark_Adder/app.py"
click node_watermark_transform "https://github.com/grow-with-open-source/python-projects/blob/main/Image_watermark_Adder/utils/watermark.py"
click node_titanic_preprocess "https://github.com/grow-with-open-source/python-projects/blob/main/Titanic-Survival-Prediction/preprocess.py"
click node_titanic_train "https://github.com/grow-with-open-source/python-projects/blob/main/Titanic-Survival-Prediction/train.py"
click node_titanic_predict "https://github.com/grow-with-open-source/python-projects/blob/main/Titanic-Survival-Prediction/predict.py"
click node_weather_notebook "https://github.com/grow-with-open-source/python-projects/blob/main/Weather_Forecasting/Weather_Forecasting.ipynb"
click node_site_sources "https://github.com/grow-with-open-source/python-projects/blob/main/index.md"
click node_jekyll_site "https://github.com/grow-with-open-source/python-projects/blob/main/_config.yml"
click node_site_assets "https://github.com/grow-with-open-source/python-projects/tree/main/assets/img"
click node_catalog_updater "https://github.com/grow-with-open-source/python-projects/blob/main/.github/scripts/update_index_md.py"
click node_contributors_updater "https://github.com/grow-with-open-source/python-projects/blob/main/.github/scripts/update_contributors_log.py"
click node_contributors_data "https://github.com/grow-with-open-source/python-projects/blob/main/.github/data/contributors-log.json"
click node_python_lint_ci "https://github.com/grow-with-open-source/python-projects/blob/main/.github/workflows/python-linter.yml"
click node_pages_deploy "https://github.com/grow-with-open-source/python-projects/blob/main/.github/workflows/deploy-gh-pages.yml"

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_cli_projects,node_interactive_projects,node_vision_projects,node_local_dependencies,node_encryption_app,node_encryption_algorithms,node_uno_app,node_uno_game_logic,node_uno_deck,node_watermark_app,node_watermark_transform toneBlue
class node_titanic_preprocess,node_titanic_train,node_titanic_predict,node_weather_notebook,node_weather_datasets toneAmber
class node_site_sources,node_jekyll_site,node_site_assets toneMint
class node_catalog_updater,node_contributors_updater,node_contributors_data,node_python_lint_ci,node_pages_deploy toneRose
class node_github_pages toneNeutral
```

## Components

### Independent Projects

Separate local Python runtimes.

- [CLI utilities](https://github.com/grow-with-open-source/python-projects/blob/main/Duplicate-File-Finder/duplicate_finder.py): Python scripts · Independent utility entry points. · `Duplicate-File-Finder/duplicate_finder.py`
- [Interactive apps](https://github.com/grow-with-open-source/python-projects/blob/main/Secure_Password_Manager/gui/password_manager_gui.py): Python apps · Independent GUI, media, and game entry points. · `Secure_Password_Manager/gui/password_manager_gui.py`
- [Vision automation](https://github.com/grow-with-open-source/python-projects/blob/main/Motion-Detection/OpenCvPROJECT.py): Python apps · Independent OpenCV and tracking entry points. · `Motion-Detection/OpenCvPROJECT.py`
- [Per-project dependencies](https://github.com/grow-with-open-source/python-projects/blob/main/Auto-Clicker/requirements.txt): requirements · Dependencies remain local to each project. · `Auto-Clicker/requirements.txt`
- [Encryption coordinator](https://github.com/grow-with-open-source/python-projects/blob/main/Encryption_Project/main.py): Python entry point · `Encryption_Project/main.py`
- [Encryption algorithms](https://github.com/grow-with-open-source/python-projects/blob/main/Encryption_Project/encryption/aes.py): Python modules · `Encryption_Project/encryption/aes.py`
- [UNO application](https://github.com/grow-with-open-source/python-projects/blob/main/UNO/app.py): Python entry point · `UNO/app.py`
- [UNO rules and state](https://github.com/grow-with-open-source/python-projects/blob/main/UNO/logic_rich.py): Python module · `UNO/logic_rich.py`
- [UNO deck model](https://github.com/grow-with-open-source/python-projects/blob/main/UNO/deck.py): Python module · `UNO/deck.py`
- [Watermark application](https://github.com/grow-with-open-source/python-projects/blob/main/Image_watermark_Adder/app.py): Python entry point · `Image_watermark_Adder/app.py`
- [Watermark transform](https://github.com/grow-with-open-source/python-projects/blob/main/Image_watermark_Adder/utils/watermark.py): Python module · `Image_watermark_Adder/utils/watermark.py`

### Data Workflows

Local dataset and model stages.

- [Titanic preprocessing](https://github.com/grow-with-open-source/python-projects/blob/main/Titanic-Survival-Prediction/preprocess.py): Python stage · `Titanic-Survival-Prediction/preprocess.py`
- [Titanic training](https://github.com/grow-with-open-source/python-projects/blob/main/Titanic-Survival-Prediction/train.py): Python stage · `Titanic-Survival-Prediction/train.py`
- [Titanic prediction](https://github.com/grow-with-open-source/python-projects/blob/main/Titanic-Survival-Prediction/predict.py): Python stage · `Titanic-Survival-Prediction/predict.py`
- [Weather notebook](https://github.com/grow-with-open-source/python-projects/blob/main/Weather_Forecasting/Weather_Forecasting.ipynb): Jupyter notebook · `Weather_Forecasting/Weather_Forecasting.ipynb`
- **Weather CSV inputs**: datasets

### Documentation Site

Jekyll public discovery content.

- [Landing and project docs](https://github.com/grow-with-open-source/python-projects/blob/main/index.md): Markdown content · Repository and project documentation drive discovery. · `index.md`
- [Jekyll site](https://github.com/grow-with-open-source/python-projects/blob/main/_config.yml): static site build · `_config.yml`
- [Visual assets](https://github.com/grow-with-open-source/python-projects/tree/main/assets/img): static assets · `assets/img`

### Repository Automation

Catalog maintenance and GitHub Actions.

- [Catalog updater](https://github.com/grow-with-open-source/python-projects/blob/main/.github/scripts/update_index_md.py): Python automation · `.github/scripts/update_index_md.py`
- [Contributor log updater](https://github.com/grow-with-open-source/python-projects/blob/main/.github/scripts/update_contributors_log.py): Python automation · `.github/scripts/update_contributors_log.py`
- [Contributor data](https://github.com/grow-with-open-source/python-projects/blob/main/.github/data/contributors-log.json): JSON metadata · `.github/data/contributors-log.json`
- [Python lint CI](https://github.com/grow-with-open-source/python-projects/blob/main/.github/workflows/python-linter.yml): GitHub Actions workflow · `.github/workflows/python-linter.yml`
- [Pages deployment](https://github.com/grow-with-open-source/python-projects/blob/main/.github/workflows/deploy-gh-pages.yml): GitHub Actions workflow · `.github/workflows/deploy-gh-pages.yml`

### Other components

- **GitHub Pages**: external hosting

## Connections

- CLI utilities → Per-project dependencies: uses local dependencies
- Interactive apps → Per-project dependencies: uses local dependencies
- Vision automation → Per-project dependencies: uses local dependencies
- Encryption coordinator → Encryption algorithms: coordinates
- UNO application → UNO rules and state: runs rules and state
- UNO application → UNO deck model: uses deck model
- Watermark application → Watermark transform: applies transform
- Titanic preprocessing → Titanic training: prepared data
- Titanic training → Titanic prediction: trained model
- Weather CSV inputs → Weather notebook: input data
- Landing and project docs → Jekyll site: site content
- Visual assets → Jekyll site: visual content
- Catalog updater → Landing and project docs: updates index
- Contributor log updater → Contributor data: updates
- Contributor data → Landing and project docs: catalog metadata
- Python lint CI → CLI utilities: validates Python contributions
- Pages deployment → Jekyll site: builds and deploys
- Pages deployment → GitHub Pages: publishes
