# atom-games/abc_site architecture

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

## Overview

ABC_site is a PHP online school for game development. Visitors browse categories and courses; learners can register, enroll, study lessons, and take tests, while staff manage learning content and administration. The graph reflects the front-controller dispatch, menu and course/test behavior visible in sampled source, plus major capabilities indicated by the page tree. Most page implementations were not sampled, so their database and service wiring is not asserted beyond the evidence available.

Main entry points: [`index.php`](https://github.com/atom-games/abc_site/blob/master/index.php) (Request router), [`pages/Kourses.php`](https://github.com/atom-games/abc_site/blob/master/pages/Kourses.php) (Courses and enrollment), [`pages/BazaData.php`](https://github.com/atom-games/abc_site/blob/master/pages/BazaData.php) (Database helpers), [`pages/Kuski/Menu.php`](https://github.com/atom-games/abc_site/blob/master/pages/Kuski/Menu.php) (Shared navigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry and layout"]
  node_router["Request router<br/>[index.php]"]
  node_layout["Shared navigation<br/>[Menu.php]"]
  node_database[("Application database")]
  node_dbaccess["Database helpers<br/>[BazaData.php]"]
end

subgraph group_learning["Learning catalog"]
  node_categories["Categories<br/>[Kategories.php]"]
  node_courses["Courses and enrollment<br/>[Kourses.php]"]
  node_lessons["Lessons<br/>[Lesson.php]"]
  node_tests["Course tests<br/>[Tests.php]"]
  node_results["Search results<br/>[Result.php]"]
  node_news["News<br/>[News.php]"]
  node_subscriptions["My courses<br/>[MyKourses.php]"]
end

subgraph group_community["Accounts and community"]
  node_accounts["Registration and login<br/>[Profile.php]"]
  node_profile["User profiles<br/>[User.php]"]
  node_messaging["User messages<br/>[MyMail.php]"]
end

subgraph group_operations["Administration"]
  node_purchases["Enrollment approvals<br/>[Byues.php]"]
  node_reports["Reports<br/>[Report.php]"]
  node_staff["Staff management<br/>[Shtab.php]"]
end

node_visitor(("Visitor or user"))
node_email["Email service"]

node_visitor -->|"requests page"| node_router
node_router -->|"loads helpers"| node_dbaccess
node_router -->|"loads current user"| node_accounts
node_router -->|"renders navigation"| node_layout
node_router -->|"dispatches route"| node_categories
node_router -->|"dispatches route"| node_courses
node_router -->|"dispatches route"| node_lessons
node_router -->|"dispatches route"| node_tests
node_router -->|"dispatches route"| node_results
node_router -->|"dispatches route"| node_news
node_router -->|"dispatches route"| node_profile
node_router -->|"dispatches route"| node_messaging
node_router -->|"dispatches route"| node_subscriptions
node_router -->|"dispatches route"| node_purchases
node_router -->|"dispatches route"| node_reports
node_router -->|"dispatches route"| node_staff
node_layout -->|"queries catalog"| node_dbaccess
node_layout -->|"links courses"| node_courses
node_layout -->|"links categories"| node_categories
node_courses -->|"reads and writes"| node_dbaccess
node_tests -->|"reads and writes"| node_dbaccess
node_profile -->|"looks up users"| node_dbaccess
node_profile -.->|"sends confirmation"| node_email
node_courses -->|"creates enrollment"| node_purchases
node_visitor -->|"registers or signs in"| node_accounts
node_visitor -->|"browses or enrolls"| node_courses
node_visitor -->|"takes tests"| node_tests

click node_router "https://github.com/atom-games/abc_site/blob/master/index.php"
click node_layout "https://github.com/atom-games/abc_site/blob/master/pages/Kuski/Menu.php"
click node_database "https://github.com/atom-games/abc_site/blob/master/ABC/f0336420_ABC_001.sql"
click node_dbaccess "https://github.com/atom-games/abc_site/blob/master/pages/BazaData.php"
click node_categories "https://github.com/atom-games/abc_site/blob/master/pages/Kategories.php"
click node_courses "https://github.com/atom-games/abc_site/blob/master/pages/Kourses.php"
click node_lessons "https://github.com/atom-games/abc_site/blob/master/pages/Lesson.php"
click node_tests "https://github.com/atom-games/abc_site/blob/master/pages/Tests.php"
click node_results "https://github.com/atom-games/abc_site/blob/master/pages/Result.php"
click node_news "https://github.com/atom-games/abc_site/blob/master/pages/News.php"
click node_accounts "https://github.com/atom-games/abc_site/blob/master/pages/Profile.php"
click node_profile "https://github.com/atom-games/abc_site/blob/master/pages/View/User.php"
click node_messaging "https://github.com/atom-games/abc_site/blob/master/pages/MyMail.php"
click node_subscriptions "https://github.com/atom-games/abc_site/blob/master/pages/MyKourses.php"
click node_purchases "https://github.com/atom-games/abc_site/blob/master/pages/Byues.php"
click node_reports "https://github.com/atom-games/abc_site/blob/master/pages/Report.php"
click node_staff "https://github.com/atom-games/abc_site/blob/master/pages/Shtab.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_router,node_layout,node_database,node_dbaccess,node_visitor toneBlue
class node_categories,node_courses,node_lessons,node_tests,node_results,node_news,node_subscriptions toneAmber
class node_accounts,node_profile,node_messaging toneMint
class node_purchases,node_reports,node_staff toneRose
class node_email toneIndigo
```

## Components

### Web entry and layout

- [Request router](https://github.com/atom-games/abc_site/blob/master/index.php): `index.php`
- [Shared navigation](https://github.com/atom-games/abc_site/blob/master/pages/Kuski/Menu.php): `pages/Kuski/Menu.php`
- [Application database](https://github.com/atom-games/abc_site/blob/master/ABC/f0336420_ABC_001.sql): `ABC/f0336420_ABC_001.sql`
- [Database helpers](https://github.com/atom-games/abc_site/blob/master/pages/BazaData.php): `pages/BazaData.php`

### Learning catalog

- [Categories](https://github.com/atom-games/abc_site/blob/master/pages/Kategories.php): `pages/Kategories.php`
- [Courses and enrollment](https://github.com/atom-games/abc_site/blob/master/pages/Kourses.php): `pages/Kourses.php`
- [Lessons](https://github.com/atom-games/abc_site/blob/master/pages/Lesson.php): `pages/Lesson.php`
- [Course tests](https://github.com/atom-games/abc_site/blob/master/pages/Tests.php): `pages/Tests.php`
- [Search results](https://github.com/atom-games/abc_site/blob/master/pages/Result.php): `pages/Result.php`
- [News](https://github.com/atom-games/abc_site/blob/master/pages/News.php): `pages/News.php`
- [My courses](https://github.com/atom-games/abc_site/blob/master/pages/MyKourses.php): `pages/MyKourses.php`

### Accounts and community

- [Registration and login](https://github.com/atom-games/abc_site/blob/master/pages/Profile.php): `pages/Profile.php`
- [User profiles](https://github.com/atom-games/abc_site/blob/master/pages/View/User.php): `pages/View/User.php`
- [User messages](https://github.com/atom-games/abc_site/blob/master/pages/MyMail.php): `pages/MyMail.php`

### Administration

- [Enrollment approvals](https://github.com/atom-games/abc_site/blob/master/pages/Byues.php): `pages/Byues.php`
- [Reports](https://github.com/atom-games/abc_site/blob/master/pages/Report.php): `pages/Report.php`
- [Staff management](https://github.com/atom-games/abc_site/blob/master/pages/Shtab.php): `pages/Shtab.php`

### Other components

- **Visitor or user**
- **Email service**

## Connections

- Visitor or user → Request router: requests page
- Request router → Database helpers: loads helpers
- Request router → Registration and login: loads current user
- Request router → Shared navigation: renders navigation
- Request router → Categories: dispatches route
- Request router → Courses and enrollment: dispatches route
- Request router → Lessons: dispatches route
- Request router → Course tests: dispatches route
- Request router → Search results: dispatches route
- Request router → News: dispatches route
- Request router → User profiles: dispatches route
- Request router → User messages: dispatches route
- Request router → My courses: dispatches route
- Request router → Enrollment approvals: dispatches route
- Request router → Reports: dispatches route
- Request router → Staff management: dispatches route
- Shared navigation → Database helpers: queries catalog
- Shared navigation → Courses and enrollment: links courses
- Shared navigation → Categories: links categories
- Courses and enrollment → Database helpers: reads and writes
- Course tests → Database helpers: reads and writes
- User profiles → Database helpers: looks up users
- User profiles → Email service: sends confirmation
- Courses and enrollment → Enrollment approvals: creates enrollment
- Visitor or user → Registration and login: registers or signs in
- Visitor or user → Courses and enrollment: browses or enrolls
- Visitor or user → Course tests: takes tests
