Skip to content

feat(web): courseStudents query — roster enriched with ZPA (Milestone F5d, Z2)#125

Merged
obcode merged 1 commit into
mainfrom
feat/course-students
Jul 19, 2026
Merged

feat(web): courseStudents query — roster enriched with ZPA (Milestone F5d, Z2)#125
obcode merged 1 commit into
mainfrom
feat/course-students

Conversation

@obcode

@obcode obcode commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Was

app.CourseStudents liefert das Kurs-Roster, jede E-Mail mit ZPA-Details angereichert (Vor-/Nachname, Geschlecht, Gruppe, Matrikelnummer), konkurrent abgefragt (max. 8 gleichzeitig). Ein ZPA-Fehler für einen Studi wird geloggt und lässt den Eintrag un-angereichert, statt die Seite scheitern zu lassen; ohne ZPA-Client kommt das Roster trotzdem (plain). Angereicherte zuerst nach Nachname, nicht-gefundene ans Ende nach E-Mail. Owner-scoped.

GraphQL courseStudents(course): [CourseStudent{email, found, firstName, lastName, gender, group, mtknr}]. Getestet gegen Mock-ZPA (Anreicherung + nicht-gefunden + Reihenfolge), No-ZPA-Pfad, Auth.

Studierenden-Seite (Z3) rendert das; per-Studi „generierte Repos"-Übersicht (GitLab) ist ein separater Folge-Schritt.

Verifikation

go build/vet (inkl. -tags=integration)/test/golangci-lint — grün.

🤖 Generated with Claude Code

… F5d, Z2)

app.CourseStudents returns a course's roster, each email enriched with ZPA details
(first/last name, gender, group, Matrikelnummer) looked up concurrently (bounded to
8 at a time). A ZPA failure for one student is logged and leaves that entry
un-enriched rather than failing the page; without a ZPA client the roster still
comes back, just plain. Enriched students sort first by last name, un-enriched sink
to the bottom by email. Owner-scoped via a.Course.

GraphQL courseStudents(course): [CourseStudent{email, found, firstName, lastName,
gender, group, mtknr}]. Tested against a mock ZPA (enrich + not-found + ordering),
the no-ZPA path, and auth.

The students page (Z3) renders this; a per-student generated-repos overview (needs
GitLab) is a separate follow-up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@obcode
obcode merged commit f781b88 into main Jul 19, 2026
8 checks passed
@obcode
obcode deleted the feat/course-students branch July 19, 2026 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant