# disha-kumari/java_progs architecture

> Architecture diagram of the GitHub repository disha-kumari/java_progs, 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/disha-kumari/java_progs
- Repository: https://github.com/disha-kumari/java_progs

## Overview

This repository is a collection of independent Java lab programs, not one integrated application. Its demos cover employee and car records, vehicle delivery and payment, two stack exercises, two banking examples, and producer-consumer messaging. The sampled entry points show their direct calls; several other source files are represented by their tree paths, but their wiring could not be verified from the supplied excerpts.

Main entry points: [`prog_3/MainClass.java`](https://github.com/disha-kumari/java_progs/blob/main/prog_3/MainClass.java) (Transport demo), [`prog_5/TicketCounterStack.java`](https://github.com/disha-kumari/java_progs/blob/main/prog_5/TicketCounterStack.java) (Ticket counter demo), [`prog_3/EBike.java`](https://github.com/disha-kumari/java_progs/blob/main/prog_3/EBike.java) (E-bike delivery), [`prog_3/Drone.java`](https://github.com/disha-kumari/java_progs/blob/main/prog_3/Drone.java) (Drone delivery)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_records["Record Demos"]
  node_employee_main["Employee demo<br/>[EmpMain.java]"]
  node_employee["Employee record<br/>[Employee.java]"]
  node_showroom["Showroom demo<br/>[Showroom.java]"]
  node_cars["Car records<br/>[Cars.java]"]
end

subgraph group_transport["Transport Demo"]
  node_transport_main["Transport demo<br/>[MainClass.java]"]
  node_vehicle["Vehicle base<br/>[Vehicle.java]"]
  node_bicycle["Bicycle<br/>[Bicycle.java]"]
  node_ebike["E-bike delivery<br/>[EBike.java]"]
  node_drone["Drone delivery<br/>[Drone.java]"]
  node_security["Delivery rules<br/>[SecurityRules.java]"]
  node_payable["Payable contract<br/>[IPayable.java]"]
end

subgraph group_stacks["Stack Demos"]
  node_library_demo["Library stack demo"]
  node_library_stack["Integer stack<br/>[Stack.java]"]
  node_ticket_demo["Ticket counter demo"]
  node_ticket_stack["Person stack<br/>[Stack.java]"]
  node_person["Person record<br/>[Person.java]"]
  node_gender["Gender values<br/>[Gender.java]"]
end

subgraph group_banking["Banking Demos"]
  node_account_demo["Account menu<br/>[BankDemo.java]"]
  node_account["Account operations<br/>[Account.java]"]
  node_balance_error["Balance exception"]
  node_bank_main["Bank demo<br/>[Main.java]"]
  node_bank["Account balances<br/>[Bank.java]"]
end

subgraph group_messaging["Messaging Demo"]
  node_producer_demo["Producer-consumer demo"]
  node_producer["Producer<br/>[Producer.java]"]
  node_board["Message buffer<br/>[MessageBoard.java]"]
  node_consumer["Consumer<br/>[Consumer.java]"]
end

node_user(("Console user"))

node_user -->|"runs"| node_employee_main
node_transport_main -->|"creates"| node_ebike
node_transport_main -->|"requests delivery"| node_ebike
node_transport_main -->|"creates"| node_drone
node_transport_main -->|"requests delivery"| node_drone
node_transport_main -->|"calculates cost"| node_drone
node_vehicle -->|"extended by"| node_bicycle
node_bicycle -->|"extended by"| node_ebike
node_library_demo -->|"calls stack operations"| node_library_stack
node_ticket_demo -->|"calls stack operations"| node_ticket_stack
node_ticket_demo -->|"creates"| node_person
node_ticket_demo -->|"reads values"| node_gender
node_account_demo -->|"calls account operations"| node_account
node_account_demo -->|"catches"| node_balance_error
node_account -->|"throws"| node_balance_error
node_bank_main -->|"calls bank operations"| node_bank

click node_employee_main "https://github.com/disha-kumari/java_progs/blob/main/prog_1/EmpMain.java"
click node_employee "https://github.com/disha-kumari/java_progs/blob/main/prog_1/Employee.java"
click node_showroom "https://github.com/disha-kumari/java_progs/blob/main/prog_2/Showroom.java"
click node_cars "https://github.com/disha-kumari/java_progs/blob/main/prog_2/Cars.java"
click node_transport_main "https://github.com/disha-kumari/java_progs/blob/main/prog_3/MainClass.java"
click node_vehicle "https://github.com/disha-kumari/java_progs/blob/main/prog_3/Vehicle.java"
click node_bicycle "https://github.com/disha-kumari/java_progs/blob/main/prog_3/Bicycle.java"
click node_ebike "https://github.com/disha-kumari/java_progs/blob/main/prog_3/EBike.java"
click node_drone "https://github.com/disha-kumari/java_progs/blob/main/prog_3/Drone.java"
click node_security "https://github.com/disha-kumari/java_progs/blob/main/prog_3/SecurityRules.java"
click node_payable "https://github.com/disha-kumari/java_progs/blob/main/prog_3/IPayable.java"
click node_library_demo "https://github.com/disha-kumari/java_progs/blob/main/prog_4/LibraryStackDemo.java"
click node_library_stack "https://github.com/disha-kumari/java_progs/blob/main/prog_4/Stack.java"
click node_ticket_demo "https://github.com/disha-kumari/java_progs/blob/main/prog_5/TicketCounterStack.java"
click node_ticket_stack "https://github.com/disha-kumari/java_progs/blob/main/prog_5/Stack.java"
click node_person "https://github.com/disha-kumari/java_progs/blob/main/prog_5/Person.java"
click node_gender "https://github.com/disha-kumari/java_progs/blob/main/prog_5/Gender.java"
click node_account_demo "https://github.com/disha-kumari/java_progs/blob/main/prog_6/BankDemo.java"
click node_account "https://github.com/disha-kumari/java_progs/blob/main/prog_6/Account.java"
click node_balance_error "https://github.com/disha-kumari/java_progs/blob/main/prog_6/InsufficientBalanceException.java"
click node_bank_main "https://github.com/disha-kumari/java_progs/blob/main/prog_8/Main.java"
click node_bank "https://github.com/disha-kumari/java_progs/blob/main/prog_8/Bank.java"
click node_producer_demo "https://github.com/disha-kumari/java_progs/blob/main/prog_7/ProducerConsumerDemo.java"
click node_producer "https://github.com/disha-kumari/java_progs/blob/main/prog_7/Producer.java"
click node_board "https://github.com/disha-kumari/java_progs/blob/main/prog_7/MessageBoard.java"
click node_consumer "https://github.com/disha-kumari/java_progs/blob/main/prog_7/Consumer.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_employee_main,node_employee,node_showroom,node_cars,node_user toneBlue
class node_transport_main,node_vehicle,node_bicycle,node_ebike,node_drone,node_security,node_payable toneAmber
class node_library_demo,node_library_stack,node_ticket_demo,node_ticket_stack,node_person,node_gender toneMint
class node_account_demo,node_account,node_balance_error,node_bank_main,node_bank toneRose
class node_producer_demo,node_producer,node_board,node_consumer toneIndigo
```

## Components

### Record Demos

- [Employee demo](https://github.com/disha-kumari/java_progs/blob/main/prog_1/EmpMain.java): `prog_1/EmpMain.java`
- [Employee record](https://github.com/disha-kumari/java_progs/blob/main/prog_1/Employee.java): `prog_1/Employee.java`
- [Showroom demo](https://github.com/disha-kumari/java_progs/blob/main/prog_2/Showroom.java): `prog_2/Showroom.java`
- [Car records](https://github.com/disha-kumari/java_progs/blob/main/prog_2/Cars.java): `prog_2/Cars.java`

### Transport Demo

- [Transport demo](https://github.com/disha-kumari/java_progs/blob/main/prog_3/MainClass.java): `prog_3/MainClass.java`
- [Vehicle base](https://github.com/disha-kumari/java_progs/blob/main/prog_3/Vehicle.java): `prog_3/Vehicle.java`
- [Bicycle](https://github.com/disha-kumari/java_progs/blob/main/prog_3/Bicycle.java): `prog_3/Bicycle.java`
- [E-bike delivery](https://github.com/disha-kumari/java_progs/blob/main/prog_3/EBike.java): `prog_3/EBike.java`
- [Drone delivery](https://github.com/disha-kumari/java_progs/blob/main/prog_3/Drone.java): `prog_3/Drone.java`
- [Delivery rules](https://github.com/disha-kumari/java_progs/blob/main/prog_3/SecurityRules.java): `prog_3/SecurityRules.java`
- [Payable contract](https://github.com/disha-kumari/java_progs/blob/main/prog_3/IPayable.java): `prog_3/IPayable.java`

### Stack Demos

- [Library stack demo](https://github.com/disha-kumari/java_progs/blob/main/prog_4/LibraryStackDemo.java): `prog_4/LibraryStackDemo.java`
- [Integer stack](https://github.com/disha-kumari/java_progs/blob/main/prog_4/Stack.java): `prog_4/Stack.java`
- [Ticket counter demo](https://github.com/disha-kumari/java_progs/blob/main/prog_5/TicketCounterStack.java): `prog_5/TicketCounterStack.java`
- [Person stack](https://github.com/disha-kumari/java_progs/blob/main/prog_5/Stack.java): `prog_5/Stack.java`
- [Person record](https://github.com/disha-kumari/java_progs/blob/main/prog_5/Person.java): `prog_5/Person.java`
- [Gender values](https://github.com/disha-kumari/java_progs/blob/main/prog_5/Gender.java): `prog_5/Gender.java`

### Banking Demos

- [Account menu](https://github.com/disha-kumari/java_progs/blob/main/prog_6/BankDemo.java): `prog_6/BankDemo.java`
- [Account operations](https://github.com/disha-kumari/java_progs/blob/main/prog_6/Account.java): `prog_6/Account.java`
- [Balance exception](https://github.com/disha-kumari/java_progs/blob/main/prog_6/InsufficientBalanceException.java): `prog_6/InsufficientBalanceException.java`
- [Bank demo](https://github.com/disha-kumari/java_progs/blob/main/prog_8/Main.java): `prog_8/Main.java`
- [Account balances](https://github.com/disha-kumari/java_progs/blob/main/prog_8/Bank.java): `prog_8/Bank.java`

### Messaging Demo

- [Producer-consumer demo](https://github.com/disha-kumari/java_progs/blob/main/prog_7/ProducerConsumerDemo.java): `prog_7/ProducerConsumerDemo.java`
- [Producer](https://github.com/disha-kumari/java_progs/blob/main/prog_7/Producer.java): `prog_7/Producer.java`
- [Message buffer](https://github.com/disha-kumari/java_progs/blob/main/prog_7/MessageBoard.java): `prog_7/MessageBoard.java`
- [Consumer](https://github.com/disha-kumari/java_progs/blob/main/prog_7/Consumer.java): `prog_7/Consumer.java`

### Other components

- **Console user**

## Connections

- Console user → Employee demo: runs
- Transport demo → E-bike delivery: creates
- Transport demo → E-bike delivery: requests delivery
- Transport demo → Drone delivery: creates
- Transport demo → Drone delivery: requests delivery
- Transport demo → Drone delivery: calculates cost
- Vehicle base → Bicycle: extended by
- Bicycle → E-bike delivery: extended by
- Library stack demo → Integer stack: calls stack operations
- Ticket counter demo → Person stack: calls stack operations
- Ticket counter demo → Person record: creates
- Ticket counter demo → Gender values: reads values
- Account menu → Account operations: calls account operations
- Account menu → Balance exception: catches
- Account operations → Balance exception: throws
- Bank demo → Account balances: calls bank operations
