Inhalt

Aktueller Ordner: duesseldorfer-schuelerinventar-java-client
⬅ Übergeordnet

readme.md


README.md für Java/Eclipse Version

`markdown

DÜSK - Düsseldorfer Schülerinventar (Java/Swing)



![License](LICENSE)
![Java](https://openjdk.org/)
![Maven](https://maven.apache.org/)

Eine plattformunabhängige Desktop-Anwendung für das Düsseldorfer Schülerinventar (DÜSK) - ein Instrument zur Erfassung von Schülerkompetenzen durch Selbst- und Fremdeinschätzung.

📋 Inhaltsverzeichnis



- Über das Projekt
- Features
- Technische Voraussetzungen
- Installation
- Starten der Anwendung
- Bedienungsanleitung
- Technische Details
- Projektstruktur
- Kompilierung
- Fehlerbehandlung
- Lizenz

🎯 Über das Projekt



Das Düsseldorfer Schülerinventar (DÜSK) ist ein diagnostisches Instrument zur Erfassung von Schülerkompetenzen in sechs Bereichen:

1. Arbeitsverhalten - Zuverlässigkeit, Arbeitstempo, Arbeitsplanung, Organisation
2. Lernverhalten - Selbstständigkeit, Belastbarkeit, Konzentration
3. Sozialverhalten - Teamfähigkeit, Hilfsbereitschaft, Kommunikation
4. Fachkompetenz - Schreiben, Lesen, Mathematik, Naturwissenschaften
5. Personale Kompetenz - Eigeninitiative, Leistungsbereitschaft, Reflexion
6. Methodenkompetenz - Problemlösung, Abstraktion, Präsentation

Die Anwendung ermöglicht die Erfassung von Selbsteinschätzung (SE) und Fremdeinschätzung (FE) über 36 Items und berechnet daraus Profilwerte im Vergleich zu Normtabellen (Hauptschule/Förderschule).

✨ Features



| Funktion | Beschreibung |
|----------|--------------|
| 🔐 Login | Authentifizierung mit Benutzername/Passwort (Gastzugang: gast/gast) |
| 📋 Profilübersicht | Tabellarische Liste aller Profile mit Name, Gruppe und ID |
| ➕ Neues Profil | Vollständige Erfassung aller 36 Items für SE und FE |
| ✏️ Profil bearbeiten | Nachträgliche Änderung vorhandener Profile |
| 👁️ Profil anzeigen | Detaillierte Ansicht mit SE/FE-Tabellen, Diagrammen, Statistik und Items |
| 📊 Korrelation | Berechnung der Übereinstimmung zwischen SE und FE |
| 📈 Zeitreihe | Verlaufsdarstellung aller Profile einer Gruppe mit Diagramm |
| 👥 Gruppenverwaltung | Gruppen hinzufügen, löschen und zuordnen |
| 🖥️ Plattformunabhängig | Läuft auf Windows, macOS und Linux |

💻 Technische Voraussetzungen



- Java 11 oder höher (OpenJDK oder Oracle JDK)
- Maven 3.6 oder höher (für Kompilierung)
- Internetverbindung (für API-Zugriff auf https://paul-koop.org/api/)
- Betriebssystem: Windows, macOS, Linux (beliebig)

Verwendete Bibliotheken



| Bibliothek | Version | Zweck |
|------------|---------|-------|
| OkHttp | 4.12.0 | HTTP-Anfragen |
| Gson | 2.10.1 | JSON-Parsing |
| JFreeChart | 1.5.4 | Diagramme |
| Swing | (Java-Standard) | GUI |

📦 Installation



1. Repository klonen



`bash
git clone https://github.com/yourusername/duesk-java.git
cd duesk-java
`

2. Maven-Projekt importieren



#### Eclipse:
1. FileImportExisting Maven Projects
2. Projektordner auswählen
3. Finish

#### IntelliJ IDEA:
1. FileOpen
2. pom.xml auswählen
3. Open as Project

#### NetBeans:
1. FileOpen Project
2. Projektordner auswählen

3. Abhängigkeiten herunterladen



`bash
mvn dependency:resolve
`

🚀 Starten der Anwendung



Aus Eclipse:


- Rechtsklick auf Main.javaRun AsJava Application

Aus der Kommandozeile:



`bash

Kompilieren


mvn clean compile

Ausführen


mvn exec:java -Dexec.mainClass="com.duesk.Main"

Oder als JAR


