# 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 4. Schauen, ob alle Dependencies erfüllt sind (siehe weiter unten) 5. `./run.py` ausführen 6. Unter [http://localhost:5000](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 `./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: 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](https://help.github.com/articles/configuring-a-remote-for-a-fork/) 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) 3. Die Initialisierung ist unter "Zum Testen" bereits erklärt worden 3. Änderungen machen, committen, upstream mergen (git fetch upstream; git merge upstream/master) 4. Ins eigene Repo pushen (git push) 5. 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 6. Warten 7. Wir mergen die Änderungen ### Abhängigkeiten Notwendig: * python (Version 3) * sqlite * 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-ldap (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`