README.md für Java/Eclipse Version ```markdown # DÜSK - Düsseldorfer Schülerinventar (Java/Swing) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Java](https://img.shields.io/badge/Java-11+-orange.svg)](https://openjdk.org/) [![Maven](https://img.shields.io/badge/Maven-3.6+-red.svg)](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! 🚀