# cavkev/gruppenaufgabejavafx architecture

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

- Interactive diagram: https://gitdiagram.com/cavkev/gruppenaufgabejavafx
- Repository: https://github.com/cavkev/gruppenaufgabejavafx

## Overview

This repository contains two JavaFX student-management app variants: a compact FXML-based app and a separate, richer CRUD app with a student form. In the richer variant, users add, edit, or delete students; the app delegates persistence to DAOs and refreshes its table. The sampled code shows the database connection setup and the form’s study-group lookup. DAO internals and the FXML/controller wiring were not sampled, so those relationships are left unspecified.

Main entry points: [`sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java`](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java) (Student table), [`sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java`](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java) (FXML app entry), [`sqlite/sqlite/src/main/java/com/edencoding/AddStudentWindow.java`](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/AddStudentWindow.java) (Student form), [`sqlite/sqlite/src/main/java/com/edencoding/dao/StudentDAO.java`](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/dao/StudentDAO.java) (Student DAO)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fxml_app["FXML app"]
  node_fxml_entry["FXML app entry"]
  node_fxml_view["Student view<br/>[sqLiteView.fxml]"]
  node_fxml_controller["View controller<br/>[Controller.java]"]
  node_fxml_student_dao["Student DAO<br/>[StudentDAO.java]"]
  node_fxml_db_check["DB connection<br/>[Database.java]"]
  node_fxml_students[("Students database<br/>[Students.db]")]
  node_fxml_student["Student model<br/>[Student.java]"]
  node_fxml_group["Study-group model<br/>[Studiengruppe.java]"]
end

subgraph group_crud_app["CRUD app"]
  node_rich_entry["CRUD app entry"]
  node_student_table["Student table"]
  node_student_form["Student form"]
  node_rich_student_dao["Student DAO<br/>[StudentDAO.java]"]
  node_group_dao["Study-group DAO"]
end

subgraph group_data_layer["Data layer"]
  node_rich_student["Student model<br/>[Student.java]"]
  node_rich_group["Study-group model<br/>[Studiengruppe.java]"]
  node_rich_db_check["DB connection<br/>[Database.java]"]
  node_rich_students[("Students database<br/>[Students.db]")]
end

node_user(("User"))

node_user -->|"launches"| node_fxml_entry
node_fxml_entry -->|"checks connection"| node_fxml_db_check
node_fxml_entry -->|"loads students"| node_fxml_student_dao
node_fxml_entry -->|"loads view"| node_fxml_view
node_user -->|"uses"| node_fxml_view
node_user -->|"launches"| node_rich_entry
node_rich_entry -->|"checks connection"| node_rich_db_check
node_rich_entry -->|"loads students"| node_rich_student_dao
node_rich_entry -->|"opens"| node_student_table
node_student_table -->|"opens form"| node_student_form
node_student_form -->|"loads groups"| node_group_dao
node_student_form -->|"dispatches save"| node_student_table
node_student_table -->|"inserts updates deletes"| node_rich_student_dao
node_student_table -->|"reloads rows"| node_rich_student_dao
node_rich_db_check -->|"opens connection"| node_rich_students
node_fxml_db_check -->|"opens connection"| node_fxml_students

click node_fxml_entry "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java"
click node_fxml_view "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/resources/com/edencoding/fxml/sqLiteView.fxml"
click node_fxml_controller "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/controllers/Controller.java"
click node_fxml_student_dao "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/dao/StudentDAO.java"
click node_fxml_db_check "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/dao/Database.java"
click node_fxml_students "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/resources/com/edencoding/database/Students.db"
click node_fxml_student "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/models/Student.java"
click node_fxml_group "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/models/Studiengruppe.java"
click node_rich_entry "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java"
click node_student_table "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java"
click node_student_form "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/AddStudentWindow.java"
click node_rich_student_dao "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/dao/StudentDAO.java"
click node_group_dao "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/dao/StudiengruppeDAO.java"
click node_rich_student "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/models/Student.java"
click node_rich_group "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/models/Studiengruppe.java"
click node_rich_db_check "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/dao/Database.java"
click node_rich_students "https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/resources/com/edencoding/database/Students.db"

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_fxml_entry,node_fxml_view,node_fxml_controller,node_fxml_student_dao,node_fxml_db_check,node_fxml_students,node_fxml_student,node_fxml_group,node_user toneBlue
class node_rich_entry,node_student_table,node_student_form,node_rich_student_dao,node_group_dao toneAmber
class node_rich_student,node_rich_group,node_rich_db_check,node_rich_students toneMint
```

## Components

### FXML app

- [FXML app entry](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java): `sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java`
- [Student view](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/resources/com/edencoding/fxml/sqLiteView.fxml): `sqlite/src/main/resources/com/edencoding/fxml/sqLiteView.fxml`
- [View controller](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/controllers/Controller.java): `sqlite/src/main/java/com/edencoding/controllers/Controller.java`
- [Student DAO](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/dao/StudentDAO.java): `sqlite/src/main/java/com/edencoding/dao/StudentDAO.java`
- [DB connection](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/dao/Database.java): `sqlite/src/main/java/com/edencoding/dao/Database.java`
- [Students database](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/resources/com/edencoding/database/Students.db): `sqlite/src/main/resources/com/edencoding/database/Students.db`
- [Student model](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/models/Student.java): `sqlite/src/main/java/com/edencoding/models/Student.java`
- [Study-group model](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/src/main/java/com/edencoding/models/Studiengruppe.java): `sqlite/src/main/java/com/edencoding/models/Studiengruppe.java`

### CRUD app

- [CRUD app entry](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java): `sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java`
- [Student table](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java): `sqlite/sqlite/src/main/java/com/edencoding/SQLiteExampleApp.java`
- [Student form](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/AddStudentWindow.java): `sqlite/sqlite/src/main/java/com/edencoding/AddStudentWindow.java`
- [Student DAO](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/dao/StudentDAO.java): `sqlite/sqlite/src/main/java/com/edencoding/dao/StudentDAO.java`
- [Study-group DAO](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/dao/StudiengruppeDAO.java): `sqlite/sqlite/src/main/java/com/edencoding/dao/StudiengruppeDAO.java`

### Data layer

- [Student model](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/models/Student.java): `sqlite/sqlite/src/main/java/com/edencoding/models/Student.java`
- [Study-group model](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/models/Studiengruppe.java): `sqlite/sqlite/src/main/java/com/edencoding/models/Studiengruppe.java`
- [DB connection](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/java/com/edencoding/dao/Database.java): `sqlite/sqlite/src/main/java/com/edencoding/dao/Database.java`
- [Students database](https://github.com/cavkev/gruppenaufgabejavafx/blob/main/sqlite/sqlite/src/main/resources/com/edencoding/database/Students.db): `sqlite/sqlite/src/main/resources/com/edencoding/database/Students.db`

### Other components

- **User**

## Connections

- User → FXML app entry: launches
- FXML app entry → DB connection: checks connection
- FXML app entry → Student DAO: loads students
- FXML app entry → Student view: loads view
- User → Student view: uses
- User → CRUD app entry: launches
- CRUD app entry → DB connection: checks connection
- CRUD app entry → Student DAO: loads students
- CRUD app entry → Student table: opens
- Student table → Student form: opens form
- Student form → Study-group DAO: loads groups
- Student form → Student table: dispatches save
- Student table → Student DAO: inserts updates deletes
- Student table → Student DAO: reloads rows
- DB connection → Students database: opens connection
- DB connection → Students database: opens connection
