Juhn-Vitus Saß 881bc3d6c1 Merge branch '79-filter-problem-der-filter-soll-sich-nicht-schliessen-wenn-man-auf-filtern-klickt' into 'master'
Resolve "Filter Problem! Der Filter soll sich nicht schließen wenn man auf Filtern klickt."

Closes #79

See merge request enrichment-2024/qivip!55
2025-04-22 09:47:05 +00:00
2025-04-05 19:12:25 +02:00
2025-04-18 21:26:40 +02:00

qivip-Projektanleitung

Inhaltsverzeichnis

  1. Initialisierung des Projekts
  2. Starten des Servers
  3. Superuser erstellen
  4. Tailwind-Nutzung
  5. Issue - Merge Request - Merge

Initialisierung des Projekts

Um das Projekt erfolgreich zu starten, folge diesen Schritten:

  1. Einen SSH-Key erstellen und den öffentlichen Schlüssel bei Edugit hinterlegen.
  2. Das Repository klonen:
    git clone <repository-url>
    
  3. In den qivip-Ordner wechseln:
    cd qivip
    
  4. Eine virtuelle Umgebung namens .venv erstellen:
    python3 -m venv .venv
    
  5. Die virtuelle Umgebung aktivieren:
    • Unter Linux:
      source .venv/bin/activate
      
    • Unter Windows (cmd):
      .venv\Scripts\activate
      
  6. Die benötigten Abhängigkeiten installieren:
    pip install -r requirements.txt
    
  7. Die Datenbank migrieren:
    python3 core/manage.py migrate
    

Starten des Servers

Entwicklungsserver starten

Für die Entwicklung mit WebSocket-Unterstützung verwenden wir Daphne:

  1. Aktiviere die virtuelle Umgebung:

    source .venv/bin/activate  # Linux
    .venv\Scripts\activate     # Windows
    
  2. Starte den Daphne-Server:

    # Im Verzeichnis 'django'
    daphne -b 127.0.0.1 -p 8000 core.asgi:application
    

Alternativ kannst du den Django-Entwicklungsserver verwenden, wenn du keine WebSocket-Funktionalität benötigst:

python3 core/manage.py runserver

Produktionsserver starten

Für den Produktivbetrieb verwenden wir Daphne als ASGI-Server, der sowohl HTTP als auch WebSocket-Verbindungen unterstützt:

  1. Aktiviere die virtuelle Umgebung wie oben beschrieben

  2. Sammle die statischen Dateien:

    python3 core/manage.py collectstatic
    
  3. Starte den Daphne-Server:

    daphne -b 0.0.0.0 -p 8000 core.asgi:application
    
    • -b 0.0.0.0: Bindet den Server an alle Netzwerk-Interfaces
    • -p 8000: Port (anpassbar)
  4. Cronjob für Bereinigung der Spiele in der Datenbank

    • Zum bearbeiten der Cronjobs:
      crontab -e
      
    • Dann 0 0 * * * /path/to/venv/bin/python /path/to/your_project/manage.py cleanup_games einfügen, damit um Mitternacht alle Spiele gelöscht werden

Damit ist das Projekt erfolgreich eingerichtet und der Server kann gestartet werden!

Superuser erstellen

Ein Superuser wird benötigt, um sich im Admin-Bereich der Anwendung anzumelden. Um einen Superuser zu erstellen, führe folgenden Befehl aus:

python3 core/manage.py createsuperuser

Gib anschließend die geforderten Daten ein (Benutzername, E-Mail, Passwort). Nach erfolgreicher Erstellung kannst du dich mit diesen Zugangsdaten im Admin-Bereich und in der Accounts-App der Anwendung anmelden.

Tailwind-Nutzung

Installation

TailwindCSS kann auf zwei Wege installiert werden:

npm install tailwindcss @tailwindcss/cli

Datei generieren

# Bei Verwendung der Binärdatei:
tailwindcss -i <INPUT-DATEI> -o <OUTPUT-DATEI> --watch --minify

# Bei Verwendung von NPM:
npx @tailwindcss/cli -i <INPUT-DATEI> -o <OUTPUT-DATEI> --watch --minify
  • INPUT-DATEI: CSS Datei, welche die Einbindung und Konfiguration von Tailwind enthält
  • OUTPUT-DATEI: CSS Datei, die in den Seiten eingebunden wird
  • --watch: Änderungen im aktuellen Verzeichnis erkennen und Output neugenerieren
  • --minify: Output Datei so klein wie möglich halten

Beispiel:

# unter Linux mit Tailwind Binärdatei:
npx tailwindcss -i static/css/t-input.css -o static/css/t-style.css --watch --minify

# unter Windows mit NPM (in bash mit '/' statt '\'):
npx @tailwindcss/cli -i ./static/css/t-input.css -o ./static/css/t-style.css --watch --minify

Issue - Merge Request - Merge

Hier der vereinbarte Arbeitsablauf:

  1. Issue erstellen - das geht am einfachsten über die Webseite. Der Titel beschreibt kurz und klar, was angestrebt wird.

  2. Merge Request anlegen - dadurch wird der Branch automatisch angelegt. Dieser kann mit git pull geholt und mit git checkout <branch> bearbeitet werden.

  3. Nach dem Hochladen kann der Merge in den Master durchgeführt werden.

Description
No description provided
Readme 14 MiB
Languages
HTML 60.4%
Python 38.7%
CSS 0.9%