# yan-519/java architecture

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

- Interactive diagram: https://gitdiagram.com/yan-519/java
- Repository: https://github.com/yan-519/java

## Overview

This repository is a collection of Java coursework, not one integrated application: it contains lecture examples, lab exercises, reusable snippets, and successive homework implementations. The clearest end-to-end product workflow in the sampled code is HW3’s JavaFX delivery-system application: launch into the main UI, then use role-based screens to manage delivery operations. Its menu and management subsystems are visible in the tree, but their wiring and most data operations were not sampled, so those links are omitted. The graph also shows the repository’s other major coursework sections without implying they form a runtime pipeline.

Main entry points: [`HWs/src/HW3/Main.java`](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Main.java) (JavaFX entry), [`HWs/src/HW3/Utils/InputManager.java`](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/InputManager.java) (Input forms), [`HWs/src/HW3/Menus/MainUI.java`](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Menus/MainUI.java) (Main UI), [`HWs/src/HW3/DeliveryDataBase.java`](https://github.com/yan-519/java/blob/main/HWs/src/HW3/DeliveryDataBase.java) (Delivery data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_delivery["HW3 Delivery App"]
  node_hw3main["JavaFX entry<br/>[Main.java]"]
  node_mainui["Main UI<br/>[MainUI.java]"]
  node_roleui["Role screens"]
  node_adminmgmt["Admin management"]
  node_reports["Reports UI<br/>[ReportsUI.java]"]
  node_deliverydb["Delivery data"]
  node_entities["Delivery entities"]
end

subgraph group_coursework["Coursework Sections"]
  node_general["General utilities"]
  node_labs["Lab exercises"]
  node_lectures["Lecture examples"]
  node_otherhws["HW1 and HW2"]
end

subgraph group_shared["HW3 Shared Logic"]
  node_inputforms["Input forms<br/>[InputManager.java]"]
  node_datamanager["Data manager<br/>[DataManager.java]"]
  node_dataselector["Data selection<br/>[DataSelector.java]"]
  node_validation["Input validation<br/>[DataChecker.java]"]
  node_uihelpers["UI helpers<br/>[UIHelper.java]"]
  node_uierrors["UI messages<br/>[MessageBox.java]"]
  node_exceptions["Domain exceptions"]
end

node_user(("Application user"))

node_user -->|"launches"| node_hw3main
node_hw3main -->|"creates and authenticates"| node_mainui
node_hw3main -->|"creates and supplies"| node_deliverydb
node_inputforms -->|"builds forms with"| node_uihelpers
node_inputforms -->|"reports validation errors"| node_uierrors

click node_hw3main "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Main.java"
click node_mainui "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Menus/MainUI.java"
click node_roleui "https://github.com/yan-519/java/tree/main/HWs/src/HW3/Menus"
click node_adminmgmt "https://github.com/yan-519/java/tree/main/HWs/src/HW3/Menus/AdminManagment"
click node_reports "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Menus/AdminManagment/ReportsUI.java"
click node_deliverydb "https://github.com/yan-519/java/blob/main/HWs/src/HW3/DeliveryDataBase.java"
click node_entities "https://github.com/yan-519/java/tree/main/HWs/src/HW3/DataObjects"
click node_inputforms "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/InputManager.java"
click node_datamanager "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/DataManager.java"
click node_dataselector "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/DataSelector.java"
click node_validation "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/DataChecker.java"
click node_uihelpers "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/UIHelper.java"
click node_uierrors "https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/MessageBox.java"
click node_exceptions "https://github.com/yan-519/java/tree/main/HWs/src/HW3/Exceptions"
click node_general "https://github.com/yan-519/java/tree/main/General/src"
click node_labs "https://github.com/yan-519/java/tree/main/Labs/src"
click node_lectures "https://github.com/yan-519/java/tree/main/Lectures/src"
click node_otherhws "https://github.com/yan-519/java/tree/main/HWs/src"

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_hw3main,node_mainui,node_roleui,node_adminmgmt,node_reports,node_deliverydb,node_entities,node_user toneBlue
class node_general,node_labs,node_lectures,node_otherhws toneAmber
class node_inputforms,node_datamanager,node_dataselector,node_validation,node_uihelpers,node_uierrors,node_exceptions toneMint
```

## Components

### HW3 Delivery App

- [JavaFX entry](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Main.java): `HWs/src/HW3/Main.java`
- [Main UI](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Menus/MainUI.java): `HWs/src/HW3/Menus/MainUI.java`
- [Role screens](https://github.com/yan-519/java/tree/main/HWs/src/HW3/Menus): `HWs/src/HW3/Menus`
- [Admin management](https://github.com/yan-519/java/tree/main/HWs/src/HW3/Menus/AdminManagment): `HWs/src/HW3/Menus/AdminManagment`
- [Reports UI](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Menus/AdminManagment/ReportsUI.java): `HWs/src/HW3/Menus/AdminManagment/ReportsUI.java`
- [Delivery data](https://github.com/yan-519/java/blob/main/HWs/src/HW3/DeliveryDataBase.java): `HWs/src/HW3/DeliveryDataBase.java`
- [Delivery entities](https://github.com/yan-519/java/tree/main/HWs/src/HW3/DataObjects): `HWs/src/HW3/DataObjects`

### Coursework Sections

- [General utilities](https://github.com/yan-519/java/tree/main/General/src): `General/src`
- [Lab exercises](https://github.com/yan-519/java/tree/main/Labs/src): `Labs/src`
- [Lecture examples](https://github.com/yan-519/java/tree/main/Lectures/src): `Lectures/src`
- [HW1 and HW2](https://github.com/yan-519/java/tree/main/HWs/src): `HWs/src`

### HW3 Shared Logic

- [Input forms](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/InputManager.java): `HWs/src/HW3/Utils/InputManager.java`
- [Data manager](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/DataManager.java): `HWs/src/HW3/Utils/DataManager.java`
- [Data selection](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/DataSelector.java): `HWs/src/HW3/Utils/DataSelector.java`
- [Input validation](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/DataChecker.java): `HWs/src/HW3/Utils/DataChecker.java`
- [UI helpers](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/UIHelper.java): `HWs/src/HW3/Utils/UIHelper.java`
- [UI messages](https://github.com/yan-519/java/blob/main/HWs/src/HW3/Utils/MessageBox.java): `HWs/src/HW3/Utils/MessageBox.java`
- [Domain exceptions](https://github.com/yan-519/java/tree/main/HWs/src/HW3/Exceptions): `HWs/src/HW3/Exceptions`

### Other components

- **Application user**

## Connections

- Application user → JavaFX entry: launches
- JavaFX entry → Main UI: creates and authenticates
- JavaFX entry → Delivery data: creates and supplies
- Input forms → UI helpers: builds forms with
- Input forms → UI messages: reports validation errors