mvn clean compile assembly:single
java -jar target/duesk-desktop-1.0-jar-with-dependencies.jar
`

Ausführbare JAR erstellen:



`bash
mvn clean package
java -jar target/duesk-desktop-1.0-jar-with-dependencies.jar
`

📖 Bedienungsanleitung



Login



| Feld | Standardwert | Beschreibung |
|------|--------------|--------------|
| Benutzername | gast | Ihr persönlicher Benutzername |
| Passwort | gast | Ihr persönliches Passwort |

> Hinweis: Bei der ersten Anmeldung mit neuen Zugangsdaten wird automatisch ein Benutzerkonto erstellt.

Hauptfenster



Toolbar-Buttons:
- Neues Profil - Erstellt ein neues Profil
- Aktualisieren - Lädt die Profilliste neu
- Gruppen - Öffnet den Gruppenmanager
- Abmelden - Beendet die Sitzung

Aktionen:
- Doppelklick auf ein Profil öffnet die Detailansicht
- Rechtsklick öffnet das Kontextmenü

Neues Profil / Profil bearbeiten



1. Profil-Informationen
- Name des Schülers/der Schülerin
- Auswahl einer vorhandenen Gruppe oder Erstellung einer neuen Gruppe

2. Selbsteinschätzung (36 Items)
- Bewertungsskala: 4 = trifft voll zu, 3 = trifft zu, 2 = trifft teilweise zu, 1 = trifft nicht zu

3. Fremdeinschätzung (36 Items)
- Gleiche Bewertungsskala wie bei Selbsteinschätzung

Profil anzeigen



Die Profilansicht ist in vier Reiter unterteilt:

#### 1. Selbsteinschätzung (SE)
- Tabelle mit X-Markierungen für die 6 Kompetenzen
- Liniendiagramm der Werte (JFreeChart)

#### 2. Fremdeinschätzung (FE)
- Gleiche Darstellung wie bei SE

#### 3. Statistik
- Korrelation zwischen SE und FE
- Übereinstimmung in Prozent
- Vergleichsdiagramm (SE vs. FE)
- Interpretation in verständlicher Sprache

#### 4. Alle Items
- Vollständige Liste aller 36 Items mit SE- und FE-Werten

Normauswahl: Oben rechts können Sie zwischen Hauptschule (HS) und Förderschule (FS) wechseln.

Zeitreihe



Zeigt alle Profile einer Gruppe mit:
- Liniendiagramm der ausgewählten Kompetenz (JFreeChart)
- Tabelle mit allen Kompetenzwerten

Gruppenverwaltung



- Hinzufügen - Neue Gruppe mit Namen erstellen
- Löschen - Vorhandene Gruppe entfernen

🔧 Technische Details



Berechnungslogik



Die Anwendung verwendet die gleiche Berechnungslogik wie die PHP-Webanwendung:

`java
// Summen für Kompetenzen
public int[] calculateSums(int[] items) {
sums[1] = items[0] + ... + items[9];
sums[2] = items[10] + ... + items[19];
sums[3] = items[20] + ... + items[27] + items[8] + items[9];
sums[4] = items[28] + ... + items[35];
// ... spezielle Berechnungen für Kompetenz 5 und 6
}

// Profilwerte (0-4) basierend auf Normtabellen
public int[] calculateProfileValues(int[] sums, double[][] norm) {
// Vergleich mit Normwerten
}

// Korrelation (Pearson)
public double calculateCorrelation(int[] seValues, int[] feValues) {
// Pearson-Korrelation zwischen SE und FE
}
`

Normwerte



Die Normwerte sind direkt im Code eingebettet:

| Normtabelle | Verwendung |
|-------------|------------|
| NORM_SE_HS | Selbsteinschätzung Hauptschule |
| NORM_FE_HS | Fremdeinschätzung Hauptschule |
| NORM_SE_FS | Selbsteinschätzung Förderschule |
| NORM_FE_FS | Fremdeinschätzung Förderschule |

📁 Projektstruktur



`
duesk_java/
├── pom.xml # Maven-Konfiguration
├── src/main/java/com/duesk/
│ ├── Main.java # Einstiegspunkt
│ ├── LoginDialog.java # Login-Dialog
│ ├── MainFrame.java # Hauptfenster
│ ├── ProfileDetailDialog.java # Profildetail mit Diagrammen
│ ├── ProfileEditDialog.java # Profil bearbeiten/neu
│ ├── GroupManagerDialog.java # Gruppenverwaltung
│ ├── TimeSeriesDialog.java # Zeitreihe
│ ├── api/
│ │ ├── ApiClient.java # API-Kommunikation (OkHttp)
│ │ ├── SessionManager.java # Session-Verwaltung
│ │ └── models/
│ │ ├── LoginResponse.java
│ │ ├── Profile.java
│ │ ├── Group.java
│ │ └── Norms.java
│ └── utils/
│ ├── Calculator.java # Berechnungslogik
│ └── ChartFactory.java # Diagramm-Factory
└── src/main/resources/
└── norms.properties # Normwerte (optional)
`

🔧 Kompilierung



Maven-Konfiguration (pom.xml)



`xml
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.4</version>
</dependency>
</dependencies>
`

Für verschiedene Betriebssysteme



Die JAR-Datei ist plattformunabhängig und läuft auf allen Systemen mit Java 11+.

⚠️ Fehlerbehandlung



| Fehler | Ursache | Lösung |
|--------|---------|--------|
| Connection refused | Server nicht erreichbar | Internetverbindung prüfen |
| Login failed | Falsche Zugangsdaten | Benutzername/Passwort prüfen |
| No profiles found | Keine Profile vorhanden | Neues Profil erstellen |
| ClassNotFoundException | Fehlende Bibliothek | Maven-Abhängigkeiten prüfen |

📄 Lizenz



Dieses Projekt ist unter der MIT-Lizenz lizenziert.

👨‍💻 Autor



Paul Koop M.A.
- Website: https://paul-koop.org

🙏 Danksagung



- OkHttp für zuverlässige HTTP-Kommunikation
- Gson für einfaches JSON-Parsing
- JFreeChart für professionelle Diagramme

---

Letzte Aktualisierung: April 2026
`

📦 Zusätzliche Dateien für GitHub



.gitignore für beide Projekte



`gitignore

Lazarus


*.exe
*.ppu
*.o
*.res
backup/
lib/
*.compiled

Java


target/
*.class
*.jar
.settings/
.project
.classpath
.DS_Store
`

LICENSE (MIT)



`markdown
MIT License

Copyright (c) 2026 Paul Koop M.A.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
`

Beide README-Dateien sind vollständig und bereit für GitHub! 🚀