Inhalt

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

readme.md


DÜSK - Düsseldorfer Schülerinventar (C#/.NET Windows Client)




Eine native Windows-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


🎯 Über das Projekt



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

| Kompetenz | Beschreibung |
|-----------|--------------|
| Arbeitsverhalten | Zuverlässigkeit, Arbeitstempo, Arbeitsplanung, Organisation |
| Lernverhalten | Selbstständigkeit, Belastbarkeit, Konzentration |
| Sozialverhalten | Teamfähigkeit, Hilfsbereitschaft, Kommunikation |
| Fachkompetenz | Schreiben, Lesen, Mathematik, Naturwissenschaften |
| Personale Kompetenz | Eigeninitiative, Leistungsbereitschaft, Reflexion |
| 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 (Pearson) |
| 📈 Zeitreihe | Verlaufsdarstellung aller Profile einer Gruppe mit Diagramm |
| 👥 Gruppenverwaltung | Gruppen hinzufügen, löschen und zuordnen |
| 🖥️ Windows-native GUI | Professionelles Design mit DataVisualization Charts |

💻 Technische Voraussetzungen



- Betriebssystem: Windows 10 oder höher
- .NET Runtime 8.0 oder höher
- Internetverbindung (für API-Zugriff auf https://paul-koop.org/api/)
- Bildschirmauflösung: mindestens 1024 x 768

Entwicklungsvoraussetzungen (für Kompilierung)



- Visual Studio 2022 (Community Edition kostenlos)
- .NET 8.0 SDK

Verwendete NuGet-Pakete



| Paket | Version | Zweck |
|-------|---------|-------|
| Newtonsoft.Json | 13.0.3 | JSON-Parsing |
| System.Net.Http.Json | 8.0.0 | HTTP-Kommunikation |
| WinForms.DataVisualization | 1.9.2 | Diagramme (Charts) |

📦 Installation



1. Repository klonen oder herunterladen



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

2. In Visual Studio öffnen



- Visual Studio 2022 starten
- DateiÖffnenProjekt/Projektmappe
- Duesk.sln auswählen

3. NuGet-Pakete wiederherstellen



- Rechtsklick auf die Projektmappe → NuGet-Pakete wiederherstellen
- Oder über Kommandozeile: dotnet restore

🚀 Starten der Anwendung



In Visual Studio:


- F5 (Debug starten) oder Strg+F5 (ohne Debugging)

Über Kommandozeile:



`bash
cd duesk_csharp/Duesk
dotnet run
`

Als ausführbare Datei:



`bash
dotnet publish -c Release -r win-x64 --self-contained true
cd bin/Release/net8.0-windows/win-x64/publish
Duesk.exe
`

📖 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:
| Button | Funktion |
|--------|----------|
| Neues Profil | Erstellt ein neues Profil |
| Aktualisieren | Lädt die Profilliste neu |
| Gruppen | Öffnet den Gruppenmanager |
| Abmelden | Beendet die Sitzung |

Aktionen in der Tabelle:
- Doppelklick → Profil anzeigen
- Rechtsklick → Kontextmenü mit Aktionen

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)

| Wert | Bedeutung |
|------|-----------|
| 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 (Werte 1-5)
- Liniendiagramm der Werte

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

#### 3. Statistik
- Korrelation - Statistischer Zusammenhang zwischen SE und FE
- Übereinstimmung - Prozentuale Übereinstimmung der 36 Items
- Vergleichsdiagramm - SE vs. FE im Überblick
- Interpretation - Verständliche Erklärung der Ergebnisse

#### 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 - die Profilwerte werden neu berechnet.

Zeitreihe



Zeigt alle Profile einer Gruppe mit:
- Liniendiagramm - Entwicklung einer ausgewählten Kompetenz über alle Profile
- Tabelle - Alle Kompetenzwerte im Überblick

Kompetenzauswahl: Über die ComboBox können Sie die anzuzeigende Kompetenz wählen.

Gruppenverwaltung



- Hinzufügen - Neue Gruppe mit Namen erstellen
- Löschen - Vorhandene Gruppe entfernen (nur möglich, wenn keine Profile mehr enthalten sind)

🔧 Technische Details



Berechnungslogik



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

`csharp
// Summen für Kompetenzen
public static int[] CalculateSums(int[] items)
{
var sums = new int[7];
sums[1] = items[0] + ... + items[9]; // Arbeitsverhalten
sums[2] = items[10] + ... + items[19]; // Lernverhalten
sums[3] = items[20] + ... + items[27] + items[8] + items[9]; // Sozialverhalten
sums[4] = items[28] + ... + items[35]; // Fachkompetenz
// ... spezielle Berechnungen für Kompetenz 5 und 6
return sums;
}

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

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

Normwerte



Die Normwerte sind direkt im Code eingebettet (Klasse Norms):

| Normtabelle | Verwendung |
|-------------|------------|
| NormSeHs | Selbsteinschätzung Hauptschule |
| NormFeHs | Fremdeinschätzung Hauptschule |
| NormSeFs | Selbsteinschätzung Förderschule |
| NormFeFs | Fremdeinschätzung Förderschule |

API-Kommunikation



Die Anwendung kommuniziert asynchron mit der PHP-API:

`csharp
// Login
var response = await ApiClient.LoginAsync(username, password);

// Profile abrufen
var profiles = await ApiClient.GetProfilesAsync();

// Profil speichern
var success = await ApiClient.CreateProfileAsync(profile);
`

📁 Projektstruktur



`
duesk_csharp/
├── Duesk.sln # Visual Studio Solution
├── Duesk/
│ ├── Duesk.csproj # Projektdatei
│ ├── Program.cs # Einstiegspunkt
│ ├── Forms/
│ │ ├── LoginForm.cs # Login-Dialog
│ │ ├── MainForm.cs # Hauptfenster mit Profilliste
│ │ ├── ProfileDetailForm.cs # Profilansicht mit Diagrammen
│ │ ├── ProfileEditForm.cs # Profil bearbeiten/neu
│ │ ├── GroupManagerForm.cs # Gruppenverwaltung
│ │ └── TimeSeriesForm.cs # Zeitreihe mit Diagramm
│ ├── Api/
│ │ ├── ApiClient.cs # HTTP-Kommunikation
│ │ ├── SessionManager.cs # Session-Verwaltung (Singleton)
│ │ └── Models/
│ │ ├── LoginResponse.cs # API-Antwort Login
│ │ ├── Profile.cs # Profil-Datenmodell
│ │ ├── Group.cs # Gruppen-Datenmodell
│ │ └── Norms.cs # Normwerte und Konstanten
│ └── Utils/
│ ├── Calculator.cs # Berechnungslogik
│ └── ChartHelper.cs # Diagramm-Hilfsklasse
└── packages/ # NuGet-Pakete (nach Wiederherstellung)
`

🔧 Kompilierung



Über Visual Studio 2022



1. Projektmappe öffnen: Duesk.sln
2. Build-Konfiguration wählen: Debug oder Release
3. Kompilieren: BuildProjektmappe erstellen (Strg+Shift+B)

Über .NET CLI



`bash

Debug-Version


dotnet build -c Debug

Release-Version


dotnet build -c Release

Veröffentlichen (selbstständige EXE)


dotnet publish -c Release -r win-x64 --self-contained true -o ./publish
`

Als Installer (MSI)



Mit Visual Studio Installer Projects kann ein MSI-Installer erstellt werden.

⚠️ Fehlerbehandlung



| Fehler | Ursache | Lösung |
|--------|---------|--------|
| HttpRequestException | Server nicht erreichbar | Internetverbindung prüfen |
| Login fehlgeschlagen | Falsche Zugangsdaten | Benutzername/Passwort prüfen |
| Keine Profile | Keine Daten vorhanden | Neues Profil erstellen |
| Chart nicht sichtbar | WinForms.DataVisualization fehlt | NuGet-Paket installieren |