# alex01502409/java-projekte architecture

> Architecture diagram of the GitHub repository alex01502409/java-projekte, 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/alex01502409/java-projekte
- Repository: https://github.com/alex01502409/java-projekte

## Overview

This repository is a collection of independent Java teaching exercises, not one integrated application. Its examples cover network communication, file I/O, and algorithms/data structures. The principal end-to-end workflows are the chat client/server exchange and standalone file or algorithm demonstrations. The tree identifies additional examples, but with no README and only sampled source, their internal wiring is not established; those branches are shown as independent exercises.

Main entry points: [`Netzwerk_IO_Praktikum/src/application/Client.java`](https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Client.java) (Chat client UI), [`Netzwerk_IO_Praktikum/src/application/Server.java`](https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Server.java) (Chat server), [`EA_Gr1/src/ea/Client.java`](https://github.com/alex01502409/java-projekte/blob/main/EA_Gr1/src/ea/Client.java) (Echo client), [`EinAusgabe_Praktikum/src/pac/StringsSpeichern.java`](https://github.com/alex01502409/java-projekte/blob/main/EinAusgabe_Praktikum/src/pac/StringsSpeichern.java) (Indexed strings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_network["Networking"]
  node_chat_client["Chat client UI<br/>[Client.java]"]
  node_chat_server["Chat server<br/>[Server.java]"]
  node_chat_message["Chat message<br/>[Message.java]"]
  node_echo_client["Echo client<br/>[Client.java]"]
  node_echo_server["Echo server<br/>[Server.java]"]
end

subgraph group_files["File I/O"]
  node_raf_demo["RAF demo<br/>[Main.java]"]
  node_indexed_strings["Indexed strings"]
  node_string_data[("String data file")]
  node_string_index[("String index file")]
  node_file_copy["Directory copy<br/>[Frage03.java]"]
  node_file_carving["File carving"]
  node_nio_tools["NIO tools"]
  node_raf_examples["RAF examples"]
end

subgraph group_algorithms["Algorithms"]
  node_sort_search["Sort and search"]
  node_backtracking_dp["Backtracking and DP"]
end

subgraph group_structures["Data Structures"]
  node_collections["Collection examples"]
  node_linked_lists["Linked lists"]
  node_doubly_linked["Doubly linked list"]
  node_trees["Tree examples"]
  node_graph_search["Graph traversal"]
  node_dijkstra["Dijkstra graph"]
  node_external_structures["External structures"]
  node_books["Book examples"]
end

node_chat_user(("Chat user"))
node_echo_user(("Echo user"))

node_chat_user -->|"uses"| node_chat_client
node_chat_client -->|"creates and sends"| node_chat_message
node_chat_server -->|"reads and creates"| node_chat_message
node_chat_client -->|"sends messages"| node_chat_server
node_chat_server -->|"broadcasts messages"| node_chat_client
node_echo_user -->|"runs"| node_echo_client
node_echo_client -->|"sends lines"| node_echo_server
node_echo_server -->|"returns replies"| node_echo_client
node_raf_demo --> node_string_data
node_indexed_strings -->|"reads and writes"| node_string_data
node_indexed_strings -->|"reads and writes"| node_string_index

click node_chat_client "https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Client.java"
click node_chat_server "https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Server.java"
click node_chat_message "https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Message.java"
click node_echo_client "https://github.com/alex01502409/java-projekte/blob/main/EA_Gr1/src/ea/Client.java"
click node_echo_server "https://github.com/alex01502409/java-projekte/blob/main/EA_Gr1/src/ea/Server.java"
click node_raf_demo "https://github.com/alex01502409/java-projekte/blob/main/RAF_Pr/src/rafPack/Main.java"
click node_indexed_strings "https://github.com/alex01502409/java-projekte/blob/main/EinAusgabe_Praktikum/src/pac/StringsSpeichern.java"
click node_file_copy "https://github.com/alex01502409/java-projekte/blob/main/ProbePruefung/src/frage03/Frage03.java"
click node_file_carving "https://github.com/alex01502409/java-projekte/blob/main/Carving_Praktikum/src/car/SimpleFileCarving.java"
click node_nio_tools "https://github.com/alex01502409/java-projekte/tree/main/NIO_Praktikum/src/nio"
click node_raf_examples "https://github.com/alex01502409/java-projekte/tree/main/EinAusgabeRAF/src/ea"
click node_sort_search "https://github.com/alex01502409/java-projekte/tree/main/Sortieralgorithmen/src"
click node_backtracking_dp "https://github.com/alex01502409/java-projekte/tree/main/BTDP_Gr1/src/probleme"
click node_collections "https://github.com/alex01502409/java-projekte/tree/main/Collections_Seminar/src/sam"
click node_linked_lists "https://github.com/alex01502409/java-projekte/tree/main/Listen_Vo6/src/listen"
click node_doubly_linked "https://github.com/alex01502409/java-projekte/tree/main/Listen_gr1/src/listen"
click node_trees "https://github.com/alex01502409/java-projekte/tree/main/Baeume_Gr1/src/baeume"
click node_graph_search "https://github.com/alex01502409/java-projekte/tree/main/Graphen_Gr1/src/graph"
click node_dijkstra "https://github.com/alex01502409/java-projekte/tree/main/Dijktra_Gr1/src/dijsktra"
click node_external_structures "https://github.com/alex01502409/java-projekte/tree/main/ExterneDatenstrukturen/src/datenstrukturen"
click node_books "https://github.com/alex01502409/java-projekte/tree/main/Externe_Datentypen_Vo7/src/datenstrukturen"

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_chat_client,node_chat_server,node_chat_message,node_echo_client,node_echo_server,node_chat_user,node_echo_user toneBlue
class node_raf_demo,node_indexed_strings,node_string_data,node_string_index,node_file_copy,node_file_carving,node_nio_tools,node_raf_examples toneAmber
class node_sort_search,node_backtracking_dp toneMint
class node_collections,node_linked_lists,node_doubly_linked,node_trees,node_graph_search,node_dijkstra,node_external_structures,node_books toneRose
```

## Components

### Networking

- [Chat client UI](https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Client.java): `Netzwerk_IO_Praktikum/src/application/Client.java`
- [Chat server](https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Server.java): `Netzwerk_IO_Praktikum/src/application/Server.java`
- [Chat message](https://github.com/alex01502409/java-projekte/blob/main/Netzwerk_IO_Praktikum/src/application/Message.java): `Netzwerk_IO_Praktikum/src/application/Message.java`
- [Echo client](https://github.com/alex01502409/java-projekte/blob/main/EA_Gr1/src/ea/Client.java): `EA_Gr1/src/ea/Client.java`
- [Echo server](https://github.com/alex01502409/java-projekte/blob/main/EA_Gr1/src/ea/Server.java): `EA_Gr1/src/ea/Server.java`

### File I/O

- [RAF demo](https://github.com/alex01502409/java-projekte/blob/main/RAF_Pr/src/rafPack/Main.java): `RAF_Pr/src/rafPack/Main.java`
- [Indexed strings](https://github.com/alex01502409/java-projekte/blob/main/EinAusgabe_Praktikum/src/pac/StringsSpeichern.java): `EinAusgabe_Praktikum/src/pac/StringsSpeichern.java`
- **String data file**
- **String index file**
- [Directory copy](https://github.com/alex01502409/java-projekte/blob/main/ProbePruefung/src/frage03/Frage03.java): `ProbePruefung/src/frage03/Frage03.java`
- [File carving](https://github.com/alex01502409/java-projekte/blob/main/Carving_Praktikum/src/car/SimpleFileCarving.java): `Carving_Praktikum/src/car/SimpleFileCarving.java`
- [NIO tools](https://github.com/alex01502409/java-projekte/tree/main/NIO_Praktikum/src/nio): `NIO_Praktikum/src/nio`
- [RAF examples](https://github.com/alex01502409/java-projekte/tree/main/EinAusgabeRAF/src/ea): `EinAusgabeRAF/src/ea`

### Algorithms

- [Sort and search](https://github.com/alex01502409/java-projekte/tree/main/Sortieralgorithmen/src): `Sortieralgorithmen/src`
- [Backtracking and DP](https://github.com/alex01502409/java-projekte/tree/main/BTDP_Gr1/src/probleme): `BTDP_Gr1/src/probleme`

### Data Structures

- [Collection examples](https://github.com/alex01502409/java-projekte/tree/main/Collections_Seminar/src/sam): `Collections_Seminar/src/sam`
- [Linked lists](https://github.com/alex01502409/java-projekte/tree/main/Listen_Vo6/src/listen): `Listen_Vo6/src/listen`
- [Doubly linked list](https://github.com/alex01502409/java-projekte/tree/main/Listen_gr1/src/listen): `Listen_gr1/src/listen`
- [Tree examples](https://github.com/alex01502409/java-projekte/tree/main/Baeume_Gr1/src/baeume): `Baeume_Gr1/src/baeume`
- [Graph traversal](https://github.com/alex01502409/java-projekte/tree/main/Graphen_Gr1/src/graph): `Graphen_Gr1/src/graph`
- [Dijkstra graph](https://github.com/alex01502409/java-projekte/tree/main/Dijktra_Gr1/src/dijsktra): `Dijktra_Gr1/src/dijsktra`
- [External structures](https://github.com/alex01502409/java-projekte/tree/main/ExterneDatenstrukturen/src/datenstrukturen): `ExterneDatenstrukturen/src/datenstrukturen`
- [Book examples](https://github.com/alex01502409/java-projekte/tree/main/Externe_Datentypen_Vo7/src/datenstrukturen): `Externe_Datentypen_Vo7/src/datenstrukturen`

### Other components

- **Chat user**
- **Echo user**

## Connections

- Chat user → Chat client UI: uses
- Chat client UI → Chat message: creates and sends
- Chat server → Chat message: reads and creates
- Chat client UI → Chat server: sends messages
- Chat server → Chat client UI: broadcasts messages
- Echo user → Echo client: runs
- Echo client → Echo server: sends lines
- Echo server → Echo client: returns replies
- RAF demo → String data file
- Indexed strings → String data file: reads and writes
- Indexed strings → String index file: reads and writes
