CIS Enhanced: FastAPI-App für LV-Plan, Studiengangs-Pläne und Namenslisten des FH-Burgenland-CIS
- Studentenplan (eigene/fremde Matrikelnummer) mit Wochenansicht, Semesterübersicht, iCal/CSV-Export - Studiengangs-Pläne nach StG/Semester/Verband mit Gruppen-Filter - Namenslisten mit Suche, Matrikel-Decode und CSV-Export - Studiennummer-Decoder auf der Startseite - Docker (Dockerfile, Compose) und Caddy-Beispiel für Deploy
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# CIS Enhanced
|
||||
|
||||
Bessere Ansichten für das FH-Burgenland-CIS:
|
||||
|
||||
- **Studentenplan** - eigener oder fremder Plan (Matrikelnummer), Wochenansicht + Semesterübersicht, iCal/CSV-Export
|
||||
- **Studiengangs-Pläne** - nach Studiengang, Studien-Semester und Verband (Vollzeit/Berufsbegleitend), inkl. Gruppen-Filter
|
||||
- **Namenslisten** - je Studiengang/Semester/Verband mit Suche und CSV-Export
|
||||
- **Studiennummer-Decoder** - Matrikelnummer wird in Startsemester, Studiengang und Nummer zerlegt
|
||||
|
||||
## Lokal starten
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
.venv\Scripts\pip install -r requirements.txt # Windows
|
||||
# venv/bin/pip install -r requirements.txt # Linux/Mac
|
||||
.venv\Scripts\python run.py
|
||||
```
|
||||
|
||||
Öffne http://127.0.0.1:8000
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Zugangsdaten in `.env` eintragen (Vorlage: `.env.example`):
|
||||
|
||||
```
|
||||
CIS_USER=<matrikelnummer>
|
||||
CIS_PASSWORD=<passwort>
|
||||
CIS_BASE_URL=https://cis.hochschule-burgenland.at/cis
|
||||
OWN_UID=<eigene matrikelnummer>
|
||||
```
|
||||
|
||||
`.env` wird nicht in das Docker-Image kopiert (`.dockerignore`), sondern zur Laufzeit übergeben.
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
# Image bauen
|
||||
docker build -t cis-enhanced .
|
||||
|
||||
# Starten (Zugangsdaten aus .env)
|
||||
docker run -d --name cis-enhanced --restart unless-stopped \
|
||||
-p 8000:8000 --env-file .env cis-enhanced
|
||||
|
||||
# oder mit Compose
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
## Deploy (Caddy)
|
||||
|
||||
App auf Port 8000 starten (z.B. als systemd-Service, oder der Docker-Container
|
||||
portet nach `127.0.0.1:8000`), Caddy davor:
|
||||
|
||||
```ini
|
||||
deinedomain.at {
|
||||
reverse_proxy 127.0.0.1:8000
|
||||
}
|
||||
```
|
||||
|
||||
systemd-Beispiel:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=CIS Enhanced
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/pfad/zu/cis-enhanced
|
||||
ExecStart=/pfad/zu/cis-enhanced/.venv/bin/python -m uvicorn app.main:app --host 127.0.0.1 --port 8000
|
||||
Restart=always
|
||||
User=www-data
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
Reference in New Issue
Block a user