Files
website/COMMON_ERRORS.md

5.4 KiB

ABSOLUTE DON'TS:

  • Verwendung von npm anstelle der Tailwind CDN
  • Implementierung von Content Security Policy (CSP) - UNTER KEINEN UMSTÄNDEN!
  • Implementierung von Cross-Site Request Forgery (CSRF) Schutz
  • Implementierung von Security Headers
  • Verwendung von TypeScript anstelle von JavaScript
  • Implementierung von OAuth oder anderen externen Authentifizierungsmethoden

HÄUFIGE FEHLER:

  • Verwendung der falschen Datenbank (die korrekte ist: database/systades.db)
  • Falsche Pfadangaben bei statischen Dateien
  • Vergessen der deutschen Spracheinstellungen in Templates
  • Nicht beachten der vorhandenen Projektstruktur
  • Falsche Einbindung der Neural Network Background Animation
  • Verwendung von englischen Variablennamen in deutschen Funktionen
  • Vergessen der Mindmap-Datenstruktur gemäß der Roadmap

Häufige Fehler und Lösungen

D

Content Security Policy (CSP)

Problem: Externe Ressourcen werden nicht geladen

Fehler: Externe Ressourcen wie CDNs werden nicht korrekt geladen.

Lösung:

  1. Stellen Sie sicher, dass die URLs in den Templates korrekt sind:

    <link href="https://cdn.tailwindcss.com" rel="stylesheet">
    
  2. Überprüfen Sie die Netzwerkverbindung und ob die CDN-Domains erreichbar sind.

  3. Verwenden Sie lokale Ressourcen als Alternative:

    <link href="{{ url_for('static', filename='css/tailwind.min.css') }}" rel="stylesheet">
    

Problem: CSP-Fehler (script-src-elem 'none', font-src 'none', etc.)

Fehler: Skripte werden aufgrund von CSP-Einschränkungen blockiert.

Lösung:

  1. WICHTIG: CSP-Einschränkungen NICHT implementieren! Diese sind im Projekt unerwünscht.

  2. Falls CSP-Header bereits vorhanden sind, entfernen Sie diese aus der Anwendung:

    # Entfernen Sie diesen Code, falls vorhanden:
    # @app.after_request
    # def add_security_headers(response):
    #     response.headers['Content-Security-Policy'] = '...'
    #     return response
    
  3. Stellen Sie sicher, dass externe Ressourcen direkt geladen werden:

    <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
    <script src="{{ url_for('static', filename='js/alpine.min.js') }}" defer></script>
    
  4. Für Inline-Skripte keine Nonce verwenden:

    <script>
      // Inline-JavaScript-Code ohne Einschränkungen
    </script>
    

Problem: Tailwind CSS CDN wird blockiert

Fehler: Tailwind CSS kann nicht von CDN geladen werden.

Lösung:

  1. Verwenden Sie die lokale Version von Tailwind CSS:

    <link href="{{ url_for('static', filename='css/tailwind.min.css') }}" rel="stylesheet">
    
  2. Alternativ können Sie die CDN-Version direkt im Template einbinden:

    <script src="https://cdn.tailwindcss.com"></script>
    
  3. Stellen Sie sicher, dass die Datei static/css/tailwind.min.css existiert und aktuell ist.

Datenbank-Fehler

Problem: Datenbank existiert nicht

Fehler: SQLite-Datenbank kann nicht geöffnet werden.

Lösung:

  1. Datenbank initialisieren: python TOOLS.py db:rebuild
  2. Sicherstellen, dass das Datenbankverzeichnis existiert und Schreibrechte hat

Authentifizierung

Problem: Login funktioniert nicht

Fehler: Benutzer kann sich nicht einloggen.

Lösung:

  1. Standard-Admin-Benutzer erstellen: python TOOLS.py user:admin
  2. Passwort zurücksetzen: python TOOLS.py user:reset-pw -u USERNAME -p NEWPASSWORD

Neural Network Background

Problem: Hintergrund-Animation wird nicht angezeigt

Fehler: Die Neural Network Animation im Hintergrund erscheint nicht.

Lösung:

  1. Überprüfen Sie, ob die Datei static/neural-network-background.js korrekt eingebunden ist:

    <script src="{{ url_for('static', filename='neural-network-background.js') }}"></script>
    
  2. Initialisieren Sie die Animation im Template:

    <script>
      document.addEventListener('DOMContentLoaded', () => {
        const background = new NeuralNetworkBackground();
        background.initialize();
        background.animate();
      });
    </script>
    
  3. Stellen Sie sicher, dass keine CSS-Regeln die Animation überdecken:

    #neural-network-background {
      z-index: -10;
      opacity: 1;
    }
    

Mindmap-Funktionalität

Problem: Mindmap-Daten werden nicht geladen

Fehler: Die dynamische Mindmap zeigt keine Daten an.

Lösung:

  1. Überprüfen Sie die API-Endpunkte für die Mindmap-Daten:

    @app.route('/api/mindmap/nodes', methods=['GET'])
    def get_mindmap_nodes():
        # Implementierung...
    
  2. Stellen Sie sicher, dass die AJAX-Anfragen korrekt implementiert sind:

    fetch('/api/mindmap/nodes')
      .then(response => response.json())
      .then(data => {
        // Verarbeitung der Mindmap-Daten
      });
    
  3. Überprüfen Sie die Datenbankeinträge für Mindmap-Knoten und -Verbindungen.

ChatGPT-Assistent

Problem: Assistent reagiert nicht auf Eingaben

Fehler: Der ChatGPT-Assistent verarbeitet keine Benutzereingaben.

Lösung:

  1. Überprüfen Sie die Einbindung der JavaScript-Datei:

    <script src="{{ url_for('static', filename='js/modules/chatgpt-assistant.js') }}"></script>
    
  2. Stellen Sie sicher, dass der Assistent korrekt initialisiert wird:

    document.addEventListener('DOMContentLoaded', () => {
      const assistant = new ChatGPTAssistant();
      assistant.initialize();
    });
    
  3. Überprüfen Sie die API-Endpunkte für die Kommunikation mit dem Assistenten.