diff --git a/website/.env b/.env similarity index 100% rename from website/.env rename to .env diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 5780a0b..0000000 --- a/Dockerfile +++ /dev/null @@ -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"] \ No newline at end of file diff --git a/README.md b/README.md index cd107f9..cf56801 100644 --- a/README.md +++ b/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 -- 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 und Verwendung -## 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: -``` -python setup.py -``` +#### 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 -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: - ``` - git clone - ``` +Für detaillierte Hilfe: `python TOOLS.py -h` -2. Python-Abhängigkeiten installieren: - ``` - cd website - pip install -r requirements.txt - ``` +## Roadmap der Überarbeitung -3. Environment-Variablen konfigurieren: - ``` - cp example.env .env - ``` - Bearbeite die `.env`-Datei und füge deinen OpenAI API-Schlüssel ein. +### 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 -4. CSS mit Tailwind erstellen: - ``` - python build_css.py - ``` +### 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 -5. Datenbank initialisieren: - ``` - python init_db.py - ``` +### 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 -6. Anwendung starten: - ``` - python run.py - ``` +### 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 -## 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 -``` -python dev.py -``` +### Phase 7: Benutzerprofilfunktionen +- [ ] 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. -2. **Navigation**: In der Hauptnavigation gibt es ebenfalls eine Schaltfläche mit Roboter-Symbol. -3. **Startseite**: Im "KI-Assistent"-Abschnitt auf der Startseite gibt es einen "KI-Chat starten"-Button. +## 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 -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 -- 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. \ No newline at end of file +*Zuletzt aktualisiert: 01.06.2024* \ No newline at end of file diff --git a/website/ROADMAP.md b/ROADMAP.md similarity index 100% rename from website/ROADMAP.md rename to ROADMAP.md diff --git a/website/TOOLS.py b/TOOLS.py similarity index 100% rename from website/TOOLS.py rename to TOOLS.py diff --git a/website/app.py b/app.py similarity index 100% rename from website/app.py rename to app.py diff --git a/website/cookies.txt b/cookies.txt similarity index 100% rename from website/cookies.txt rename to cookies.txt diff --git a/copy-network-image.bat b/copy-network-image.bat deleted file mode 100644 index b445827..0000000 --- a/copy-network-image.bat +++ /dev/null @@ -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 \ No newline at end of file diff --git a/website/database/systades.db b/database/systades.db similarity index 100% rename from website/database/systades.db rename to database/systades.db diff --git a/website/database/systades.db.backup b/database/systades.db.backup similarity index 100% rename from website/database/systades.db.backup rename to database/systades.db.backup diff --git a/deploy.py b/deploy.py deleted file mode 100755 index 81a929e..0000000 --- a/deploy.py +++ /dev/null @@ -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() \ No newline at end of file diff --git a/deploy.sh b/deploy.sh deleted file mode 100755 index 7c8672f..0000000 --- a/deploy.sh +++ /dev/null @@ -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'" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index c2faf8f..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: "3.9" -services: - web: - build: . - ports: - - "5000:5000" - restart: always \ No newline at end of file diff --git a/ANLEITUNG.md b/docs/ANLEITUNG.md similarity index 100% rename from ANLEITUNG.md rename to docs/ANLEITUNG.md diff --git a/Grundstruktur (funktionales Modell).pdf b/docs/Grundstruktur (funktionales Modell).pdf similarity index 100% rename from Grundstruktur (funktionales Modell).pdf rename to docs/Grundstruktur (funktionales Modell).pdf diff --git a/website/example.env b/example.env similarity index 100% rename from website/example.env rename to example.env diff --git a/website/init_db.py b/init_db.py similarity index 100% rename from website/init_db.py rename to init_db.py diff --git a/website/models.py b/models.py similarity index 100% rename from website/models.py rename to models.py diff --git a/setup.py b/setup.py deleted file mode 100755 index e8b922f..0000000 --- a/setup.py +++ /dev/null @@ -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() \ No newline at end of file diff --git a/website/static/background.js b/static/background.js similarity index 100% rename from website/static/background.js rename to static/background.js diff --git a/website/static/background.mp4 b/static/background.mp4 similarity index 100% rename from website/static/background.mp4 rename to static/background.mp4 diff --git a/website/static/css/assistant.css b/static/css/assistant.css similarity index 100% rename from website/static/css/assistant.css rename to static/css/assistant.css diff --git a/website/static/css/base-styles.css b/static/css/base-styles.css similarity index 100% rename from website/static/css/base-styles.css rename to static/css/base-styles.css diff --git a/website/static/css/main.css b/static/css/main.css similarity index 100% rename from website/static/css/main.css rename to static/css/main.css diff --git a/website/static/css/src/input.css b/static/css/src/input.css similarity index 100% rename from website/static/css/src/input.css rename to static/css/src/input.css diff --git a/website/static/css/style.css b/static/css/style.css similarity index 100% rename from website/static/css/style.css rename to static/css/style.css diff --git a/website/static/d3-extensions.js b/static/d3-extensions.js similarity index 100% rename from website/static/d3-extensions.js rename to static/d3-extensions.js diff --git a/website/static/img/favicon-gen.py b/static/img/favicon-gen.py similarity index 100% rename from website/static/img/favicon-gen.py rename to static/img/favicon-gen.py diff --git a/website/static/img/favicon.svg b/static/img/favicon.svg similarity index 100% rename from website/static/img/favicon.svg rename to static/img/favicon.svg diff --git a/website/static/js/main.js b/static/js/main.js similarity index 100% rename from website/static/js/main.js rename to static/js/main.js diff --git a/website/static/js/modules/chatgpt-assistant.js b/static/js/modules/chatgpt-assistant.js similarity index 100% rename from website/static/js/modules/chatgpt-assistant.js rename to static/js/modules/chatgpt-assistant.js diff --git a/website/static/js/modules/mindmap-page.js b/static/js/modules/mindmap-page.js similarity index 100% rename from website/static/js/modules/mindmap-page.js rename to static/js/modules/mindmap-page.js diff --git a/website/static/js/modules/mindmap.js b/static/js/modules/mindmap.js similarity index 100% rename from website/static/js/modules/mindmap.js rename to static/js/modules/mindmap.js diff --git a/website/static/mindmap.js b/static/mindmap.js similarity index 100% rename from website/static/mindmap.js rename to static/mindmap.js diff --git a/website/static/network-animation.js b/static/network-animation.js similarity index 100% rename from website/static/network-animation.js rename to static/network-animation.js diff --git a/website/static/network-background.js b/static/network-background.js similarity index 100% rename from website/static/network-background.js rename to static/network-background.js diff --git a/website/static/three.min.js b/static/three.min.js similarity index 100% rename from website/static/three.min.js rename to static/three.min.js diff --git a/website/tailwind.config.js b/tailwind.config.js similarity index 100% rename from website/tailwind.config.js rename to tailwind.config.js diff --git a/website/templates/admin.html b/templates/admin.html similarity index 100% rename from website/templates/admin.html rename to templates/admin.html diff --git a/website/templates/agb.html b/templates/agb.html similarity index 100% rename from website/templates/agb.html rename to templates/agb.html diff --git a/website/templates/base.html b/templates/base.html similarity index 100% rename from website/templates/base.html rename to templates/base.html diff --git a/website/templates/datenschutz.html b/templates/datenschutz.html similarity index 100% rename from website/templates/datenschutz.html rename to templates/datenschutz.html diff --git a/website/templates/errors/403.html b/templates/errors/403.html similarity index 100% rename from website/templates/errors/403.html rename to templates/errors/403.html diff --git a/website/templates/errors/404.html b/templates/errors/404.html similarity index 100% rename from website/templates/errors/404.html rename to templates/errors/404.html diff --git a/website/templates/errors/429.html b/templates/errors/429.html similarity index 100% rename from website/templates/errors/429.html rename to templates/errors/429.html diff --git a/website/templates/errors/500.html b/templates/errors/500.html similarity index 100% rename from website/templates/errors/500.html rename to templates/errors/500.html diff --git a/website/templates/impressum.html b/templates/impressum.html similarity index 100% rename from website/templates/impressum.html rename to templates/impressum.html diff --git a/website/templates/index.html b/templates/index.html similarity index 100% rename from website/templates/index.html rename to templates/index.html diff --git a/website/templates/layout.html b/templates/layout.html similarity index 100% rename from website/templates/layout.html rename to templates/layout.html diff --git a/website/templates/login.html b/templates/login.html similarity index 100% rename from website/templates/login.html rename to templates/login.html diff --git a/website/templates/mindmap.html b/templates/mindmap.html similarity index 100% rename from website/templates/mindmap.html rename to templates/mindmap.html diff --git a/website/templates/my_account.html b/templates/my_account.html similarity index 100% rename from website/templates/my_account.html rename to templates/my_account.html diff --git a/website/templates/profile.html b/templates/profile.html similarity index 100% rename from website/templates/profile.html rename to templates/profile.html diff --git a/website/templates/register.html b/templates/register.html similarity index 100% rename from website/templates/register.html rename to templates/register.html diff --git a/website/templates/search.html b/templates/search.html similarity index 100% rename from website/templates/search.html rename to templates/search.html diff --git a/website/templates/settings.html b/templates/settings.html similarity index 100% rename from website/templates/settings.html rename to templates/settings.html diff --git a/website/utils/__init__.py b/utils/__init__.py similarity index 100% rename from website/utils/__init__.py rename to utils/__init__.py diff --git a/website/utils/__pycache__/__init__.cpython-311.pyc b/utils/__pycache__/__init__.cpython-311.pyc similarity index 100% rename from website/utils/__pycache__/__init__.cpython-311.pyc rename to utils/__pycache__/__init__.cpython-311.pyc diff --git a/website/utils/__pycache__/db_fix.cpython-311.pyc b/utils/__pycache__/db_fix.cpython-311.pyc similarity index 100% rename from website/utils/__pycache__/db_fix.cpython-311.pyc rename to utils/__pycache__/db_fix.cpython-311.pyc diff --git a/website/utils/__pycache__/db_rebuild.cpython-311.pyc b/utils/__pycache__/db_rebuild.cpython-311.pyc similarity index 100% rename from website/utils/__pycache__/db_rebuild.cpython-311.pyc rename to utils/__pycache__/db_rebuild.cpython-311.pyc diff --git a/website/utils/__pycache__/db_test.cpython-311.pyc b/utils/__pycache__/db_test.cpython-311.pyc similarity index 100% rename from website/utils/__pycache__/db_test.cpython-311.pyc rename to utils/__pycache__/db_test.cpython-311.pyc diff --git a/website/utils/__pycache__/server.cpython-311.pyc b/utils/__pycache__/server.cpython-311.pyc similarity index 100% rename from website/utils/__pycache__/server.cpython-311.pyc rename to utils/__pycache__/server.cpython-311.pyc diff --git a/website/utils/__pycache__/user_manager.cpython-311.pyc b/utils/__pycache__/user_manager.cpython-311.pyc similarity index 100% rename from website/utils/__pycache__/user_manager.cpython-311.pyc rename to utils/__pycache__/user_manager.cpython-311.pyc diff --git a/website/utils/db_fix.py b/utils/db_fix.py similarity index 100% rename from website/utils/db_fix.py rename to utils/db_fix.py diff --git a/website/utils/db_rebuild.py b/utils/db_rebuild.py similarity index 100% rename from website/utils/db_rebuild.py rename to utils/db_rebuild.py diff --git a/website/utils/db_test.py b/utils/db_test.py similarity index 100% rename from website/utils/db_test.py rename to utils/db_test.py diff --git a/website/utils/server.py b/utils/server.py similarity index 100% rename from website/utils/server.py rename to utils/server.py diff --git a/website/utils/user_manager.py b/utils/user_manager.py similarity index 100% rename from website/utils/user_manager.py rename to utils/user_manager.py diff --git a/website/README.md b/website/README.md deleted file mode 100644 index cf56801..0000000 --- a/website/README.md +++ /dev/null @@ -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* \ No newline at end of file diff --git a/website/__pycache__/app.cpython-311.pyc b/website/__pycache__/app.cpython-311.pyc deleted file mode 100644 index 96ab443..0000000 Binary files a/website/__pycache__/app.cpython-311.pyc and /dev/null differ diff --git a/website/__pycache__/app.cpython-313.pyc b/website/__pycache__/app.cpython-313.pyc deleted file mode 100644 index 65fe9b4..0000000 Binary files a/website/__pycache__/app.cpython-313.pyc and /dev/null differ diff --git a/website/__pycache__/init_db.cpython-311.pyc b/website/__pycache__/init_db.cpython-311.pyc deleted file mode 100644 index 212cb48..0000000 Binary files a/website/__pycache__/init_db.cpython-311.pyc and /dev/null differ diff --git a/website/__pycache__/init_db.cpython-313.pyc b/website/__pycache__/init_db.cpython-313.pyc deleted file mode 100644 index 81e2826..0000000 Binary files a/website/__pycache__/init_db.cpython-313.pyc and /dev/null differ diff --git a/website/__pycache__/models.cpython-311.pyc b/website/__pycache__/models.cpython-311.pyc deleted file mode 100644 index de860a6..0000000 Binary files a/website/__pycache__/models.cpython-311.pyc and /dev/null differ diff --git a/website/requirements.txt b/website/requirements.txt deleted file mode 100644 index 7db9aa5..0000000 --- a/website/requirements.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/website/run.py b/website/run.py deleted file mode 100755 index 7657b40..0000000 --- a/website/run.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python3 -import os -import sys -from pathlib import Path -from dotenv import load_dotenv -from init_db import init_database -from app import app - -if __name__ == "__main__": - # Lade .env-Datei explizit - env_path = Path(__file__).parent / ".env" - if env_path.exists(): - print(f"Lade Umgebungsvariablen aus {env_path}") - load_dotenv(dotenv_path=env_path, override=True, force=True) - else: - print("Warnung: .env-Datei nicht gefunden!") - - # Check if CSS file exists, build it if it doesn't - css_file = Path(__file__).parent / "static" / "css" / "main.css" - if not css_file.exists(): - print("CSS file not found. Building with Tailwind...") - try: - from build_css import build_css - build_css() - except Exception as e: - print(f"Warning: Failed to build CSS: {e}") - print("You may need to run 'python build_css.py' manually.") - - # Initialize the database first - init_database() - - # Run the Flask application - app.run(debug=True, host='0.0.0.0', port=5000) \ No newline at end of file diff --git a/website/setup.sh b/website/setup.sh deleted file mode 100755 index 32dcdf1..0000000 --- a/website/setup.sh +++ /dev/null @@ -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}" \ No newline at end of file