Inhalt
Aktueller Ordner:
duesseldorfer-schuelerinventar-csharp-clientreadme.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
`bashgit clone https://github.com/yourusername/duesk-csharp.git
cd duesk-csharp
`2. In Visual Studio öffnen
- Visual Studio 2022 starten
-
Datei → Öffnen → Projekt/Projektmappe-
Duesk.sln auswählen3. 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:
`bashcd duesk_csharp/Duesk
dotnet run
`Als ausführbare Datei:
`bashdotnet 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.sln2. Build-Konfiguration wählen:
Debug oder Release3. Kompilieren:
Build → Projektmappe erstellen (Strg+Shift+B)Über .NET CLI
`bashDebug-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 |