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:
Nicolas Gruber
2026-10-15 16:27:52 +02:00
commit 32b4dc4823
19 changed files with 1655 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
{% extends "base.html" %}
{% block title %}Start{% endblock %}
{% block content %}
<div class="hero">
<h1>Willkommen beim CIS Enhanced</h1>
<p>Bessere Ansichten für deinen Lehrveranstaltungsplan, Studiengangs-Pläne und Namenslisten -
basierend auf den Daten des FH-Burgenland-CIS.</p>
</div>
<div class="tiles">
<a class="tile" href="/plan">
<div class="icon">&#128197;</div>
<h3>Studentenplan</h3>
<p>Dein eigener Plan oder der eines anderen Studierenden (Matrikelnummer eingeben),
Woche für Woche übersichtlich - inkl. iCal-Export.</p>
</a>
<a class="tile" href="/stg">
<div class="icon">&#127979;</div>
<h3>Studiengangs-Pläne</h3>
<p>Ganzer Studiengang nach Studien-Semester, Verband (Vollzeit/Berufsbegleitend)
und Gruppe - direkt aus dem CIS, ohne Archiv-Dates.</p>
</a>
<a class="tile" href="/liste">
<div class="icon">&#128101;</div>
<h3>Namenslisten</h3>
<p>Teilnehmerlisten je Studiengang, Semester und Verband - mit Suche und CSV-Export.</p>
</a>
</div>
<div class="card" style="margin-top:16px">
<h2>Studiennummer decoder</h2>
<p style="color:var(--muted); margin-top:0">Eine FH-Burgenland-Nummer wie <span class="mono">2410640055</span>
encodiert Startsemester, Studiengang und Fortlaufnummer:</p>
<form class="form-row" id="decode-form">
<div class="field">
<label>Matrikelnummer</label>
<input type="text" id="decode-input" value="{{ own_uid }}" placeholder="z.B. 2410640055"
oninput="decodeMat()">
</div>
</form>
<div class="decoder-result card" id="decode-result" style="background:var(--blue-light); box-shadow:none"></div>
</div>
{% endblock %}
{% block scripts %}
<script>
window.__STGS__ = {{ stgs | tojson }};
window.__SEMESTERS__ = {{ semesters | tojson }};
</script>
{% endblock %}