161 lines
6.7 KiB
Markdown
161 lines
6.7 KiB
Markdown
|
|
# Fachliche Architektur — Assignment Monitor
|
|||
|
|
|
|||
|
|
## Zweck und Kontext
|
|||
|
|
|
|||
|
|
Assignment Monitor ist eine Progressive Web App (PWA) zur **Live-Begleitung und Bewertung von Capgemini-Trainees** (Institutees) während ihrer Kunden-Assignments. Die App wird vom jeweiligen Lead (Führungskraft / Mentor) auf dem Smartphone genutzt, um:
|
|||
|
|
|
|||
|
|
- Kundentermine strukturiert zu protokollieren
|
|||
|
|
- Beobachtungen und Bewertungen in Echtzeit zu erfassen
|
|||
|
|
- Am Ende eines Assignments ein qualifiziertes Feedback vorzubereiten
|
|||
|
|
|
|||
|
|
**Nutzer:** Lars Stommer (Capgemini Management Consultant Trainee Program Lead)
|
|||
|
|
**Sprache der App:** Deutsch (Bedienoberfläche), Englisch (Rating-Labels)
|
|||
|
|
**Datenschutz:** Alle Daten bleiben lokal im Browser (IndexedDB). Kein Public Cloud Upload.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Fachliche Entitätenhierarchie
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
AssignmentType ← Konfiguration (z.B. "Case Interview")
|
|||
|
|
└── PhaseTemplate[] ← Definierter Meeting-Flow des Typs
|
|||
|
|
└── criteriaIds: FeedbackCriterionItem[] ← Welche Kriterien gelten für diesen Typ
|
|||
|
|
|
|||
|
|
Assignment ← Ein konkretes Kundenprojekt
|
|||
|
|
└── AssignmentType ← Zugeordneter Typ
|
|||
|
|
└── Institutees: Consultant[] ← Begleitete Berater (1–n)
|
|||
|
|
└── MeetingInstance[] ← Durchgeführte Meetings je Phase
|
|||
|
|
|
|||
|
|
MeetingInstance ← Ein konkreter Termin (z.B. "Briefing Call #1")
|
|||
|
|
└── PhaseTemplate ← Welche Phase des Assignments
|
|||
|
|
└── ConversationEntry[] ← Zeitleiste: wer spricht wann
|
|||
|
|
└── Assessment[] ← Gesamtbewertung pro Institutee am Ende
|
|||
|
|
|
|||
|
|
ConversationEntry ← Ein Gesprächsbeitrag eines Institutees
|
|||
|
|
└── ConversationSkillScore[] ← Kategorie-Schnellbewertung (während des Beitrags)
|
|||
|
|
|
|||
|
|
FeedbackDimension ← Übergeordnete Dimension für das Assignment-Feedback
|
|||
|
|
└── FeedbackCategory[] ← Kategorie (z.B. "Kommunikationsfähigkeit")
|
|||
|
|
└── FeedbackCriterionItem[] ← Einzelnes Kriterium (z.B. "To the point")
|
|||
|
|
|
|||
|
|
AssignmentFeedback ← Strukturiertes Abschluss-Feedback pro Institutee
|
|||
|
|
└── FeedbackCategoryRating[] ← Bewertung je Kategorie
|
|||
|
|
└── FeedbackDimensionText[] ← Freitext Achievements + Development Needs je Dimension
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Meeting-Phasen
|
|||
|
|
|
|||
|
|
Jeder AssignmentTyp definiert einen geordneten Flow von PhaseTemplates. Die drei vordefinierten Typen haben folgende Phasen:
|
|||
|
|
|
|||
|
|
| Phase | Mit wem | Wdh. | Protokoll | Bewertung | Generisch | Case | Pitch |
|
|||
|
|
|---|---|:-:|:-:|:-:|:-:|:-:|:-:|
|
|||
|
|
| Pre-Briefing (Lead) | Lead | — | — | — | ✓ | ✓ | ✓ |
|
|||
|
|
| Briefing (Kunde) | Kunde | — | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|||
|
|
| Alignment Call | Kunde | **✓** | ✓ | ✓ | ✓ | — | ✓ |
|
|||
|
|
| Pre-Delivery (Lead) | Lead | — | — | — | ✓ | — | ✓ |
|
|||
|
|
| Delivery / Pitch | Kunde | — | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|||
|
|
| Feedback Call (Kunde) | Kunde | — | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|||
|
|
| Feedback Call (Lead) | Lead | — | — | — | ✓ | ✓ | ✓ |
|
|||
|
|
|
|||
|
|
Wiederholbare Phasen (z.B. Alignment Calls) werden mit fortlaufendem `phaseIndex` und Dateinamen-Suffix `-#2`, `-#3` etc. gekennzeichnet.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Bewertungssystem
|
|||
|
|
|
|||
|
|
### Skala
|
|||
|
|
|
|||
|
|
| Label | Kürzel | Farbe | Numerischer Wert |
|
|||
|
|
|---|---|---|:-:|
|
|||
|
|
| N/A | N/A | grau | 0 |
|
|||
|
|
| Not Client Ready | Not | rot | 1 |
|
|||
|
|
| Partially Client Ready | Partially | orange | 2 |
|
|||
|
|
| Nearly Client Ready | Nearly | hellgrün | 3 |
|
|||
|
|
| Client Ready | Fully | dunkelgrün | 4 |
|
|||
|
|
|
|||
|
|
`N/A` gilt als „nicht gesetzt" und wird aus allen Berechnungen ausgeschlossen.
|
|||
|
|
|
|||
|
|
### Aggregationslogik
|
|||
|
|
|
|||
|
|
**Gewichteter Durchschnitt** über alle Kriterien mit `weight`-Faktor (×1–×5):
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
avg = Σ(score_i × weight_i) / Σ(weight_i)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Mapping auf Rating:
|
|||
|
|
- `avg < 1.5` → Not
|
|||
|
|
- `avg < 2.5` → Partially
|
|||
|
|
- `avg < 3.5` → Nearly
|
|||
|
|
- `avg ≥ 3.5` → Fully
|
|||
|
|
|
|||
|
|
### Zwei Assessment-Ebenen
|
|||
|
|
|
|||
|
|
1. **Kategorie-Level (live, während Gesprächsbeitrag):** `ConversationSkillScore.criteriaId` → `FeedbackCategory.id`
|
|||
|
|
Schnelle Bewertung während ein Institutee spricht. Optional, da im Hektik oft nicht machbar.
|
|||
|
|
|
|||
|
|
2. **Kriterium-Level (Gesamtbewertung am Ende des Meetings):** `Assessment.criteriaId` → `FeedbackCriterionItem.id`
|
|||
|
|
Detaillierte Bewertung je Kriterium nach dem Meeting. Grundlage für die Kategorie-Farbkodierung im Gesamtbewertungs-Tab.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Feedback-Struktur (Abschluss-Feedback)
|
|||
|
|
|
|||
|
|
Die Feedback-Struktur ist vollständig konfigurierbar und von der Meeting-Bewertungsstruktur **getrennt**. Sie spiegelt das Capgemini-Kompetenzmodell wider:
|
|||
|
|
|
|||
|
|
| Dimension | Kategorien (Beispiele) |
|
|||
|
|
|---|---|
|
|||
|
|
| Mindset, Commitment, Collaboration | Persönliche Einstellung, Professionalität, Commitment, Kommunikationsfähigkeit, Zusammenarbeit |
|
|||
|
|
| Running Our Projects | Ergebnisverantwortung, Arbeitsstil, Kundenmanagement, Lieferzeiten |
|
|||
|
|
| Growing our People | Networking, Learning und Development |
|
|||
|
|
| Functional & Technical Skills | Qualität des Inhalts, Inhaltliche Vollständigkeit, Qualität der Unterlage, Prozesstreue |
|
|||
|
|
| Innovation und Asset Development | Innovation |
|
|||
|
|
|
|||
|
|
Das Abschluss-Feedback (`AssignmentFeedbackPage`) erlaubt:
|
|||
|
|
- Manuelle Bewertung je Kategorie (N/A bis Fully)
|
|||
|
|
- KI-gestützten Textentwurf via OpenRouter API (GPT-4o, Claude, Gemini)
|
|||
|
|
- Manuell editierbare Textfelder „Achievements" und „Development Needs" je Dimension
|
|||
|
|
- Status-Toggle: Entwurf → Final
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Protokoll-Notation
|
|||
|
|
|
|||
|
|
Im Gesprächsprotokoll unterstützt die App eine Schnellnotations-Syntax, die farbig gerendert wird:
|
|||
|
|
|
|||
|
|
| Symbol | Bedeutung | Darstellung |
|
|||
|
|
|---|---|---|
|
|||
|
|
| `+` | Positiv | grün |
|
|||
|
|
| `(+)` | Positiv mit Abstrichen | grün (gedimmt) |
|
|||
|
|
| `!` | Negativ | rot |
|
|||
|
|
| `(!)` | Negativ mit Abstrichen | rot (gedimmt) |
|
|||
|
|
| `>` | Einwand / Kundeninput | blau |
|
|||
|
|
| `[…]` | Slide-/Dokument-Referenz | grau |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Export-Funktionen
|
|||
|
|
|
|||
|
|
### Meeting-Export
|
|||
|
|
**Format:** `{AssignmentNummer}_{Datum}_{PhasenLabel}{-#Nr}.{md|json}`
|
|||
|
|
**Beispiel:** `CGI-2024-001_02-07-2026_Alignment Call-2.md`
|
|||
|
|
|
|||
|
|
- **Markdown:** Lesbare Dokumentation mit Protokoll, Bewertungen und Notizen
|
|||
|
|
- **JSON:** Vollständige Datensicherung eines einzelnen Meetings
|
|||
|
|
|
|||
|
|
### Datenbank-Backup
|
|||
|
|
Vollständiger Export aller Tabellen als JSON-Datei. Import löscht alle Daten und stellt den gesicherten Stand wieder her. Backup sollte nach jedem Meeting erstellt werden.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Datenschutz und Datenhaltung
|
|||
|
|
|
|||
|
|
- Alle Daten bleiben im **lokalen Browser-IndexedDB** (Dexie.js)
|
|||
|
|
- Kein Backend, kein Cloud-Sync
|
|||
|
|
- Personenbezogene Daten: Namen von Institutees, Kundennamen, Gesprächsnotizen
|
|||
|
|
- GDPR-relevant: Backup-Dateien müssen sicher (OneDrive, lokaler Ordner) aufbewahrt werden
|
|||
|
|
- **Kein Public Cloud Storage** erlaubt (explizite Anforderung)
|
|||
|
|
- Zukünftig geplant: SQLite WASM + OPFS für robustere lokale Speicherung ohne Installation
|