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.
- Repo Clonen
- Verzeichnis betreten
- (optional) config.py.example anpassen und als config.py neu speichern (z.B. DEBUG = True)
- Schauen, ob alle Dependencies erfüllt sind (siehe weiter unten)
-
./run.py
ausführen - Unter http://localhost:5000 ist die Website verfügbar
- Moderatorlogin mit user:
videoag
Passwort:videoag
Alternativ, insbesondere zum Testen der Zugriffsbeschränkungen: Siehe nginx.example.conf
.
Unittests
Tests können mittels ./runTests.py
ausgeführt werden.
Coverage Tests können mittels rm .coverage; python -m coverage run runTests.py; python -m coverage html
ausgeführt werden. Dies erstellt einen Ordner htmlcov
in dem HTML Output liegt.
Zum Mitmachen:
- Repo für den eigenen User forken, dafür den "Fork-Button" auf der Website verwenden
- Sicherstellen, dass der Upstream richtig konfiguriert ist:
Link Origin stellt hier euren User da, Upstream das Original der Gruppe videoagwebsite - 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)
- Die Initialisierung ist unter "Zum Testen" bereits erklärt worden
- Änderungen machen, committen, upstream mergen (git fetch upstream; git merge upstream/master)
- Ins eigene Repo pushen (git push)
- 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
- Warten
- 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