README.md für Java/Eclipse Version
```markdown
# DÜSK - Düsseldorfer Schülerinventar (Java/Swing)
[](LICENSE)
[](https://openjdk.org/)
[](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](#-über-das-projekt)
- [Features](#-features)
- [Technische Voraussetzungen](#-technische-voraussetzungen)
- [Installation](#-installation)
- [Starten der Anwendung](#-starten-der-anwendung)
- [Bedienungsanleitung](#-bedienungsanleitung)
- [Technische Details](#-technische-details)
- [Projektstruktur](#-projektstruktur)
- [Kompilierung](#-kompilierung)
- [Fehlerbehandlung](#-fehlerbehandlung)
- [Lizenz](#-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. `File` → `Import` → `Existing Maven Projects`
2. Projektordner auswählen
3. `Finish`
#### IntelliJ IDEA:
1. `File` → `Open`
2. `pom.xml` auswählen
3. `Open as Project`
#### NetBeans:
1. `File` → `Open Project`
2. Projektordner auswählen
### 3. Abhängigkeiten herunterladen
```bash
mvn dependency:resolve
```
## 🚀 Starten der Anwendung
### Aus Eclipse:
- Rechtsklick auf `Main.java` → `Run As` → `Java 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
11
11
UTF-8
com.squareup.okhttp3
okhttp
4.12.0
com.google.code.gson
gson
2.10.1
org.jfree
jfreechart
1.5.4
```
### 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](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! 🚀