# zhdanskyi/kotlin-core architecture

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

## Overview

This repository is a collection of small Kotlin learning exercises, not one integrated application. The clearest user-facing workflows are a console task manager, a school-management exercise, a classroom roster exercise, and a simple card demonstration; the fundamentals project illustrates Kotlin syntax and functions. The task manager’s menu is incomplete, and several school methods are unfinished, so the graph reflects only evidenced interactions. Some model files are represented by their tree paths, but their source was not sampled.

Main entry points: [`untitled/src/controller/Controller.kt`](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/controller/Controller.kt) (Task controller), [`kotlin-objects/src/controller/School.kt`](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/controller/School.kt) (School coordinator), [`kotlin-objects/src/Main.kt`](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/Main.kt) (School demo), [`untitled/src/Main.kt`](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/Main.kt) (Task menu)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_tasks["Task manager"]
  node_taskmain["Task menu<br/>[Main.kt]"]
  node_taskcontroller["Task controller<br/>[Controller.kt]"]
  node_task["Task model<br/>[Task.kt]"]
  node_person["Person model<br/>[Person.kt]"]
  node_personaltask["Personal task<br/>[PersonalTask.kt]"]
  node_worktask["Work task<br/>[WorkTask.kt]"]
end

subgraph group_school["School exercise"]
  node_school["School coordinator<br/>[School.kt]"]
  node_schoolmain["School demo<br/>[Main.kt]"]
  node_schoolperson["Person model<br/>[Person.kt]"]
  node_student["Student model<br/>[Student.kt]"]
  node_teacher["Teacher model<br/>[Teacher.kt]"]
  node_director["Director model<br/>[Director.kt]"]
  node_document["Document model<br/>[Document.kt]"]
end

subgraph group_classroom["Classroom exercise"]
  node_classroommain["Classroom menu<br/>[Entrada.kt]"]
end

subgraph group_cards["Blackjack exercise"]
  node_blackjackmain["Card demo<br/>[Main.kt]"]
  node_cardsmodel["Card model<br/>[Cards.kt]"]
end

subgraph group_fundamentals["Kotlin fundamentals"]
  node_fundmain["Syntax demo<br/>[Main.kt]"]
end

node_user(("Console user"))

node_user -->|"uses menu"| node_taskmain
node_taskmain -->|"calls"| node_taskcontroller
node_taskcontroller -->|"stores and lists"| node_task
node_taskcontroller -->|"checks person"| node_person
node_taskcontroller -->|"accepts"| node_personaltask
node_taskcontroller -->|"accepts"| node_worktask
node_task -->|"references"| node_person
node_user -->|"runs demo"| node_schoolmain
node_school -->|"stores people"| node_schoolperson
node_school -->|"adds and lists"| node_student
node_school -->|"lists"| node_teacher
node_school -->|"sets director"| node_director
node_schoolmain -->|"creates"| node_schoolperson
node_schoolmain -->|"creates"| node_student
node_schoolmain -->|"creates"| node_document
node_user -->|"uses menu"| node_classroommain
node_user -->|"runs demo"| node_blackjackmain
node_blackjackmain -->|"creates card"| node_cardsmodel
node_user -->|"runs demo"| node_fundmain

click node_taskmain "https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/Main.kt"
click node_taskcontroller "https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/controller/Controller.kt"
click node_task "https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/Task.kt"
click node_person "https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/Person.kt"
click node_personaltask "https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/PersonalTask.kt"
click node_worktask "https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/WorkTask.kt"
click node_school "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/controller/School.kt"
click node_schoolmain "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/Main.kt"
click node_schoolperson "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Person.kt"
click node_student "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Student.kt"
click node_teacher "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Teacher.kt"
click node_director "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Director.kt"
click node_document "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Document.kt"
click node_classroommain "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-fundamentals/src/tasks/Entrada.kt"
click node_blackjackmain "https://github.com/zhdanskyi/kotlin-core/blob/main/blackjack-project/src/Main.kt"
click node_cardsmodel "https://github.com/zhdanskyi/kotlin-core/blob/main/blackjack-project/src/model/Cards.kt"
click node_fundmain "https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-fundamentals/src/Main.kt"

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_taskmain,node_taskcontroller,node_task,node_person,node_personaltask,node_worktask,node_user toneBlue
class node_school,node_schoolmain,node_schoolperson,node_student,node_teacher,node_director,node_document toneAmber
class node_classroommain toneMint
class node_blackjackmain,node_cardsmodel toneRose
class node_fundmain toneIndigo
```

## Components

### Task manager

- [Task menu](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/Main.kt): `untitled/src/Main.kt`
- [Task controller](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/controller/Controller.kt): `untitled/src/controller/Controller.kt`
- [Task model](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/Task.kt): `untitled/src/model/Task.kt`
- [Person model](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/Person.kt): `untitled/src/model/Person.kt`
- [Personal task](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/PersonalTask.kt): `untitled/src/model/PersonalTask.kt`
- [Work task](https://github.com/zhdanskyi/kotlin-core/blob/main/untitled/src/model/WorkTask.kt): `untitled/src/model/WorkTask.kt`

### School exercise

- [School coordinator](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/controller/School.kt): `kotlin-objects/src/controller/School.kt`
- [School demo](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/Main.kt): `kotlin-objects/src/Main.kt`
- [Person model](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Person.kt): `kotlin-objects/src/model/Person.kt`
- [Student model](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Student.kt): `kotlin-objects/src/model/Student.kt`
- [Teacher model](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Teacher.kt): `kotlin-objects/src/model/Teacher.kt`
- [Director model](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Director.kt): `kotlin-objects/src/model/Director.kt`
- [Document model](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-objects/src/model/Document.kt): `kotlin-objects/src/model/Document.kt`

### Classroom exercise

- [Classroom menu](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-fundamentals/src/tasks/Entrada.kt): `kotlin-fundamentals/src/tasks/Entrada.kt`

### Blackjack exercise

- [Card demo](https://github.com/zhdanskyi/kotlin-core/blob/main/blackjack-project/src/Main.kt): `blackjack-project/src/Main.kt`
- [Card model](https://github.com/zhdanskyi/kotlin-core/blob/main/blackjack-project/src/model/Cards.kt): `blackjack-project/src/model/Cards.kt`

### Kotlin fundamentals

- [Syntax demo](https://github.com/zhdanskyi/kotlin-core/blob/main/kotlin-fundamentals/src/Main.kt): `kotlin-fundamentals/src/Main.kt`

### Other components

- **Console user**

## Connections

- Console user → Task menu: uses menu
- Task menu → Task controller: calls
- Task controller → Task model: stores and lists
- Task controller → Person model: checks person
- Task controller → Personal task: accepts
- Task controller → Work task: accepts
- Task model → Person model: references
- Console user → School demo: runs demo
- School coordinator → Person model: stores people
- School coordinator → Student model: adds and lists
- School coordinator → Teacher model: lists
- School coordinator → Director model: sets director
- School demo → Person model: creates
- School demo → Student model: creates
- School demo → Document model: creates
- Console user → Classroom menu: uses menu
- Console user → Card demo: runs demo
- Card demo → Card model: creates card
- Console user → Syntax demo: runs demo
