Resolve "Suchfunktion verbessern" Closes #127 See merge request enrichment-2024/qivip!85
qivip-Projektanleitung
Inhaltsverzeichnis
- Initialisierung des Projekts
- Starten des Servers
- Superuser erstellen
- Tailwind-Nutzung
- Issue - Merge Request - Merge
- Konfiguration
Initialisierung des Projekts
Um das Projekt erfolgreich zu starten, folge diesen Schritten:
- Einen SSH-Key erstellen und den öffentlichen Schlüssel bei Edugit hinterlegen.
- Das Repository klonen:
git clone <repository-url> - In den
qivip-Ordner wechseln:cd qivip - Eine virtuelle Umgebung namens
.venverstellen:python3 -m venv .venv - Die virtuelle Umgebung aktivieren:
- Unter Linux:
source .venv/bin/activate - Unter Windows (cmd):
.venv\Scripts\activate
- Unter Linux:
- Die benötigten Abhängigkeiten installieren:
pip install -r requirements.txt - Die Datenbank migrieren:
python django/manage.py migrate
Starten des Servers
Entwicklungsserver starten
Für die Entwicklung mit WebSocket-Unterstützung verwenden wir Daphne:
-
Aktiviere die virtuelle Umgebung:
source .venv/bin/activate # Linux .venv\Scripts\activate # Windows -
Starte den Daphne-Server:
# Im Verzeichnis 'django' daphne -b 127.0.0.1 -p 8000 core.asgi:application -
Starte den REDIS Server
redis-serverHinweis: 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:
-
Aktiviere die virtuelle Umgebung wie oben beschrieben
-
Sammle die statischen Dateien:
python3 core/manage.py collectstatic -
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)
-
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_gameseinfügen, damit um Mitternacht alle Spiele gelöscht werden
- Zum bearbeiten der Cronjobs:
-
Starte den REDIS Server
redis-serverHinweis: 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:
- Mit der Binärdatei
- Mit NPM:
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:
-
Issue erstellen - das geht am einfachsten über die Webseite. Der Titel beschreibt kurz und klar, was angestrebt wird.
-
Merge Request anlegen - dadurch wird der Branch automatisch angelegt. Dieser kann mit
git pullgeholt und mitgit checkout <branch>bearbeitet werden. -
Nach dem Hochladen kann der Merge in den Master durchgeführt werden.
Konfiguration
Die Konfiguration des Projekts befindet sich im config/qivip_config.json.
| Variable | Bedeutung | Optionen |
|---|---|---|
| ENABLE_RATING_SYSTEM | Soll das Bewertungssystem aktiviert werden? | true [Standard], false |