# willywonderwork-code/willyswonderfulworld architecture

> Architecture diagram of the GitHub repository willywonderwork-code/willyswonderfulworld, 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/willywonderwork-code/willyswonderfulworld
- Repository: https://github.com/willywonderwork-code/willyswonderfulworld

## Overview

Willys Wonderful World is a PHP portfolio site combining a public blog, account features, and a collection of interactive mini-projects. The main user flow is browsing the home/blog page, optionally registering or signing in, and using the protected account area; visitors can also explore Willys Works and the linked standalone projects. The tree and README identify the embedded projects and their capabilities, but sampled source is limited, so links between those subsystems are not inferred where their dispatch is unverified.

Main entry points: [`index.php`](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/index.php) (Home page), [`include/blog/blogboard.php`](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/blog/blogboard.php) (Blog board), [`include/blog/blog_functions.php`](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/blog/blog_functions.php) (Blog and comments), [`include/auth/login.php`](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/auth/login.php) (Login and registration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_main["Main site"]
  node_home["Home page<br/>[index.php]"]
  node_layout["Shared layout<br/>[navigation.php]"]
  node_blog["Blog board<br/>[blogboard.php]"]
  node_blogdata["Blog and comments<br/>[blog_functions.php]"]
  node_main_db[("Main database<br/>[database.php]")]
end

subgraph group_account["User accounts"]
  node_auth["Login and registration<br/>[login.php]"]
  node_profile["Profile<br/>[profil.php]"]
  node_stats["Account statistics<br/>[statistics.php]"]
end

subgraph group_works["Willys Works"]
  node_works_page["Works index<br/>[index.php]"]
  node_works_modules["Mini-projects<br/>[index.php]"]
  node_pattern["Pattern test area"]
end

subgraph group_notes["MeinNotizbrett"]
  node_notes_app["Notes application<br/>[index.php]"]
  node_notes_admin["Notes administration<br/>[index.php]"]
  node_notes_models["Notes domain models<br/>[Notiz.php]"]
end

subgraph group_movies["MoviePinion"]
  node_movie_app["Movie catalogue<br/>[index.php]"]
  node_movie_admin["Movie administration<br/>[index.php]"]
  node_omdb["OMDb client<br/>[OmdbClient.php]"]
end

subgraph group_school["SkoolDimension"]
  node_school_app["Seminar site<br/>[index.php]"]
  node_school_admin["Seminar administration<br/>[index.php]"]
  node_school_serialization["Data export and restore"]
  node_school_db[("Seminar database<br/>[database.php]")]
end

node_visitor(("Visitor"))
node_omdb_service["OMDb API"]

node_visitor -->|"browses"| node_home
node_home -->|"includes"| node_layout
node_home -->|"renders"| node_blog
node_blog -->|"uses"| node_blogdata
node_blogdata -->|"persists"| node_main_db
node_visitor -->|"registers or signs in"| node_auth
node_auth -->|"persists accounts"| node_main_db
node_visitor -->|"views account"| node_profile
node_visitor -->|"views statistics"| node_stats
node_visitor -->|"explores"| node_works_page
node_works_page -->|"offers"| node_works_modules
node_visitor -->|"uses"| node_pattern
node_visitor -->|"uses"| node_notes_app
node_notes_admin -->|"manages"| node_notes_models
node_visitor -->|"uses"| node_movie_app
node_movie_admin -.->|"requests film data"| node_omdb
node_omdb -.->|"fetches"| node_omdb_service
node_visitor -->|"browses"| node_school_app
node_school_admin -->|"exports and restores"| node_school_serialization
node_school_serialization -->|"reads and writes"| node_school_db

click node_home "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/index.php"
click node_layout "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/layout/navigation.php"
click node_blog "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/blog/blogboard.php"
click node_blogdata "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/blog/blog_functions.php"
click node_main_db "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/core/database.php"
click node_auth "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/auth/login.php"
click node_profile "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/templates/account/profil.php"
click node_stats "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/templates/account/statistics.php"
click node_works_page "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/works/index.php"
click node_works_modules "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/works/modules/index.php"
click node_pattern "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/patterntestarea/patterntestarea.php"
click node_notes_app "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MeinNotizbrett/phpd_gr2/index.php"
click node_notes_admin "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MeinNotizbrett/phpd_gr2/admin/index.php"
click node_notes_models "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MeinNotizbrett/phpd_gr2/models/Notiz.php"
click node_movie_app "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MoviePinion/index.php"
click node_movie_admin "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MoviePinion/admin/index.php"
click node_omdb "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MoviePinion/includes/OmdbClient.php"
click node_school_app "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/index.php"
click node_school_admin "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/admin/index.php"
click node_school_serialization "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/classes/Services/SerializationService.php"
click node_school_db "https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/includes/database.php"

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_home,node_layout,node_blog,node_blogdata,node_main_db toneBlue
class node_auth,node_profile,node_stats toneAmber
class node_works_page,node_works_modules,node_pattern,node_omdb_service toneMint
class node_notes_app,node_notes_admin,node_notes_models toneRose
class node_movie_app,node_movie_admin,node_omdb,node_visitor toneIndigo
class node_school_app,node_school_admin,node_school_serialization,node_school_db toneTeal
```

## Components

### Main site

- [Home page](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/index.php): `index.php`
- [Shared layout](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/layout/navigation.php): `include/layout/navigation.php`
- [Blog board](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/blog/blogboard.php): `include/blog/blogboard.php`
- [Blog and comments](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/blog/blog_functions.php): `include/blog/blog_functions.php`
- [Main database](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/core/database.php): `include/core/database.php`

### User accounts

- [Login and registration](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/auth/login.php): `include/auth/login.php`
- [Profile](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/templates/account/profil.php): `templates/account/profil.php`
- [Account statistics](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/templates/account/statistics.php): `templates/account/statistics.php`

### Willys Works

- [Works index](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/works/index.php): `include/works/index.php`
- [Mini-projects](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/works/modules/index.php): `include/works/modules/index.php`
- [Pattern test area](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/patterntestarea/patterntestarea.php): `include/patterntestarea/patterntestarea.php`

### MeinNotizbrett

- [Notes application](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MeinNotizbrett/phpd_gr2/index.php): `include/projects/MeinNotizbrett/phpd_gr2/index.php`
- [Notes administration](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MeinNotizbrett/phpd_gr2/admin/index.php): `include/projects/MeinNotizbrett/phpd_gr2/admin/index.php`
- [Notes domain models](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MeinNotizbrett/phpd_gr2/models/Notiz.php): `include/projects/MeinNotizbrett/phpd_gr2/models/Notiz.php`

### MoviePinion

- [Movie catalogue](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MoviePinion/index.php): `include/projects/MoviePinion/index.php`
- [Movie administration](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MoviePinion/admin/index.php): `include/projects/MoviePinion/admin/index.php`
- [OMDb client](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/MoviePinion/includes/OmdbClient.php): `include/projects/MoviePinion/includes/OmdbClient.php`

### SkoolDimension

- [Seminar site](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/index.php): `include/projects/SkoolDimension/edvschule2/index.php`
- [Seminar administration](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/admin/index.php): `include/projects/SkoolDimension/edvschule2/admin/index.php`
- [Data export and restore](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/classes/Services/SerializationService.php): `include/projects/SkoolDimension/edvschule2/classes/Services/SerializationService.php`
- [Seminar database](https://github.com/willywonderwork-code/willyswonderfulworld/blob/main/include/projects/SkoolDimension/edvschule2/includes/database.php): `include/projects/SkoolDimension/edvschule2/includes/database.php`

### Other components

- **Visitor**
- **OMDb API**

## Connections

- Visitor → Home page: browses
- Home page → Shared layout: includes
- Home page → Blog board: renders
- Blog board → Blog and comments: uses
- Blog and comments → Main database: persists
- Visitor → Login and registration: registers or signs in
- Login and registration → Main database: persists accounts
- Visitor → Profile: views account
- Visitor → Account statistics: views statistics
- Visitor → Works index: explores
- Works index → Mini-projects: offers
- Visitor → Pattern test area: uses
- Visitor → Notes application: uses
- Notes administration → Notes domain models: manages
- Visitor → Movie catalogue: uses
- Movie administration → OMDb client: requests film data
- OMDb client → OMDb API: fetches
- Visitor → Seminar site: browses
- Seminar administration → Data export and restore: exports and restores
- Data export and restore → Seminar database: reads and writes
