# hoang400/project-based-learning architecture

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

- Interactive diagram: https://gitdiagram.com/hoang400/project-based-learning
- Repository: https://github.com/hoang400/project-based-learning

## Overview

Project Based Learning is a curated directory of build-an-application tutorials, organized primarily by programming language. Learners browse the README, choose a tutorial, and follow its linked resource. Contributors maintain the catalog using the repository guidelines. A README validator/link checker supports catalog quality and link-rot maintenance; excerpts show its parsing and checking responsibilities, but not enough wiring to map its full execution flow.

Main entry points: [`README.md`](https://github.com/hoang400/project-based-learning/blob/master/README.md) (Tutorial catalog), [`scripts/check_readme.py`](https://github.com/hoang400/project-based-learning/blob/master/scripts/check_readme.py) (README validator), [`CONTRIBUTING.md`](https://github.com/hoang400/project-based-learning/blob/master/CONTRIBUTING.md) (Contribution guidelines), [`.github/link-rot-state.json`](https://github.com/hoang400/project-based-learning/blob/master/.github/link-rot-state.json) (Link-rot state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Learning catalog"]
  node_catalog_readme["Tutorial catalog<br/>[README.md]"]
  node_language_sections["Language sections<br/>[README.md]"]
end

subgraph group_maintenance["Catalog maintenance"]
  node_guidelines["Contribution guidelines<br/>[CONTRIBUTING.md]"]
  node_validator["README validator<br/>[check_readme.py]"]
  node_link_state[("Link-rot state")]
end

node_learner(("Aspiring developer"))
node_tutorials["Tutorial resources"]
node_contributor(("Contributor"))

node_learner -->|"browses"| node_catalog_readme
node_catalog_readme -->|"organizes"| node_language_sections
node_learner -->|"follows links"| node_tutorials
node_contributor -->|"consults"| node_guidelines
node_contributor -->|"maintains"| node_catalog_readme
node_validator -->|"parses and checks"| node_catalog_readme
node_validator -->|"updates status"| node_link_state

click node_catalog_readme "https://github.com/hoang400/project-based-learning/blob/master/README.md"
click node_language_sections "https://github.com/hoang400/project-based-learning/blob/master/README.md"
click node_guidelines "https://github.com/hoang400/project-based-learning/blob/master/CONTRIBUTING.md"
click node_validator "https://github.com/hoang400/project-based-learning/blob/master/scripts/check_readme.py"
click node_link_state "https://github.com/hoang400/project-based-learning/blob/master/.github/link-rot-state.json"

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_catalog_readme,node_language_sections toneBlue
class node_guidelines,node_validator,node_link_state toneAmber
class node_learner,node_tutorials,node_contributor toneIndigo
```

## Components

### Learning catalog

- [Tutorial catalog](https://github.com/hoang400/project-based-learning/blob/master/README.md): `README.md`
- [Language sections](https://github.com/hoang400/project-based-learning/blob/master/README.md): `README.md`

### Catalog maintenance

- [Contribution guidelines](https://github.com/hoang400/project-based-learning/blob/master/CONTRIBUTING.md): `CONTRIBUTING.md`
- [README validator](https://github.com/hoang400/project-based-learning/blob/master/scripts/check_readme.py): `scripts/check_readme.py`
- [Link-rot state](https://github.com/hoang400/project-based-learning/blob/master/.github/link-rot-state.json): `.github/link-rot-state.json`

### Other components

- **Aspiring developer**
- **Tutorial resources**
- **Contributor**

## Connections

- Aspiring developer → Tutorial catalog: browses
- Tutorial catalog → Language sections: organizes
- Aspiring developer → Tutorial resources: follows links
- Contributor → Contribution guidelines: consults
- Contributor → Tutorial catalog: maintains
- README validator → Tutorial catalog: parses and checks
- README validator → Link-rot state: updates status
