173 lines
5.4 KiB
Markdown
173 lines
5.4 KiB
Markdown
# 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:
|
|
```html
|
|
<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:
|
|
```html
|
|
<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:
|
|
```python
|
|
# 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:
|
|
```html
|
|
<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:
|
|
```html
|
|
<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:
|
|
```html
|
|
<link href="{{ url_for('static', filename='css/tailwind.min.css') }}" rel="stylesheet">
|
|
```
|
|
|
|
2. Alternativ können Sie die CDN-Version direkt im Template einbinden:
|
|
```html
|
|
<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:
|
|
```html
|
|
<script src="{{ url_for('static', filename='neural-network-background.js') }}"></script>
|
|
```
|
|
|
|
2. Initialisieren Sie die Animation im Template:
|
|
```html
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const background = new NeuralNetworkBackground();
|
|
background.initialize();
|
|
background.animate();
|
|
});
|
|
</script>
|
|
```
|
|
|
|
3. Stellen Sie sicher, dass keine CSS-Regeln die Animation überdecken:
|
|
```css
|
|
#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:
|
|
```python
|
|
@app.route('/api/mindmap/nodes', methods=['GET'])
|
|
def get_mindmap_nodes():
|
|
# Implementierung...
|
|
```
|
|
|
|
2. Stellen Sie sicher, dass die AJAX-Anfragen korrekt implementiert sind:
|
|
```javascript
|
|
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:
|
|
```html
|
|
<script src="{{ url_for('static', filename='js/modules/chatgpt-assistant.js') }}"></script>
|
|
```
|
|
|
|
2. Stellen Sie sicher, dass der Assistent korrekt initialisiert wird:
|
|
```javascript
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const assistant = new ChatGPTAssistant();
|
|
assistant.initialize();
|
|
});
|
|
```
|
|
|
|
3. Überprüfen Sie die API-Endpunkte für die Kommunikation mit dem Assistenten. |