Skip to content
Snippets Groups Projects

Website der Video AG

Entwicklung

Zum Testen:

Hinweis: diese Variante startet eine lokale Testversion der Website, es sind nicht alle Features verfügbar, z.B. LDAP-Login.

  1. Repo Clonen
  2. Verzeichnis betreten
  3. (optional) config.py.example anpassen und als config.py neu speichern (z.B. DEBUG = True)
  4. Schauen, ob alle Dependencies erfüllt sind (siehe weiter unten)
  5. ./run.py ausführen
  6. Unter http://localhost:5000 ist die Website verfügbar
  7. Moderatorlogin mit user: videoag Passwort: videoag

Alternativ, insbesondere zum Testen der Zugriffsbeschränkungen: Siehe nginx.example.conf.

Unittests

Tests können mittels ./run_tests.py ausgeführt werden.

Coverage Tests können mittels rm .coverage; python -m coverage run run_tests.py; python -m coverage html ausgeführt werden. Dies erstellt einen Ordner htmlcov in dem HTML Output liegt.

Zum Mitmachen:

  1. Repo für den eigenen User forken, dafür den "Fork-Button" auf der Website verwenden
  2. Sicherstellen, dass der Upstream richtig konfiguriert ist:
    Link Origin stellt hier euren User da, Upstream das Original der Gruppe videoagwebsite
  3. Erstellt euch eine eigene Branch, diese könnt ihr nennen wie ihr wollt, entweder nach der Änderung oder eurem Namen (git branch username), danach switched ihr in diese Branch (git checkout username)
  4. Die Initialisierung ist unter "Zum Testen" bereits erklärt worden
  5. Änderungen machen, committen, upstream mergen (git fetch upstream; git merge upstream/master)
  6. Ins eigene Repo pushen (git push)
  7. Pull-Request an uns, dazu unter "Merge-Requests" einmal auf "New Merge Request" und das Private Repo auswählen; oder ihr geht auf euer privates repo, da taucht dann eine Benachrichtigung über einen möglichen Merge-Request auf
  8. Warten
  9. Wir mergen die Änderungen

Abhängigkeiten

Notwendig:

  • python (Version 3)
  • sqlite3 (Python builtin)
  • python-flask
  • python-requests (wird vom L2P und vom Kalenderimport verwendet, kann nicht optional eingebunden werden)
  • git (zum Anzeigen der aktuellen Version)

Optional (wird für einzelne Features benötigt):

  • python-lxml (Campus- und RO-Import)
  • python-pytz (RO-Import)
  • python-ldap3 (Login mit Fachschaftsaccount)
  • python-icalendar (RO-Import, Kalenderimport für Sitzungsankündigungen)
  • python-mysql-connector (wenn MySQL als Datenbank verwendet werden soll)
  • python-coverage (Für Coverage Tests benötigt)

Kurzform unter Ubuntu: sudo apt install python3 python3-flask sqlite python3-requests python3-lxml python3-ldap3 python3-icalendar python3-mysql.connector

Mit python-eigenem Paketmanager: pip install -r requirements.txt


Alternative: Docker Image

Alternativ zu vorigem Setup kann zum lokalen Testen Docker verwendet werden, um die Testversion zu starten:

  1. Lokal das Image erstellen mittels docker build -t videoag . in diesem Ordner.
  2. Einen entsprechenden Container starten, z.B.: docker run --rm --name=videoag -p 5000:5000 videoag
    • --rm löscht den Container nach dessen Terminierung
    • -p 5000:5000 mappt den Port, damit der Host auf die Webseite zugreifen kann. Nicht den lokalen Port ändern, da ansonsten ggf. Thumbnails oder Videos nicht mehr geladen werden können.
    • Zusätzlich kann mittels -v /lokaler/pfad/:/code der Source-Code im Container mit dem Host gemounted werden.
  3. Webseite unter localhost:5000 besuchen.

In dieser Variante sollte in der config.py folgendes gesetzt werden:

SERVER_IP = 'localhost'
VIDEOPREFIX = '/files'