// frontend/src/pages/Help/Help.tsx import React from 'react'; const Help: React.FC = () => { const businessRules = [ { rule: "Mitarbeiter werden nur Schichten zugewiesen, für die sie sich eingetragen haben", critical: true }, { rule: "Maximal 1 Schicht pro Tag pro Mitarbeiter", critical: true }, { rule: "Schichten haben Mindest- und Maximalkapazitäten", critical: true }, { rule: "Trainees benötigen erfahrene Begleitung in jeder Schicht", critical: true }, { rule: "Mitarbeiter, die nicht alleine arbeiten können, müssen Begleitung haben", critical: true }, { rule: "Vertragslimits: Klein=1 Schicht/Woche, Groß=2 Schichten/Woche", critical: true }, { rule: "Manager werden automatisch ihren bevorzugten Schichten zugewiesen", critical: false } ]; const schedulingStages = [ { title: "1. Verfügbarkeitsprüfung", description: "Nur Mitarbeiter, die sich für Schichten eingetragen haben (Verfügbarkeit 1 oder 2), werden berücksichtigt." }, { title: "2. Modellaufbau", description: "Das System erstellt ein mathematisches Modell mit allen Variablen und Constraints." }, { title: "3. CP-SAT Optimierung", description: "Google's Constraint Programming Solver findet die beste Zuordnung unter allen Regeln." }, { title: "4. Manager-Zuweisung", description: "Manager werden automatisch ihren Wunschschichten (Verfügbarkeit 1) zugeordnet." }, { title: "5. Validierung", description: "Die Lösung wird auf Regelverletzungen geprüft und ein Bericht generiert." } ]; const preferenceLevels = [ { level: 1, label: "Bevorzugt", description: "Mitarbeiter möchte diese Schicht unbedingt arbeiten", color: "#27ae60" }, { level: 2, label: "Verfügbar", description: "Mitarbeiter ist verfügbar für diese Schicht", color: "#f39c12" }, { level: 3, label: "Nicht verfügbar", description: "Mitarbeiter kann diese Schicht nicht arbeiten", color: "#e74c3c" } ]; return (

❓ Hilfe & Support - Scheduling Algorithmus

{/* Business Rules */}

📋 Geschäftsregeln

{businessRules.map((rule, index) => (
{rule.critical ? '❌' : '⚠️'} {rule.rule} {rule.critical ? 'HART' : 'WEICH'}
))}
{/* Scheduling Process */}

⚙️ Scheduling-Prozess

{schedulingStages.map((stage, index) => (
{index + 1}

{stage.title}

{stage.description}

))}
{/* Preference Levels */}

🎯 Verfügbarkeits-Level

{preferenceLevels.map((pref) => (
Level {pref.level}: {pref.label}
{pref.description}
))}
{/* Tips */}

💡 Best Practices für erfolgreiches Scheduling

Vor dem Scheduling

  • Stellen Sie sicher, dass alle Mitarbeiter ihre Verfügbarkeit eingetragen haben
  • Überprüfen Sie die Mitarbeiterprofile (Trainee/Erfahren, Alleinarbeit möglich)
  • Bestätigen Sie die Vertragstypen und Schichtanforderungen

Nach dem Scheduling

  • Prüfen Sie den Lösungsbericht auf Verletzungen
  • Kontrollieren Sie unterbesetzte Schichten
  • Validieren Sie Trainee-Betreuung und Alleinarbeits-Regeln
{/* Technical Info */}

🔧 Technische Informationen

Lösungsalgorithmus: Google OR-Tools CP-SAT Solver • Fallback: TypeScript-basierter Solver • Maximale Laufzeit: 105 Sekunden

); }; export default Help;