# eusha1879/java-leave-tracking-system architecture

> Architecture diagram of the GitHub repository eusha1879/java-leave-tracking-system, 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/eusha1879/java-leave-tracking-system
- Repository: https://github.com/eusha1879/java-leave-tracking-system

## Overview

This is a small, interactive Java leave-tracking case study. The CLI in `Main` creates one in-memory employee, validates and submits a leave request, and displays either record. The domain classes hold and display those records; there is no persistent store. The README describes HR review and approval or rejection, but the sampled code only initializes requests as pending and exposes no review or decision workflow.

Main entry points: [`src/Main.java`](https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/Main.java) (CLI workflow), [`src/Employee.java`](https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/Employee.java) (Employee record), [`src/LeaveRequest.java`](https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/LeaveRequest.java) (Leave request)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI workflow"]
  node_main["CLI workflow<br/>[Main.java]"]
end

subgraph group_domain["Domain records"]
  node_employee["Employee record<br/>[Employee.java]"]
  node_leave_request["Leave request<br/>[LeaveRequest.java]"]
end

node_employee_user(("Employee user"))

node_employee_user -->|"chooses options"| node_main
node_main -->|"prompts and displays"| node_employee_user
node_main -->|"creates and reads"| node_employee
node_main -->|"creates and displays"| node_leave_request

click node_main "https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/Main.java"
click node_employee "https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/Employee.java"
click node_leave_request "https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/LeaveRequest.java"

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_main,node_employee_user toneBlue
class node_employee,node_leave_request toneAmber
```

## Components

### CLI workflow

- [CLI workflow](https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/Main.java): `src/Main.java`

### Domain records

- [Employee record](https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/Employee.java): `src/Employee.java`
- [Leave request](https://github.com/eusha1879/java-leave-tracking-system/blob/main/src/LeaveRequest.java): `src/LeaveRequest.java`

### Other components

- **Employee user**

## Connections

- Employee user → CLI workflow: chooses options
- CLI workflow → Employee user: prompts and displays
- CLI workflow → Employee record: creates and reads
- CLI workflow → Leave request: creates and displays
