Overhaul website to modernize design, integrate SVG visualizations, and enhance KI functionality; update documentation for MindMapProjekt.
This commit is contained in:
10
Dockerfile
10
Dockerfile
@@ -1,10 +0,0 @@
|
|||||||
FROM python:3.9-slim-buster
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
COPY requirements.txt requirements.txt
|
|
||||||
RUN pip install -r requirements.txt
|
|
||||||
|
|
||||||
COPY website .
|
|
||||||
|
|
||||||
CMD ["python", "app.py"]
|
|
||||||
180
README.md
180
README.md
@@ -1,94 +1,134 @@
|
|||||||
# MindMap Wissensnetzwerk
|
# MindMapProjekt - Roadmap
|
||||||
|
|
||||||
Eine interaktive Plattform zum Visualisieren, Erforschen und Teilen von Wissen mit integriertem ChatGPT-Assistenten.
|
## Projektübersicht
|
||||||
|
Das MindMapProjekt ist eine interaktive Plattform zum Visualisieren, Erforschen und Teilen von Wissen. Das Projekt wird umfassend überarbeitet, um ein modernes, benutzerfreundliches Design und erweiterte Funktionalitäten zu bieten.
|
||||||
|
|
||||||
## Features
|
## Technischer Stack
|
||||||
|
- **Backend**: Python/Flask
|
||||||
|
- **Frontend**:
|
||||||
|
- Tailwind CSS für moderne UI
|
||||||
|
- SVG-Bibliotheken für Visualisierungen (D3.js)
|
||||||
|
- JavaScript/Alpine.js für interaktive Komponenten
|
||||||
|
- **Datenbank**: SQLite mit SQLAlchemy
|
||||||
|
- **KI-Integration**: OpenAI API für intelligente Assistenz
|
||||||
|
|
||||||
- Interaktive Mindmap zur Visualisierung von Wissensverbindungen
|
## Installation und Verwendung
|
||||||
- Gedanken mit verschiedenen Beziehungstypen verknüpfen
|
|
||||||
- Suchfunktion für Gedanken und Verbindungen
|
|
||||||
- Bewertungssystem für Gedanken
|
|
||||||
- Dark/Light Mode
|
|
||||||
- **Integrierter KI-Assistent** mit OpenAI GPT-Integration
|
|
||||||
|
|
||||||
## Installation
|
### Installation
|
||||||
|
1. Repository klonen
|
||||||
|
2. Virtuelle Umgebung erstellen: `python -m venv venv`
|
||||||
|
3. Virtuelle Umgebung aktivieren:
|
||||||
|
- Windows: `venv\Scripts\activate`
|
||||||
|
- Unix/MacOS: `source venv/bin/activate`
|
||||||
|
4. Abhängigkeiten installieren: `pip install -r requirements.txt`
|
||||||
|
5. Datenbank initialisieren: `python TOOLS.py db:rebuild`
|
||||||
|
6. Admin-Benutzer erstellen: `python TOOLS.py user:admin`
|
||||||
|
7. Server starten: `python TOOLS.py server:run`
|
||||||
|
|
||||||
### Einfache Installation
|
### Standardbenutzer
|
||||||
|
- **Admin-Benutzer**: Username: `admin` / Passwort: `admin`
|
||||||
|
- **Testbenutzer**: Username: `user` / Passwort: `user`
|
||||||
|
|
||||||
Führe im übergeordneten Verzeichnis folgendes aus:
|
### Verwaltungswerkzeuge mit TOOLS.py
|
||||||
|
Das Projekt enthält ein zentrales Verwaltungsskript `TOOLS.py`, das verschiedene Hilfsfunktionen bietet:
|
||||||
|
|
||||||
```
|
#### Datenbankverwaltung
|
||||||
python setup.py
|
- `python TOOLS.py db:fix` - Reparieren der Datenbankstruktur
|
||||||
```
|
- `python TOOLS.py db:rebuild` - Datenbank neu aufbauen (löscht alle Daten!)
|
||||||
|
- `python TOOLS.py db:test` - Datenbankverbindung und Modelle testen
|
||||||
|
- `python TOOLS.py db:stats` - Datenbankstatistiken anzeigen
|
||||||
|
|
||||||
Dies erstellt eine virtuelle Umgebung, installiert alle Abhängigkeiten und erstellt die CSS-Dateien mit Tailwind.
|
#### Benutzerverwaltung
|
||||||
|
- `python TOOLS.py user:list` - Alle Benutzer anzeigen
|
||||||
|
- `python TOOLS.py user:create -u USERNAME -e EMAIL -p PASSWORD [-a]` - Neuen Benutzer erstellen
|
||||||
|
- `python TOOLS.py user:admin` - Admin-Benutzer erstellen (admin/admin)
|
||||||
|
- `python TOOLS.py user:reset-pw -u USERNAME -p NEWPASSWORD` - Benutzerpasswort zurücksetzen
|
||||||
|
- `python TOOLS.py user:delete -u USERNAME` - Benutzer löschen
|
||||||
|
|
||||||
### Manuelle Installation
|
#### Serververwaltung
|
||||||
|
- `python TOOLS.py server:run [--host HOST] [--port PORT] [--no-debug]` - Entwicklungsserver starten
|
||||||
|
|
||||||
1. Repository klonen:
|
Für detaillierte Hilfe: `python TOOLS.py -h`
|
||||||
```
|
|
||||||
git clone <repository-url>
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Python-Abhängigkeiten installieren:
|
## Roadmap der Überarbeitung
|
||||||
```
|
|
||||||
cd website
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Environment-Variablen konfigurieren:
|
### Phase 1: Grundlegende Infrastruktur ✅
|
||||||
```
|
- [x] Bestandsaufnahme des aktuellen Projekts
|
||||||
cp example.env .env
|
- [x] Erstellung der Roadmap
|
||||||
```
|
- [x] Aktualisierung der Abhängigkeiten
|
||||||
Bearbeite die `.env`-Datei und füge deinen OpenAI API-Schlüssel ein.
|
- [x] Integration von Tailwind CSS
|
||||||
|
- [x] Einrichtung der SVG-Bibliotheken (D3.js)
|
||||||
|
- [x] Favicon erstellen
|
||||||
|
- [x] Setup-Skript für einfache Installation
|
||||||
|
|
||||||
4. CSS mit Tailwind erstellen:
|
### Phase 2: Design-Überarbeitung 🔄
|
||||||
```
|
- [x] Implementierung des Dark Mode
|
||||||
python build_css.py
|
- [x] Erstellung eines modernen, minimalistischen UI mit Tech-Ästhetik
|
||||||
```
|
- [x] Responsive Design für alle Geräte
|
||||||
|
- [ ] Gestaltung der Landing Page mit großer Typografie
|
||||||
|
|
||||||
5. Datenbank initialisieren:
|
### Phase 3: Mindmap-Funktionalitäten 🔄
|
||||||
```
|
- [x] Verbesserte Visualisierung mit SVG und D3.js
|
||||||
python init_db.py
|
- [x] Implementierung der Mouseover-Funktion
|
||||||
```
|
- [x] Entwicklung der Suchfunktion für Knoten
|
||||||
|
- [ ] Tagging-System für Inhalte
|
||||||
|
- [ ] Quellenmanagement und -verlinkung
|
||||||
|
- [ ] Upload-Funktionalität an Knotenpunkten
|
||||||
|
|
||||||
6. Anwendung starten:
|
### Phase 4: Kernseitenentwicklung
|
||||||
```
|
- [ ] Überarbeitung der Startseite mit neuen Features
|
||||||
python run.py
|
- [ ] Entwicklung der "Wer sind wir?"-Seite
|
||||||
```
|
- [ ] Implementierung von Impressum und Datenschutzerklärung
|
||||||
|
- [ ] Erstellung der Kontaktseite mit FAQs
|
||||||
|
- [ ] Überarbeitung des Benutzerprofilbereichs
|
||||||
|
|
||||||
## Entwicklung
|
### Phase 5: Community-Features
|
||||||
|
- [ ] Entwicklung des Autorenbereichs
|
||||||
|
- [ ] Implementierung von Community-Bereichen für Themenbereiche
|
||||||
|
- [ ] Verbesserter Kommentarbereich
|
||||||
|
- [ ] Benutzerrechtemanagement
|
||||||
|
|
||||||
Für die Entwicklung mit automatischem CSS-Reload:
|
### Phase 6: KI-Integration
|
||||||
|
- [ ] Implementierung des Frage-Antwort-Systems
|
||||||
|
- [ ] KI-generierte Themeneinleitungen
|
||||||
|
- [ ] Intelligente Suchunterstützung
|
||||||
|
- [ ] Geführte Pfade durch Themenbereiche
|
||||||
|
- [ ] Vorgeschlagene Chat-Möglichkeiten
|
||||||
|
|
||||||
```
|
### Phase 7: Benutzerprofilfunktionen
|
||||||
python dev.py
|
- [ ] Speichern von Thematiken
|
||||||
```
|
- [ ] Persönliche Mindmap/Pinboard
|
||||||
|
- [ ] Beitragsmanagement
|
||||||
|
- [ ] Benutzerstatistiken und -aktivitäten
|
||||||
|
|
||||||
Dieser Befehl startet sowohl den Flask-Server als auch den Tailwind CSS-Watcher, der CSS bei Änderungen automatisch neu generiert.
|
### Phase 8: Testing und Optimierung
|
||||||
|
- [ ] Umfassende Tests aller Funktionen
|
||||||
|
- [ ] Performance-Optimierung
|
||||||
|
- [ ] SEO-Implementierung
|
||||||
|
- [ ] Barrierefreiheit prüfen und verbessern
|
||||||
|
|
||||||
## Verwendung des KI-Assistenten
|
### Phase 9: Dokumentation und Einführung
|
||||||
|
- [ ] Erstellung von Benutzeranleitungen
|
||||||
|
- [ ] Entwicklerdokumentation
|
||||||
|
- [ ] Administratorenhandbuch
|
||||||
|
- [ ] Guided Tour für neue Benutzer
|
||||||
|
|
||||||
Der KI-Assistent ist über folgende Wege zugänglich:
|
## Aktueller Status
|
||||||
|
- **Phase 1**: ✅ Abgeschlossen
|
||||||
|
- **Phase 2**: 🔄 In Bearbeitung (75% abgeschlossen)
|
||||||
|
- **Phase 3**: 🔄 In Bearbeitung (50% abgeschlossen)
|
||||||
|
|
||||||
1. **Schwebende Schaltfläche**: In der unteren rechten Ecke der Webseite ist eine Roboter-Schaltfläche, die den Assistenten öffnet.
|
## Aktuelle Fortschritte
|
||||||
2. **Navigation**: In der Hauptnavigation gibt es ebenfalls eine Schaltfläche mit Roboter-Symbol.
|
- Grundlegende UI modernisiert mit Tailwind CSS und Dark Mode
|
||||||
3. **Startseite**: Im "KI-Assistent"-Abschnitt auf der Startseite gibt es einen "KI-Chat starten"-Button.
|
- Neues Favicon für bessere visuelle Identität erstellt
|
||||||
|
- Setup-Prozess vereinfacht mit einem Shell-Skript
|
||||||
|
- Mindmap-Visualisierung komplett überarbeitet mit D3.js für eine interaktivere Erfahrung
|
||||||
|
- Responsive Design für optimale Darstellung auf allen Geräten
|
||||||
|
|
||||||
Der Assistent kann bei folgenden Aufgaben helfen:
|
## Nächste Schritte
|
||||||
|
- Fertigstellung der Landing Page
|
||||||
|
- Erstellung der "Wer sind wir?"-Seite
|
||||||
|
- Implementierung des Tagging-Systems für Gedanken
|
||||||
|
- Verbesserung der Gedankenansicht im Mindmap-Bereich
|
||||||
|
|
||||||
- Erklärung von Themen und Konzepten
|
*Zuletzt aktualisiert: 01.06.2024*
|
||||||
- Suche nach Verbindungen zwischen Gedanken
|
|
||||||
- Beantwortung von Fragen zur Plattform
|
|
||||||
- Vorschläge für neue Gedankenverbindungen
|
|
||||||
|
|
||||||
## Technologie-Stack
|
|
||||||
|
|
||||||
- **Backend**: Flask, SQLAlchemy
|
|
||||||
- **Frontend**: HTML, CSS, JavaScript, Tailwind CSS (ohne npm), Alpine.js
|
|
||||||
- **KI**: OpenAI GPT API
|
|
||||||
- **Datenbank**: SQLite (Standard), kann auf andere Datenbanken umgestellt werden
|
|
||||||
|
|
||||||
## Konfiguration
|
|
||||||
|
|
||||||
Die Anwendung kann über Umgebungsvariablen konfiguriert werden. Siehe `example.env` für verfügbare Optionen.
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,33 +0,0 @@
|
|||||||
@echo off
|
|
||||||
echo Copying network image to website/static/network-bg.jpg...
|
|
||||||
|
|
||||||
if not exist "website\static" (
|
|
||||||
echo Error: website/static directory does not exist.
|
|
||||||
echo Make sure you are running this script from the main project directory.
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%~1"=="" (
|
|
||||||
echo Usage: copy-network-image.bat [path_to_image]
|
|
||||||
echo Example: copy-network-image.bat d2efd014-1325-471f-b9a7-90d025eb81d6.png
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
if not exist "%~1" (
|
|
||||||
echo Error: The specified image file "%~1" does not exist.
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
copy /Y "%~1" "website\static\network-bg.jpg" > nul
|
|
||||||
|
|
||||||
if %errorlevel% equ 0 (
|
|
||||||
echo Success! The image has been copied to website/static/network-bg.jpg
|
|
||||||
echo Please restart the Flask server to see the changes.
|
|
||||||
) else (
|
|
||||||
echo Error: Failed to copy the image.
|
|
||||||
)
|
|
||||||
|
|
||||||
pause
|
|
||||||
86
deploy.py
86
deploy.py
@@ -1,86 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import shutil
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
def main():
|
|
||||||
"""Deploy the website on a server"""
|
|
||||||
print("Deploying the website on the server...")
|
|
||||||
|
|
||||||
# Get the directory where deploy.py is located (project root)
|
|
||||||
project_root = Path(__file__).resolve().parent
|
|
||||||
website_dir = project_root / "website"
|
|
||||||
|
|
||||||
# Check if virtual environment exists, create if not
|
|
||||||
venv_dir = project_root / "venv"
|
|
||||||
if not venv_dir.exists():
|
|
||||||
print("Creating virtual environment...")
|
|
||||||
subprocess.run([sys.executable, "-m", "venv", str(venv_dir)], check=True)
|
|
||||||
|
|
||||||
# Determine Python and pip paths based on OS
|
|
||||||
if os.name == 'nt': # Windows
|
|
||||||
python = venv_dir / "Scripts" / "python"
|
|
||||||
pip = venv_dir / "Scripts" / "pip"
|
|
||||||
else: # Unix-like
|
|
||||||
python = venv_dir / "bin" / "python"
|
|
||||||
pip = venv_dir / "bin" / "pip"
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
print("Installing dependencies...")
|
|
||||||
subprocess.run([str(pip), "install", "-r", str(website_dir / "requirements.txt")], check=True)
|
|
||||||
subprocess.run([str(pip), "install", "gunicorn"], check=True)
|
|
||||||
|
|
||||||
# Build CSS
|
|
||||||
print("Building CSS with Tailwind...")
|
|
||||||
subprocess.run([str(python), str(website_dir / "build_css.py")], check=True)
|
|
||||||
|
|
||||||
# Create a systemd service file
|
|
||||||
service_file = """[Unit]
|
|
||||||
Description=MindMap Wissensnetzwerk
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=www-data
|
|
||||||
WorkingDirectory={website_dir}
|
|
||||||
Environment="PATH={venv_bin}"
|
|
||||||
ExecStart={gunicorn} --workers 3 --bind 0.0.0.0:5000 --log-level info 'run:app'
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
""".format(
|
|
||||||
website_dir=website_dir,
|
|
||||||
venv_bin=venv_dir / "bin",
|
|
||||||
gunicorn=venv_dir / "bin" / "gunicorn"
|
|
||||||
)
|
|
||||||
|
|
||||||
service_path = project_root / "mindmap.service"
|
|
||||||
with open(service_path, 'w') as f:
|
|
||||||
f.write(service_file)
|
|
||||||
|
|
||||||
print(f"""
|
|
||||||
Deployment files created!
|
|
||||||
|
|
||||||
To install the service on a Linux server:
|
|
||||||
1. Copy the systemd service file:
|
|
||||||
sudo cp {service_path} /etc/systemd/system/
|
|
||||||
|
|
||||||
2. Reload systemd:
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
|
|
||||||
3. Enable and start the service:
|
|
||||||
sudo systemctl enable mindmap.service
|
|
||||||
sudo systemctl start mindmap.service
|
|
||||||
|
|
||||||
4. Check service status:
|
|
||||||
sudo systemctl status mindmap.service
|
|
||||||
|
|
||||||
Alternatively, you can run the application with gunicorn manually:
|
|
||||||
cd {website_dir}
|
|
||||||
{venv_dir}/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 'run:app'
|
|
||||||
""")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
60
deploy.sh
60
deploy.sh
@@ -1,60 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Farben für Ausgaben
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
BLUE='\033[0;34m'
|
|
||||||
RED='\033[0;31m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
echo -e "${GREEN}==== MindMap Projekt Server Deployment ====${NC}"
|
|
||||||
|
|
||||||
# Python-Umgebung erstellen
|
|
||||||
echo -e "${BLUE}Erstelle Python-Umgebung...${NC}"
|
|
||||||
python3 -m venv venv
|
|
||||||
source venv/bin/activate
|
|
||||||
|
|
||||||
# Python-Abhängigkeiten installieren
|
|
||||||
echo -e "${BLUE}Installiere Python-Abhängigkeiten...${NC}"
|
|
||||||
pip install -r website/requirements.txt
|
|
||||||
pip install gunicorn
|
|
||||||
|
|
||||||
# Tailwind CSS kompilieren
|
|
||||||
echo -e "${BLUE}Kompiliere Tailwind CSS...${NC}"
|
|
||||||
cd website
|
|
||||||
python build_css.py
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
# Datenbank initialisieren, falls noch nicht vorhanden
|
|
||||||
echo -e "${BLUE}Initialisiere die Datenbank, falls nötig...${NC}"
|
|
||||||
cd website
|
|
||||||
python init_db.py
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
# Systemd Service erstellen
|
|
||||||
echo -e "${BLUE}Erstelle Systemd Service...${NC}"
|
|
||||||
SERVICE_FILE="[Unit]
|
|
||||||
Description=MindMap Wissensnetzwerk
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=$(whoami)
|
|
||||||
WorkingDirectory=$(pwd)/website
|
|
||||||
Environment=\"PATH=$(pwd)/venv/bin\"
|
|
||||||
ExecStart=$(pwd)/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 --log-level info 'run:app'
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target"
|
|
||||||
|
|
||||||
echo "$SERVICE_FILE" > mindmap.service
|
|
||||||
|
|
||||||
echo -e "${GREEN}==== Deployment abgeschlossen ====${NC}"
|
|
||||||
echo -e "${BLUE}Um den Service zu installieren, führe folgende Befehle aus:${NC}"
|
|
||||||
echo -e "sudo cp mindmap.service /etc/systemd/system/"
|
|
||||||
echo -e "sudo systemctl daemon-reload"
|
|
||||||
echo -e "sudo systemctl enable mindmap.service"
|
|
||||||
echo -e "sudo systemctl start mindmap.service"
|
|
||||||
echo -e ""
|
|
||||||
echo -e "${BLUE}Alternativ kannst du den Server manuell starten:${NC}"
|
|
||||||
echo -e "cd website"
|
|
||||||
echo -e "../venv/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 'run:app'"
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
version: "3.9"
|
|
||||||
services:
|
|
||||||
web:
|
|
||||||
build: .
|
|
||||||
ports:
|
|
||||||
- "5000:5000"
|
|
||||||
restart: always
|
|
||||||
53
setup.py
53
setup.py
@@ -1,53 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
def main():
|
|
||||||
"""Set up the project from the parent directory"""
|
|
||||||
print("Setting up the project...")
|
|
||||||
|
|
||||||
# Get the directory where setup.py is located (project root)
|
|
||||||
project_root = Path(__file__).resolve().parent
|
|
||||||
website_dir = project_root / "website"
|
|
||||||
|
|
||||||
# Check if virtual environment exists, create if not
|
|
||||||
venv_dir = project_root / "venv"
|
|
||||||
if not venv_dir.exists():
|
|
||||||
print("Creating virtual environment...")
|
|
||||||
subprocess.run([sys.executable, "-m", "venv", str(venv_dir)], check=True)
|
|
||||||
|
|
||||||
# Determine pip path based on OS
|
|
||||||
if os.name == 'nt': # Windows
|
|
||||||
pip = venv_dir / "Scripts" / "pip"
|
|
||||||
else: # Unix-like
|
|
||||||
pip = venv_dir / "bin" / "pip"
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
print("Installing dependencies...")
|
|
||||||
subprocess.run([str(pip), "install", "-r", str(website_dir / "requirements.txt")], check=True)
|
|
||||||
|
|
||||||
# Build CSS
|
|
||||||
print("Building CSS with Tailwind...")
|
|
||||||
if os.name == 'nt': # Windows
|
|
||||||
python = venv_dir / "Scripts" / "python"
|
|
||||||
else: # Unix-like
|
|
||||||
python = venv_dir / "bin" / "python"
|
|
||||||
|
|
||||||
subprocess.run([str(python), str(website_dir / "build_css.py")], check=True)
|
|
||||||
|
|
||||||
print("""
|
|
||||||
Setup completed successfully!
|
|
||||||
|
|
||||||
To run the development server:
|
|
||||||
1. Activate the virtual environment:
|
|
||||||
- Windows: .\\venv\\Scripts\\activate
|
|
||||||
- Unix/MacOS: source venv/bin/activate
|
|
||||||
2. Run the Flask application:
|
|
||||||
- cd website
|
|
||||||
- python run.py
|
|
||||||
""")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1,134 +0,0 @@
|
|||||||
# MindMapProjekt - Roadmap
|
|
||||||
|
|
||||||
## Projektübersicht
|
|
||||||
Das MindMapProjekt ist eine interaktive Plattform zum Visualisieren, Erforschen und Teilen von Wissen. Das Projekt wird umfassend überarbeitet, um ein modernes, benutzerfreundliches Design und erweiterte Funktionalitäten zu bieten.
|
|
||||||
|
|
||||||
## Technischer Stack
|
|
||||||
- **Backend**: Python/Flask
|
|
||||||
- **Frontend**:
|
|
||||||
- Tailwind CSS für moderne UI
|
|
||||||
- SVG-Bibliotheken für Visualisierungen (D3.js)
|
|
||||||
- JavaScript/Alpine.js für interaktive Komponenten
|
|
||||||
- **Datenbank**: SQLite mit SQLAlchemy
|
|
||||||
- **KI-Integration**: OpenAI API für intelligente Assistenz
|
|
||||||
|
|
||||||
## Installation und Verwendung
|
|
||||||
|
|
||||||
### Installation
|
|
||||||
1. Repository klonen
|
|
||||||
2. Virtuelle Umgebung erstellen: `python -m venv venv`
|
|
||||||
3. Virtuelle Umgebung aktivieren:
|
|
||||||
- Windows: `venv\Scripts\activate`
|
|
||||||
- Unix/MacOS: `source venv/bin/activate`
|
|
||||||
4. Abhängigkeiten installieren: `pip install -r requirements.txt`
|
|
||||||
5. Datenbank initialisieren: `python TOOLS.py db:rebuild`
|
|
||||||
6. Admin-Benutzer erstellen: `python TOOLS.py user:admin`
|
|
||||||
7. Server starten: `python TOOLS.py server:run`
|
|
||||||
|
|
||||||
### Standardbenutzer
|
|
||||||
- **Admin-Benutzer**: Username: `admin` / Passwort: `admin`
|
|
||||||
- **Testbenutzer**: Username: `user` / Passwort: `user`
|
|
||||||
|
|
||||||
### Verwaltungswerkzeuge mit TOOLS.py
|
|
||||||
Das Projekt enthält ein zentrales Verwaltungsskript `TOOLS.py`, das verschiedene Hilfsfunktionen bietet:
|
|
||||||
|
|
||||||
#### Datenbankverwaltung
|
|
||||||
- `python TOOLS.py db:fix` - Reparieren der Datenbankstruktur
|
|
||||||
- `python TOOLS.py db:rebuild` - Datenbank neu aufbauen (löscht alle Daten!)
|
|
||||||
- `python TOOLS.py db:test` - Datenbankverbindung und Modelle testen
|
|
||||||
- `python TOOLS.py db:stats` - Datenbankstatistiken anzeigen
|
|
||||||
|
|
||||||
#### Benutzerverwaltung
|
|
||||||
- `python TOOLS.py user:list` - Alle Benutzer anzeigen
|
|
||||||
- `python TOOLS.py user:create -u USERNAME -e EMAIL -p PASSWORD [-a]` - Neuen Benutzer erstellen
|
|
||||||
- `python TOOLS.py user:admin` - Admin-Benutzer erstellen (admin/admin)
|
|
||||||
- `python TOOLS.py user:reset-pw -u USERNAME -p NEWPASSWORD` - Benutzerpasswort zurücksetzen
|
|
||||||
- `python TOOLS.py user:delete -u USERNAME` - Benutzer löschen
|
|
||||||
|
|
||||||
#### Serververwaltung
|
|
||||||
- `python TOOLS.py server:run [--host HOST] [--port PORT] [--no-debug]` - Entwicklungsserver starten
|
|
||||||
|
|
||||||
Für detaillierte Hilfe: `python TOOLS.py -h`
|
|
||||||
|
|
||||||
## Roadmap der Überarbeitung
|
|
||||||
|
|
||||||
### Phase 1: Grundlegende Infrastruktur ✅
|
|
||||||
- [x] Bestandsaufnahme des aktuellen Projekts
|
|
||||||
- [x] Erstellung der Roadmap
|
|
||||||
- [x] Aktualisierung der Abhängigkeiten
|
|
||||||
- [x] Integration von Tailwind CSS
|
|
||||||
- [x] Einrichtung der SVG-Bibliotheken (D3.js)
|
|
||||||
- [x] Favicon erstellen
|
|
||||||
- [x] Setup-Skript für einfache Installation
|
|
||||||
|
|
||||||
### Phase 2: Design-Überarbeitung 🔄
|
|
||||||
- [x] Implementierung des Dark Mode
|
|
||||||
- [x] Erstellung eines modernen, minimalistischen UI mit Tech-Ästhetik
|
|
||||||
- [x] Responsive Design für alle Geräte
|
|
||||||
- [ ] Gestaltung der Landing Page mit großer Typografie
|
|
||||||
|
|
||||||
### Phase 3: Mindmap-Funktionalitäten 🔄
|
|
||||||
- [x] Verbesserte Visualisierung mit SVG und D3.js
|
|
||||||
- [x] Implementierung der Mouseover-Funktion
|
|
||||||
- [x] Entwicklung der Suchfunktion für Knoten
|
|
||||||
- [ ] Tagging-System für Inhalte
|
|
||||||
- [ ] Quellenmanagement und -verlinkung
|
|
||||||
- [ ] Upload-Funktionalität an Knotenpunkten
|
|
||||||
|
|
||||||
### Phase 4: Kernseitenentwicklung
|
|
||||||
- [ ] Überarbeitung der Startseite mit neuen Features
|
|
||||||
- [ ] Entwicklung der "Wer sind wir?"-Seite
|
|
||||||
- [ ] Implementierung von Impressum und Datenschutzerklärung
|
|
||||||
- [ ] Erstellung der Kontaktseite mit FAQs
|
|
||||||
- [ ] Überarbeitung des Benutzerprofilbereichs
|
|
||||||
|
|
||||||
### Phase 5: Community-Features
|
|
||||||
- [ ] Entwicklung des Autorenbereichs
|
|
||||||
- [ ] Implementierung von Community-Bereichen für Themenbereiche
|
|
||||||
- [ ] Verbesserter Kommentarbereich
|
|
||||||
- [ ] Benutzerrechtemanagement
|
|
||||||
|
|
||||||
### Phase 6: KI-Integration
|
|
||||||
- [ ] Implementierung des Frage-Antwort-Systems
|
|
||||||
- [ ] KI-generierte Themeneinleitungen
|
|
||||||
- [ ] Intelligente Suchunterstützung
|
|
||||||
- [ ] Geführte Pfade durch Themenbereiche
|
|
||||||
- [ ] Vorgeschlagene Chat-Möglichkeiten
|
|
||||||
|
|
||||||
### Phase 7: Benutzerprofilfunktionen
|
|
||||||
- [ ] Speichern von Thematiken
|
|
||||||
- [ ] Persönliche Mindmap/Pinboard
|
|
||||||
- [ ] Beitragsmanagement
|
|
||||||
- [ ] Benutzerstatistiken und -aktivitäten
|
|
||||||
|
|
||||||
### Phase 8: Testing und Optimierung
|
|
||||||
- [ ] Umfassende Tests aller Funktionen
|
|
||||||
- [ ] Performance-Optimierung
|
|
||||||
- [ ] SEO-Implementierung
|
|
||||||
- [ ] Barrierefreiheit prüfen und verbessern
|
|
||||||
|
|
||||||
### Phase 9: Dokumentation und Einführung
|
|
||||||
- [ ] Erstellung von Benutzeranleitungen
|
|
||||||
- [ ] Entwicklerdokumentation
|
|
||||||
- [ ] Administratorenhandbuch
|
|
||||||
- [ ] Guided Tour für neue Benutzer
|
|
||||||
|
|
||||||
## Aktueller Status
|
|
||||||
- **Phase 1**: ✅ Abgeschlossen
|
|
||||||
- **Phase 2**: 🔄 In Bearbeitung (75% abgeschlossen)
|
|
||||||
- **Phase 3**: 🔄 In Bearbeitung (50% abgeschlossen)
|
|
||||||
|
|
||||||
## Aktuelle Fortschritte
|
|
||||||
- Grundlegende UI modernisiert mit Tailwind CSS und Dark Mode
|
|
||||||
- Neues Favicon für bessere visuelle Identität erstellt
|
|
||||||
- Setup-Prozess vereinfacht mit einem Shell-Skript
|
|
||||||
- Mindmap-Visualisierung komplett überarbeitet mit D3.js für eine interaktivere Erfahrung
|
|
||||||
- Responsive Design für optimale Darstellung auf allen Geräten
|
|
||||||
|
|
||||||
## Nächste Schritte
|
|
||||||
- Fertigstellung der Landing Page
|
|
||||||
- Erstellung der "Wer sind wir?"-Seite
|
|
||||||
- Implementierung des Tagging-Systems für Gedanken
|
|
||||||
- Verbesserung der Gedankenansicht im Mindmap-Bereich
|
|
||||||
|
|
||||||
*Zuletzt aktualisiert: 01.06.2024*
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# Netscape HTTP Cookie File
|
|
||||||
# https://curl.se/docs/http-cookies.html
|
|
||||||
# This file was generated by libcurl! Edit at your own risk.
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,14 +0,0 @@
|
|||||||
flask==2.2.5
|
|
||||||
flask-login==0.6.2
|
|
||||||
flask-wtf
|
|
||||||
email-validator
|
|
||||||
python-dotenv
|
|
||||||
werkzeug==2.2.3
|
|
||||||
flask-sqlalchemy==3.0.5
|
|
||||||
openai==1.3.0
|
|
||||||
requests==2.31.0
|
|
||||||
flask-cors==4.0.0
|
|
||||||
gunicorn==21.2.0
|
|
||||||
#pillow==10.0.1
|
|
||||||
pytest==7.4.0
|
|
||||||
pytest-flask==1.2.0
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Farben für Ausgaben
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
BLUE='\033[0;34m'
|
|
||||||
RED='\033[0;31m'
|
|
||||||
YELLOW='\033[0;33m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
echo -e "${GREEN}==== MindMap Projekt Setup ====${NC}"
|
|
||||||
|
|
||||||
# Verzeichnis erstellen, wenn nicht vorhanden
|
|
||||||
echo -e "${BLUE}Überprüfe Verzeichnisstruktur...${NC}"
|
|
||||||
mkdir -p static/css/src
|
|
||||||
mkdir -p static/img
|
|
||||||
mkdir -p static/js
|
|
||||||
mkdir -p bin
|
|
||||||
|
|
||||||
# Überprüfe, ob .env-Datei existiert und erstelle sie, wenn nicht
|
|
||||||
echo -e "${BLUE}Überprüfe .env-Datei...${NC}"
|
|
||||||
if [ ! -f ".env" ]; then
|
|
||||||
echo -e "${YELLOW}Keine .env-Datei gefunden. Erstelle neue .env-Datei aus example.env...${NC}"
|
|
||||||
cp example.env .env
|
|
||||||
echo -e "${YELLOW}Bitte bearbeiten Sie die .env-Datei und setzen Sie die erforderlichen Werte.${NC}"
|
|
||||||
echo -e "${YELLOW}Insbesondere müssen Sie einen gültigen API-Schlüssel für OpenAI setzen.${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${GREEN}.env-Datei existiert bereits.${NC}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Python-Abhängigkeiten installieren
|
|
||||||
echo -e "${BLUE}Installiere Python-Abhängigkeiten...${NC}"
|
|
||||||
pip install -r requirements.txt
|
|
||||||
|
|
||||||
# Zusätzliche Abhängigkeiten für Favicon-Erstellung
|
|
||||||
echo -e "${BLUE}Installiere Abhängigkeiten für Favicon-Erstellung...${NC}"
|
|
||||||
pip install pillow cairosvg
|
|
||||||
|
|
||||||
# Tailwind CSS mit Python-Skript kompilieren
|
|
||||||
echo -e "${BLUE}Kompiliere Tailwind CSS...${NC}"
|
|
||||||
python build_css.py
|
|
||||||
|
|
||||||
# Favicon generieren
|
|
||||||
echo -e "${BLUE}Generiere Favicon...${NC}"
|
|
||||||
python static/img/favicon-gen.py
|
|
||||||
|
|
||||||
# Erstelle die Datenbank
|
|
||||||
echo -e "${BLUE}Initialisiere die Datenbank...${NC}"
|
|
||||||
python init_db.py
|
|
||||||
|
|
||||||
echo -e "${GREEN}==== Setup abgeschlossen ====${NC}"
|
|
||||||
echo -e "${GREEN}Starte die Anwendung mit: python run.py${NC}"
|
|
||||||
echo -e "${GREEN}Für Entwicklung mit CSS-Autoreload: python dev.py${NC}"
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
module.exports = {
|
|
||||||
darkMode: 'class',
|
|
||||||
content: [
|
|
||||||
"./templates/**/*.{html,jinja,jinja2}",
|
|
||||||
"./static/**/*.js"
|
|
||||||
],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
colors: {
|
|
||||||
primary: {
|
|
||||||
50: '#eef5ff',
|
|
||||||
100: '#d9e7ff',
|
|
||||||
200: '#bcd4ff',
|
|
||||||
300: '#8eb8ff',
|
|
||||||
400: '#5a93ff',
|
|
||||||
500: '#2970ff',
|
|
||||||
600: '#1654f6',
|
|
||||||
700: '#1142e2',
|
|
||||||
800: '#1336b7',
|
|
||||||
900: '#153390',
|
|
||||||
},
|
|
||||||
secondary: {
|
|
||||||
50: '#f5f2ff',
|
|
||||||
100: '#ece8ff',
|
|
||||||
200: '#ddd5ff',
|
|
||||||
300: '#c4b3ff',
|
|
||||||
400: '#a685ff',
|
|
||||||
500: '#8b55ff',
|
|
||||||
600: '#7833f8',
|
|
||||||
700: '#6924e2',
|
|
||||||
800: '#5720b8',
|
|
||||||
900: '#481c96',
|
|
||||||
},
|
|
||||||
dark: {
|
|
||||||
50: '#f8f8f9',
|
|
||||||
100: '#e7e7ea',
|
|
||||||
200: '#d1d1d8',
|
|
||||||
300: '#aeaeba',
|
|
||||||
400: '#8a8a99',
|
|
||||||
500: '#6f6f7e',
|
|
||||||
600: '#5b5b69',
|
|
||||||
700: '#49494f',
|
|
||||||
800: '#2c2c33',
|
|
||||||
900: '#18181c',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fontFamily: {
|
|
||||||
'sans': ['Inter', 'ui-sans-serif', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'],
|
|
||||||
'mono': ['JetBrains Mono', 'ui-monospace', 'SFMono-Regular', 'monospace']
|
|
||||||
},
|
|
||||||
backgroundImage: {
|
|
||||||
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
|
|
||||||
'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
|
|
||||||
'gradient-tech': 'linear-gradient(to right, var(--tw-gradient-stops))',
|
|
||||||
},
|
|
||||||
animation: {
|
|
||||||
'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
|
|
||||||
'float': 'float 6s ease-in-out infinite',
|
|
||||||
},
|
|
||||||
keyframes: {
|
|
||||||
float: {
|
|
||||||
'0%, 100%': { transform: 'translateY(0)' },
|
|
||||||
'50%': { transform: 'translateY(-10px)' },
|
|
||||||
}
|
|
||||||
},
|
|
||||||
typography: {
|
|
||||||
DEFAULT: {
|
|
||||||
css: {
|
|
||||||
color: 'rgb(31, 41, 55)',
|
|
||||||
a: {
|
|
||||||
color: 'rgb(41, 112, 255)',
|
|
||||||
'&:hover': {
|
|
||||||
color: 'rgb(22, 84, 246)',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
dark: {
|
|
||||||
css: {
|
|
||||||
color: 'rgb(229, 231, 235)',
|
|
||||||
a: {
|
|
||||||
color: 'rgb(90, 147, 255)',
|
|
||||||
'&:hover': {
|
|
||||||
color: 'rgb(142, 184, 255)',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
boxShadow: {
|
|
||||||
'soft': '0 4px 15px rgba(0, 0, 0, 0.05)',
|
|
||||||
'glow': '0 0 15px rgba(32, 92, 245, 0.3)'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
// Typography and forms plugins removed, we'll implement their basic functionality in CSS
|
|
||||||
],
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user