# eomtaejun/skillsclass architecture

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

- Interactive diagram: https://gitdiagram.com/eomtaejun/skillsclass
- Repository: https://github.com/eomtaejun/skillsclass

## Overview

GIFTS:Mall is a PHP shopping mall with member accounts, product browsing and carts, plus administrator management of products, users, and notices. The main request path is browser → front controller → route dispatch → domain controller, which reads or changes MySQL and returns a page or JSON. README also documents ordering and guest-order interactions, but sampled controllers do not establish a complete ordering implementation; those capabilities are therefore not represented as verified runtime components. Edges reflect explicit route declarations, controller calls, or SQL usage in the excerpts.

Main entry points: [`2025skills-GIFTS_Mall/htdocs/App/Core/Route.php`](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/Route.php) (Route dispatch), [`2025skills-GIFTS_Mall/htdocs/App/Core/DB.php`](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/DB.php) (Database access), [`2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php`](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php) (Product management), [`2025skills-GIFTS_Mall/htdocs/index.php`](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/index.php) (PHP entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Request handling"]
  node_front["PHP entry<br/>[index.php]"]
  node_routes["Route dispatch<br/>[Route.php]"]
  node_loader["Class loader<br/>[ClassLoader.php]"]
  node_base["Controller helpers<br/>[Controller.php]"]
end

subgraph group_domain["Mall features"]
  node_home["Mall pages<br/>[MainController.php]"]
  node_accounts["Account access<br/>[UserController.php]"]
  node_catalog["Product management"]
  node_cart["Shopping cart<br/>[CartController.php]"]
  node_notices["Notice management"]
  node_views["Page views"]
end

subgraph group_persistence["Persistence"]
  node_database_api["Database access<br/>[DB.php]"]
  node_mysql[("Mall database")]
end

node_visitor(("Shopper or admin"))

node_visitor -->|"requests pages"| node_front
node_front -->|"loads classes"| node_loader
node_front -->|"dispatches"| node_routes
node_routes -->|"routes requests"| node_home
node_routes -->|"routes requests"| node_accounts
node_routes -->|"routes requests"| node_catalog
node_routes -->|"routes requests"| node_cart
node_routes -->|"routes requests"| node_notices
node_home -->|"queries"| node_database_api
node_accounts -->|"queries"| node_database_api
node_catalog -->|"queries"| node_database_api
node_cart -->|"queries"| node_database_api
node_notices -->|"queries"| node_database_api
node_database_api -->|"executes SQL"| node_mysql
node_home -->|"renders pages"| node_views
node_catalog -->|"renders admin forms"| node_views
node_notices -->|"renders admin forms"| node_views
node_routes -->|"constructs controllers"| node_base
node_catalog -->|"uses helpers"| node_base
node_accounts -->|"uses helpers"| node_base

click node_front "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/index.php"
click node_routes "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/Route.php"
click node_loader "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/ClassLoader.php"
click node_base "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/Controller.php"
click node_home "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/MainController.php"
click node_accounts "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/UserController.php"
click node_catalog "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php"
click node_cart "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/CartController.php"
click node_notices "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/NoticeController.php"
click node_views "https://github.com/eomtaejun/skillsclass/tree/main/2025skills-GIFTS_Mall/htdocs/resources/views"
click node_database_api "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/DB.php"
click node_mysql "https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/DB/2025skills04080324.sql"

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_front,node_routes,node_loader,node_base toneBlue
class node_home,node_accounts,node_catalog,node_cart,node_notices,node_views toneAmber
class node_database_api,node_mysql toneMint
class node_visitor toneIndigo
```

## Components

### Request handling

- [PHP entry](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/index.php): `2025skills-GIFTS_Mall/htdocs/index.php`
- [Route dispatch](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/Route.php): `2025skills-GIFTS_Mall/htdocs/App/Core/Route.php`
- [Class loader](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/ClassLoader.php): `2025skills-GIFTS_Mall/htdocs/App/Core/ClassLoader.php`
- [Controller helpers](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/Controller.php): `2025skills-GIFTS_Mall/htdocs/App/Core/Controller.php`

### Mall features

- [Mall pages](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/MainController.php): `2025skills-GIFTS_Mall/htdocs/App/Controller/MainController.php`
- [Account access](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/UserController.php): `2025skills-GIFTS_Mall/htdocs/App/Controller/UserController.php`
- [Product management](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php): `2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php`
- [Shopping cart](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/CartController.php): `2025skills-GIFTS_Mall/htdocs/App/Controller/CartController.php`
- [Notice management](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Controller/NoticeController.php): `2025skills-GIFTS_Mall/htdocs/App/Controller/NoticeController.php`
- [Page views](https://github.com/eomtaejun/skillsclass/tree/main/2025skills-GIFTS_Mall/htdocs/resources/views): `2025skills-GIFTS_Mall/htdocs/resources/views`

### Persistence

- [Database access](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/htdocs/App/Core/DB.php): `2025skills-GIFTS_Mall/htdocs/App/Core/DB.php`
- [Mall database](https://github.com/eomtaejun/skillsclass/blob/main/2025skills-GIFTS_Mall/DB/2025skills04080324.sql): `2025skills-GIFTS_Mall/DB/2025skills04080324.sql`

### Other components

- **Shopper or admin**

## Connections

- Shopper or admin → PHP entry: requests pages (evidence: `2025skills-GIFTS_Mall/htdocs/index.php`)
- PHP entry → Class loader: loads classes (evidence: `2025skills-GIFTS_Mall/htdocs/index.php`)
- PHP entry → Route dispatch: dispatches (evidence: `2025skills-GIFTS_Mall/htdocs/index.php`)
- Route dispatch → Mall pages: routes requests (evidence: `2025skills-GIFTS_Mall/htdocs/routes/web.php`)
- Route dispatch → Account access: routes requests (evidence: `2025skills-GIFTS_Mall/htdocs/routes/web.php`)
- Route dispatch → Product management: routes requests (evidence: `2025skills-GIFTS_Mall/htdocs/routes/web.php`)
- Route dispatch → Shopping cart: routes requests (evidence: `2025skills-GIFTS_Mall/htdocs/routes/web.php`)
- Route dispatch → Notice management: routes requests (evidence: `2025skills-GIFTS_Mall/htdocs/routes/web.php`)
- Mall pages → Database access: queries (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/MainController.php`)
- Account access → Database access: queries (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/UserController.php`)
- Product management → Database access: queries (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php`)
- Shopping cart → Database access: queries (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/CartController.php`)
- Notice management → Database access: queries (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/NoticeController.php`)
- Database access → Mall database: executes SQL (evidence: `2025skills-GIFTS_Mall/htdocs/App/Core/DB.php`)
- Mall pages → Page views: renders pages (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/MainController.php`)
- Product management → Page views: renders admin forms (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php`)
- Notice management → Page views: renders admin forms (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/NoticeController.php`)
- Route dispatch → Controller helpers: constructs controllers (evidence: `2025skills-GIFTS_Mall/htdocs/App/Core/Route.php`)
- Product management → Controller helpers: uses helpers (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/ProductController.php`)
- Account access → Controller helpers: uses helpers (evidence: `2025skills-GIFTS_Mall/htdocs/App/Controller/UserController.php`)
