2025-04-23 11:52:32 +02:00
2025-04-23 11:52:32 +02:00
2025-04-05 19:12:25 +02:00
2025-04-22 12:21:47 +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
    
  3. Starte den REDIS Server

    redis-server
    

    Hinweis: Der Redis Server muss, wenn er nicht auf dem selben Gerät unter Standardeinstellungen läuft, in der Datei play/consumers/lobby.py und core/settings.py entsprechend umkonfiguriert werden!

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
  5. Starte den REDIS Server

    redis-server
    

    Hinweis: Der Redis Server muss, wenn er nicht auf dem selben Gerät unter Standardeinstellungen läuft, in der Datei play/consumers/lobby.py und core/settings.py entsprechend umkonfiguriert 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%