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

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:8067

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.

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

# Image bauen
docker build -t cis-enhanced .

# Starten (Zugangsdaten aus .env)
docker run -d --name cis-enhanced --restart unless-stopped \
  -p 8067:8067 --env-file .env cis-enhanced

# oder mit Compose
docker compose up -d --build

Deploy (Caddy)

App auf Port 8067 starten (z.B. als systemd-Service, oder der Docker-Container portet nach 127.0.0.1:8067), Caddy davor:

deinedomain.at {
	reverse_proxy 127.0.0.1:8067
}

systemd-Beispiel:

[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 8067
Restart=always
User=www-data

[Install]
WantedBy=multi-user.target
S
Description
No description provided
Readme
217 KiB
Languages
Python 46.3%
HTML 22.8%
JavaScript 18.6%
CSS 12%
Dockerfile 0.3%