# 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 - **Fotos** - Fotowand je Verband + **Gesichtssuche**: eigenes Foto hochladen, die App findet die passenden Profile (lokaler SCRFD/MobileFaceNet, läuft ohne Internet-API) - **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= CIS_PASSWORD= CIS_BASE_URL=https://cis.hochschule-burgenland.at/cis OWN_UID= ``` `.env` wird nicht in das Docker-Image kopiert (`.dockerignore`), sondern zur Laufzeit übergeben. ### Datenverzeichnis `data/` Das Gesichtsmatching lädt beim ersten Start die Modelle (~16 MB, `insightface/buffalo_sc`) nach `data/models` und speichert Caches in `data/` (Profilbilder, Person-IDs, Gesichtsembeddings). Alles wird automatisch angelegt. Im Docker-Setup ist `data/` als Named Volume (`cis-data`) gemountet, damit Modelle und Caches beim Rebuild erhalten bleiben. ## 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 ```