# pepesky/ppsky architecture

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

## Overview

This Laravel application combines public discovery and publishing with authenticated administration of organizational entities and domain modules. The principal public path is a visitor browsing published posts or learning content; signed-in users and administrators have separate `/app` and `/admin` route spaces. The sampled code confirms post queries and interaction management, while the broader module capabilities are evident from the source tree. Many controllers and route declarations were not sampled, so uncertain wiring is not asserted.

Main entry points: [`routes/admin.php`](https://github.com/pepesky/ppsky/blob/main/routes/admin.php) (Admin routes), [`app/Http/Controllers/Admin/InteractionController.php`](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/InteractionController.php) (Interaction management), [`routes/web.php`](https://github.com/pepesky/ppsky/blob/main/routes/web.php) (Web routes), [`app/Http/Controllers/Home/PostController.php`](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Home/PostController.php) (Post discovery)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public discovery"]
  node_home["Home pages<br/>[HomeController.php]"]
  node_post_browse["Post discovery<br/>[PostController.php]"]
  node_welcome["Learning discovery"]
end

subgraph group_admin["Administration"]
  node_admin_interactions["Interaction management"]
  node_admin_content["Content administration<br/>[PostController.php]"]
  node_admin_modules["Module administration"]
  node_admin_catalogs["Catalog administration"]
end

subgraph group_domain["Domain records"]
  node_post_model["Posts<br/>[Post.php]"]
  node_category_model["Categories<br/>[Category.php]"]
  node_tag_model["Tags<br/>[Tag.php]"]
  node_development_model["Developments<br/>[Development.php]"]
  node_learning_models["Learning records<br/>[Subject.php]"]
  node_interaction_model["Interactions<br/>[Interaction.php]"]
  node_actor_model["Actors<br/>[Actor.php]"]
  node_cohesion_model["Cohesions<br/>[Cohesion.php]"]
end

subgraph group_platform["Application platform"]
  node_web["Web routes<br/>[web.php]"]
  node_app_routes["User routes<br/>[app.php]"]
  node_admin_routes["Admin routes<br/>[admin.php]"]
  node_route_provider["Route registration"]
  node_auth["Account access"]
end

node_visitor(("Visitor"))
node_database[("Relational database")]
node_central_bank["Central bank service"]

node_visitor -->|"requests pages"| node_web
node_route_provider -->|"registers"| node_web
node_route_provider -->|"registers"| node_app_routes
node_route_provider -->|"registers"| node_admin_routes
node_web -.->|"routes requests"| node_home
node_web -.->|"routes requests"| node_post_browse
node_web -.->|"routes requests"| node_welcome
node_post_browse -->|"queries"| node_post_model
node_post_browse -->|"loads category"| node_category_model
node_post_browse -->|"loads tag"| node_tag_model
node_welcome -->|"queries"| node_category_model
node_welcome -->|"queries"| node_learning_models
node_app_routes -->|"requires login"| node_auth
node_admin_routes -->|"requires login"| node_auth
node_admin_routes -.->|"routes requests"| node_admin_interactions
node_admin_interactions -->|"reads and writes"| node_interaction_model
node_admin_interactions -->|"loads actors"| node_actor_model
node_admin_interactions -->|"loads cohesions"| node_cohesion_model
node_admin_interactions -.->|"persists records"| node_database
node_admin_routes -.->|"routes requests"| node_admin_content
node_admin_routes -.->|"routes requests"| node_admin_modules
node_admin_routes -.->|"routes requests"| node_admin_catalogs
node_admin_content -.->|"manages posts"| node_post_model
node_admin_modules -.->|"manages modules"| node_development_model
node_development_model -.->|"stores records"| node_database
node_admin_catalogs -.->|"manages records"| node_database
node_visitor -.->|"external data"| node_central_bank

click node_web "https://github.com/pepesky/ppsky/blob/main/routes/web.php"
click node_app_routes "https://github.com/pepesky/ppsky/blob/main/routes/app.php"
click node_admin_routes "https://github.com/pepesky/ppsky/blob/main/routes/admin.php"
click node_route_provider "https://github.com/pepesky/ppsky/blob/main/app/Providers/RouteServiceProvider.php"
click node_home "https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Home/HomeController.php"
click node_post_browse "https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Home/PostController.php"
click node_welcome "https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Welcome/SubjectController.php"
click node_post_model "https://github.com/pepesky/ppsky/blob/main/app/Models/Post.php"
click node_category_model "https://github.com/pepesky/ppsky/blob/main/app/Models/Category.php"
click node_tag_model "https://github.com/pepesky/ppsky/blob/main/app/Models/Tag.php"
click node_development_model "https://github.com/pepesky/ppsky/blob/main/app/Models/Development.php"
click node_learning_models "https://github.com/pepesky/ppsky/blob/main/app/Models/Modules/Subjects/Subject.php"
click node_admin_interactions "https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/InteractionController.php"
click node_interaction_model "https://github.com/pepesky/ppsky/blob/main/app/Models/Interaction.php"
click node_actor_model "https://github.com/pepesky/ppsky/blob/main/app/Models/Actor.php"
click node_cohesion_model "https://github.com/pepesky/ppsky/blob/main/app/Models/Cohesion.php"
click node_admin_content "https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/PostController.php"
click node_admin_modules "https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/ModuleController.php"
click node_admin_catalogs "https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/EntityController.php"
click node_auth "https://github.com/pepesky/ppsky/blob/main/app/Providers/FortifyServiceProvider.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_post_browse,node_welcome toneBlue
class node_admin_interactions,node_admin_content,node_admin_modules,node_admin_catalogs,node_database toneAmber
class node_post_model,node_category_model,node_tag_model,node_development_model,node_learning_models,node_interaction_model,node_actor_model,node_cohesion_model toneMint
class node_web,node_app_routes,node_admin_routes,node_route_provider,node_auth toneRose
class node_visitor,node_central_bank toneIndigo
```

## Components

### Public discovery

- [Home pages](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Home/HomeController.php): `app/Http/Controllers/Home/HomeController.php`
- [Post discovery](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Home/PostController.php): `app/Http/Controllers/Home/PostController.php`
- [Learning discovery](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Welcome/SubjectController.php): `app/Http/Controllers/Welcome/SubjectController.php`

### Administration

- [Interaction management](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/InteractionController.php): `app/Http/Controllers/Admin/InteractionController.php`
- [Content administration](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/PostController.php): `app/Http/Controllers/Admin/PostController.php`
- [Module administration](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/ModuleController.php): `app/Http/Controllers/Admin/ModuleController.php`
- [Catalog administration](https://github.com/pepesky/ppsky/blob/main/app/Http/Controllers/Admin/EntityController.php): `app/Http/Controllers/Admin/EntityController.php`

### Domain records

- [Posts](https://github.com/pepesky/ppsky/blob/main/app/Models/Post.php): `app/Models/Post.php`
- [Categories](https://github.com/pepesky/ppsky/blob/main/app/Models/Category.php): `app/Models/Category.php`
- [Tags](https://github.com/pepesky/ppsky/blob/main/app/Models/Tag.php): `app/Models/Tag.php`
- [Developments](https://github.com/pepesky/ppsky/blob/main/app/Models/Development.php): `app/Models/Development.php`
- [Learning records](https://github.com/pepesky/ppsky/blob/main/app/Models/Modules/Subjects/Subject.php): `app/Models/Modules/Subjects/Subject.php`
- [Interactions](https://github.com/pepesky/ppsky/blob/main/app/Models/Interaction.php): `app/Models/Interaction.php`
- [Actors](https://github.com/pepesky/ppsky/blob/main/app/Models/Actor.php): `app/Models/Actor.php`
- [Cohesions](https://github.com/pepesky/ppsky/blob/main/app/Models/Cohesion.php): `app/Models/Cohesion.php`

### Application platform

- [Web routes](https://github.com/pepesky/ppsky/blob/main/routes/web.php): `routes/web.php`
- [User routes](https://github.com/pepesky/ppsky/blob/main/routes/app.php): `routes/app.php`
- [Admin routes](https://github.com/pepesky/ppsky/blob/main/routes/admin.php): `routes/admin.php`
- [Route registration](https://github.com/pepesky/ppsky/blob/main/app/Providers/RouteServiceProvider.php): `app/Providers/RouteServiceProvider.php`
- [Account access](https://github.com/pepesky/ppsky/blob/main/app/Providers/FortifyServiceProvider.php): `app/Providers/FortifyServiceProvider.php`

### Other components

- **Visitor**
- **Relational database**
- **Central bank service**

## Connections

- Visitor → Web routes: requests pages
- Route registration → Web routes: registers (evidence: `app/Providers/RouteServiceProvider.php`)
- Route registration → User routes: registers (evidence: `app/Providers/RouteServiceProvider.php`)
- Route registration → Admin routes: registers (evidence: `app/Providers/RouteServiceProvider.php`)
- Web routes → Home pages: routes requests
- Web routes → Post discovery: routes requests
- Web routes → Learning discovery: routes requests
- Post discovery → Posts: queries (evidence: `app/Http/Controllers/Home/PostController.php`)
- Post discovery → Categories: loads category (evidence: `app/Http/Controllers/Home/PostController.php`)
- Post discovery → Tags: loads tag (evidence: `app/Http/Controllers/Home/PostController.php`)
- Learning discovery → Categories: queries (evidence: `app/Http/Controllers/Welcome/SubjectController.php`)
- Learning discovery → Learning records: queries (evidence: `app/Http/Controllers/Welcome/SubjectController.php`)
- User routes → Account access: requires login
- Admin routes → Account access: requires login
- Admin routes → Interaction management: routes requests
- Interaction management → Interactions: reads and writes (evidence: `app/Http/Controllers/Admin/InteractionController.php`)
- Interaction management → Actors: loads actors (evidence: `app/Http/Controllers/Admin/InteractionController.php`)
- Interaction management → Cohesions: loads cohesions (evidence: `app/Http/Controllers/Admin/InteractionController.php`)
- Interaction management → Relational database: persists records
- Admin routes → Content administration: routes requests
- Admin routes → Module administration: routes requests
- Admin routes → Catalog administration: routes requests
- Content administration → Posts: manages posts
- Module administration → Developments: manages modules
- Developments → Relational database: stores records
- Catalog administration → Relational database: manages records
- Visitor → Central bank service: external data
