# zhdanskyi/java-projects architecture

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

- Interactive diagram: https://gitdiagram.com/zhdanskyi/java-projects
- Repository: https://github.com/zhdanskyi/java-projects

## Overview

This repository is a collection of independent Java/Kotlin learning projects, not one integrated product. The sampled code shows separate examples for movie lookup/export, shop database operations, school staffing, and a small PDF-and-logging UI. The movie controller’s HTTP, parsing, and CSV behavior and the school example’s calls are visible in source; other wiring is omitted where the entry point or implementation was not sampled. The empty README provides no additional product-level workflow or capability map.

Main entry points: [`TiendaDB/src/main/java/controller/Controller.java`](https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/controller/Controller.java) (Shop controller), [`API/src/main/java/controller/APIcontroller.java`](https://github.com/zhdanskyi/java-projects/blob/master/API/src/main/java/controller/APIcontroller.java) (Movie API controller), [`HERENCIA2/src/Main.java`](https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/Main.java) (School demo), [`kotlinn/src/Main.kt`](https://github.com/zhdanskyi/java-projects/blob/master/kotlinn/src/Main.kt) (PDF UI and workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_movies["Movie lookup"]
  node_movie_api["Movie API controller<br/>[APIcontroller.java]"]
  node_imdb{{"IMDb search service"}}
  node_movie["Movie records<br/>[Movie.java]"]
  node_csv["CSV export file"]
end

subgraph group_shop["Shop database"]
  node_shop_controller["Shop controller<br/>[Controller.java]"]
  node_user_dto["User DTO<br/>[usuarioDTO.java]"]
  node_profile_dto["Profile DTO<br/>[perfilDTO.java]"]
  node_product_dto["Product DTO<br/>[productoDTO.java]"]
  node_cart_dto["Cart DTO<br/>[carritoDTO.java]"]
end

subgraph group_school["School staffing"]
  node_school_main["School demo<br/>[Main.java]"]
  node_school_controller["School center<br/>[CentroEscolar.java]"]
  node_fixed_teacher["Permanent teacher<br/>[Fijo.java]"]
  node_temp_teacher["Interim teacher<br/>[Interino.java]"]
end

subgraph group_pdf["PDF utility"]
  node_pdf_main["PDF UI and workflow<br/>[Main.kt]"]
  node_log_file["Movement log"]
  node_pdf_file["Generated PDF"]
  node_browser{{"Google website"}}
end

node_movie_api -->|"requests search"| node_imdb
node_movie_api -->|"maps results"| node_movie
node_movie_api -->|"writes CSV"| node_csv
node_shop_controller -->|"calls user operations"| node_user_dto
node_shop_controller -->|"calls profile operations"| node_profile_dto
node_shop_controller -->|"calls product operations"| node_product_dto
node_shop_controller -->|"calls cart operations"| node_cart_dto
node_school_main -->|"contracts teachers"| node_school_controller
node_school_main -->|"constructs"| node_fixed_teacher
node_school_main -->|"constructs"| node_temp_teacher
node_pdf_main -->|"appends log"| node_log_file
node_pdf_main -->|"generates and opens"| node_pdf_file
node_pdf_main -->|"opens website"| node_browser

click node_movie_api "https://github.com/zhdanskyi/java-projects/blob/master/API/src/main/java/controller/APIcontroller.java"
click node_movie "https://github.com/zhdanskyi/java-projects/blob/master/API/src/main/java/model/Movie.java"
click node_shop_controller "https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/controller/Controller.java"
click node_user_dto "https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/usuarioDTO.java"
click node_profile_dto "https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/perfilDTO.java"
click node_product_dto "https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/productoDTO.java"
click node_cart_dto "https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/carritoDTO.java"
click node_school_main "https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/Main.java"
click node_school_controller "https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/controller/CentroEscolar.java"
click node_fixed_teacher "https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/model/Fijo.java"
click node_temp_teacher "https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/model/Interino.java"
click node_pdf_main "https://github.com/zhdanskyi/java-projects/blob/master/kotlinn/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_movie_api,node_imdb,node_movie,node_csv toneBlue
class node_shop_controller,node_user_dto,node_profile_dto,node_product_dto,node_cart_dto toneAmber
class node_school_main,node_school_controller,node_fixed_teacher,node_temp_teacher toneMint
class node_pdf_main,node_log_file,node_pdf_file,node_browser toneRose
```

## Components

### Movie lookup

- [Movie API controller](https://github.com/zhdanskyi/java-projects/blob/master/API/src/main/java/controller/APIcontroller.java): `API/src/main/java/controller/APIcontroller.java`
- **IMDb search service**
- [Movie records](https://github.com/zhdanskyi/java-projects/blob/master/API/src/main/java/model/Movie.java): `API/src/main/java/model/Movie.java`
- **CSV export file**

### Shop database

- [Shop controller](https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/controller/Controller.java): `TiendaDB/src/main/java/controller/Controller.java`
- [User DTO](https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/usuarioDTO.java): `TiendaDB/src/main/java/dto/usuarioDTO.java`
- [Profile DTO](https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/perfilDTO.java): `TiendaDB/src/main/java/dto/perfilDTO.java`
- [Product DTO](https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/productoDTO.java): `TiendaDB/src/main/java/dto/productoDTO.java`
- [Cart DTO](https://github.com/zhdanskyi/java-projects/blob/master/TiendaDB/src/main/java/dto/carritoDTO.java): `TiendaDB/src/main/java/dto/carritoDTO.java`

### School staffing

- [School demo](https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/Main.java): `HERENCIA2/src/Main.java`
- [School center](https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/controller/CentroEscolar.java): `HERENCIA2/src/controller/CentroEscolar.java`
- [Permanent teacher](https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/model/Fijo.java): `HERENCIA2/src/model/Fijo.java`
- [Interim teacher](https://github.com/zhdanskyi/java-projects/blob/master/HERENCIA2/src/model/Interino.java): `HERENCIA2/src/model/Interino.java`

### PDF utility

- [PDF UI and workflow](https://github.com/zhdanskyi/java-projects/blob/master/kotlinn/src/Main.kt): `kotlinn/src/Main.kt`
- **Movement log**
- **Generated PDF**
- **Google website**

## Connections

- Movie API controller → IMDb search service: requests search
- Movie API controller → Movie records: maps results
- Movie API controller → CSV export file: writes CSV
- Shop controller → User DTO: calls user operations
- Shop controller → Profile DTO: calls profile operations
- Shop controller → Product DTO: calls product operations
- Shop controller → Cart DTO: calls cart operations
- School demo → School center: contracts teachers
- School demo → Permanent teacher: constructs
- School demo → Interim teacher: constructs
- PDF UI and workflow → Movement log: appends log
- PDF UI and workflow → Generated PDF: generates and opens
- PDF UI and workflow → Google website: opens website
