PRACTICE
The self-paced learning platform for project managers. 225 interactive simulations across 5 modules — Jira workflows, AI literacy, AI projects, workshops, and ethics. Instead of reading theory: actually practice the craft.
Four stops. From curriculum to active simulation.
Every module is built so that by the end of a section, learners haven't read — they've done.
The Plan
Five modules with 45 self-contained sections and 225 simulations. Learners navigate on their own instead of through a fixed course, and the entire structure is visible at a glance.
How a Section Works
Each section brings concept, example, and active practice onto a single page — no video loops. It ends with a simulation, not the next block of reading.
Tokenization — Wie Text in Zahlen wird
Ein Sprachmodell versteht keine Wörter — es versteht nur Zahlen. Bevor Text verarbeitet werden kann, muss er in eine Sequenz von Zahlen umgewandelt werden. Diesen Prozess nennt man Tokenization.
Moderne Modelle nutzen Byte Pair Encoding — weder ganze Wörter noch einzelne Buchstaben, sondern Subwort-Einheiten, die aus dem Trainingsdatensatz gelernt wurden.
- →Abrechnung pro Token — direkte Kostenauswirkung
- →Context Window zählt Tokens, nicht Wörter
- →Deutsch ≈ 30 % höhere Token-Kosten als Englisch
Worauf basiert Byte Pair Encoding?
Workflows Are State Machines
Instead of memorizing valid status transitions, learners build the workflow themselves: clicking together the 8 correct transitions out of 20 possible ones, with instant feedback on every mistake.
🔀 Simulation: Workflow Builder
Definiere gültige Status-Übergänge für einen Jira-Workflow. Klicke auf die Zellen, um Übergänge zu aktivieren.
Unten siehst du eine Matrix aller möglichen Übergänge zwischen Status. Aktiviere die Übergänge, die in einem sinnvollen Workflow erlaubt sein sollten. Maximal 2 Fehler sind erlaubt.
Tipp: Überlege, welche Status-Übergänge in der Praxis Sinn machen und welche Schritte nicht übersprungen werden sollten.
| Von ↓ / Nach → | Open | In Progress | In Review | Done | Blocked |
|---|---|---|---|---|---|
| Open | — | ||||
| In Progress | — | ||||
| In Review | — | ||||
| Done | — | ||||
| Blocked | — |
Why Does the Model Make This Decision?
The decision tree makes the logic visible. Learners click through the paths and see where the model branches and why it branches there.
🎯 Simulation: PM-Entscheidungsbaum
Navigiere durch realistische PM-Szenarien. Deine Entscheidungen haben Konsequenzen.
Es ist Mittwoch in Woche 2 eines 2-Wochen-Sprints. Das Team meldet: 3 von 8 Stories sind noch nicht begonnen, und ein kritischer Bug wurde gerade entdeckt.
Sprint Goal: "Checkout-Flow für das MVP fertigstellen". Die 3 nicht begonnenen Stories sind: Newsletter-Integration (3 SP), Warenkorb-Validierung (5 SP), Bestellbestätigung per E-Mail (3 SP).
Was tust du?
Interactive Simulations
Learning Modules
Sections
Largest Component (LOC)
The WorkflowBuilder in Code
Status transitions, decision trees, and stakeholder quadrants all run as interactive simulations through the same interface. 225 challenges, one pattern.
// Valid state transitions — the core logic
const correctTransitions: Record<Status, Status[]> = {
Open: ['In Progress', 'Blocked'],
'In Progress': ['In Review', 'Blocked'],
'In Review': ['Done', 'In Progress'],
Done: [],
Blocked: ['Open', 'In Progress'],
};
// User clicks a transition — validate it
const isValid = correctSet.has(`${from}→${to}`);Three Decisions That Carry the Platform
- →One type for every simulation
Every simulation is a
ComponentType<{ onComplete: () => void }>, so every interactive component fits the same grid. 225 simulations, one interface. - →Modules separated via lazy-loading
Each module loads independently via React Router
lazy(); with 5 modules × 9 sections × 5 simulations, the bundle would otherwise grow too large. - →Progress in LocalStorage
ProgressContext stores the status per simulation, with no backend. You pick up right where you left off.