README.md 2.68 KB
Newer Older
1 2 3 4
# Website der Video AG

## Entwicklung
### Zum Testen:
Andreas Valder's avatar
Andreas Valder committed
5
Hinweis: diese Variante startet eine lokale Testversion der Website, es sind nicht alle Features verfügbar, z.B. LDAP-Login.
6

Andreas Valder's avatar
Andreas Valder committed
7 8
1. Repo Clonen
2. Verzeichnis betreten
9
3. (optional) config.py.example anpassen und als config.py neu speichern (z.B. DEBUG = True)
10
4. Schauen, ob alle Dependencies erfüllt sind (siehe weiter unten)
Andreas Valder's avatar
Andreas Valder committed
11
5. `./run.py` ausführen
12
6. Unter [http://localhost:5000](http://localhost:5000) ist die Website verfügbar
Andreas Valder's avatar
Andreas Valder committed
13
7. Moderatorlogin mit user: `videoag` Passwort: `videoag`
14

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

Andreas Valder's avatar
Andreas Valder committed
17
### Unittests
18
Tests können mittels `./runTests.py` ausgeführt werden.
Andreas Valder's avatar
Andreas Valder committed
19

20
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.
Andreas Valder's avatar
Andreas Valder committed
21

22
### Zum Mitmachen:
23 24 25 26 27 28 29 30 31
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
Andreas Valder's avatar
Andreas Valder committed
32 33
6. Warten
7. Wir mergen die Änderungen
34

35 36
### Abhängigkeiten
Notwendig:
37
* python (Version 3)
38
* sqlite3 (Python builtin)
39
* python-flask
40
* python-requests (wird vom L2P und vom Kalenderimport verwendet, kann nicht optional eingebunden werden)
Andreas Valder's avatar
Andreas Valder committed
41
* git (zum Anzeigen der aktuellen Version)
42 43

Optional (wird für einzelne Features benötigt):
44 45
* python-lxml (Campus- und RO-Import) 
* python-pytz (RO-Import) 
46
* python-ldap3 (Login mit Fachschaftsaccount)
47
* python-icalendar (RO-Import, Kalenderimport für Sitzungsankündigungen)
48
* python-mysql-connector (wenn MySQL als Datenbank verwendet werden soll)
Andreas Valder's avatar
Andreas Valder committed
49
* python-coverage (Für Coverage Tests benötigt)
50 51

Kurzform unter Ubuntu:
Andreas Valder's avatar
Andreas Valder committed
52
`sudo apt install python3 python3-flask sqlite python3-requests python3-lxml python3-ldap3 python3-icalendar python3-mysql.connector`
53 54 55

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