opendesk-edu

πŸ—ΊοΈ Roadmap

openDesk Edu β€” from current state to a complete digital workplace for universities.

Principles

  1. Sovereignty first β€” every service self-hosted, no data leaves the cluster
  2. Helm-native β€” all integrations deployed via Helm charts within the existing helmfile structure
  3. SSO everywhere β€” SAML 2.0 (Shibboleth SP β†’ Keycloak) for legacy apps, OIDC for modern apps
  4. LTI where it matters β€” any teaching tool must be launchable from LMS via LTI 1.3
  5. No NIH β€” integrate proven open-source tools, don’t rebuild them

Current State (v1.0)

What Status
ILIAS LMS with SAML SSO βœ…
Moodle LMS with Shibboleth βœ…
BigBlueButton ↔ Jitsi (alternative) βœ…
OpenCloud ↔ Nextcloud (alternative) βœ…
Unified Keycloak SSO βœ…
Portal integration (tiles, icons) βœ…
Etherpad collaborative editor (OIDC) βœ…
BookStack knowledge base (SAML) βœ…
Planka project boards (OIDC) βœ…
Zammad helpdesk (SAML) βœ…
LimeSurvey course evaluation (LDAP) βœ…
Draw.io diagramming (stateless) βœ…
Excalidraw whiteboard (stateless) βœ…
Self-Service Password (LDAP) βœ…
SOGo groupware (alternative to OX App Suite) βœ…

v1.1 β€” Foundation

Hardening what we have and adding the missing essentials.

DFN-AAI / eduGAIN SAML Federation Support

German universities authenticate via the DFN-AAI federation (Shibboleth IdP). openDesk Edu must work as a SAML Service Provider within this federation.

Semester Lifecycle Management

Universities run on semester cycles (Wintersemester, Sommersemester). Courses, enrollments, and access need to follow this rhythm.

Backchannel Logout

Critical for security β€” when a user logs out of the portal, all sessions across all services must be terminated.

User Provisioning & Deprovisioning

Automate the complete user lifecycle β€” from account creation to permanent deletion β€” using the existing scripts/user_import/ tooling.


v1.5 β€” Campus Management Integration (HISinOne / Marvin)

The deepest integration layer β€” connecting openDesk Edu to the university’s central nervous system. This is what turns a collection of apps into a unified digital campus.

Why This Matters

HISinOne by HIS eG is the dominant campus management system in German higher education β€” used by 200+ universities, including Marburg (where it runs as β€œMarvin”). It is the source of truth for:

Every other system at a university is downstream from campus management. LMS courses are created because a module exists in the PrΓΌfungsordnung. Students enroll in courses because HISinOne says they’re registered. Rooms are booked because HISinOne’s timetable says so. Without campus management integration, openDesk Edu is just a suite of disconnected apps. With it, it becomes a digital campus.

The Data Model

HISinOne manages the complete student lifecycle:

Application β†’ Enrollment β†’ Study β†’ Exams β†’ Graduation β†’ Alumni
   (APP)        (STU)       (EXA)    (EXA)     (STU)    (ALU)

Key entities that flow into openDesk Edu:

Entity HISinOne Module openDesk Impact
Person (identity, roles, contact) PSV Account provisioning, SSO, group assignment
Student (matrikel number, status, fees) STU Role-based access (student/faculty), account lifecycle
Degree Program (BA/MA/StEx, rules, ECTS) EXA Study progress tracking, module requirements
Module (credits, workload, type, description) EXA Course catalog, handbook data
Course (title, semester, lecturers, room, time) EXA-VM Course creation in LMS, schedule, room info
Enrollment (student ↔ course registration) EXA-VM LMS membership, course rosters
Parallel Groups (course sections) EXA-VM LMS groups, tutorial assignments
Exam (type, date, room, grade) EXA-PM Grade display, transcript of records
Room (capacity, equipment, location) EXA-VM Room info in course context
Application (applicant data, program choice) APP Pre-enrollment access, guest accounts

Integration Architecture

The proven pattern at German universities uses three layers:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   HISinOne   β”‚       β”‚  openDesk Edu    β”‚       β”‚    HISinOne     β”‚
β”‚   (Marvin)   β”‚       β”‚  Integration    β”‚       β”‚    Proxy         β”‚
β”‚              β”‚       β”‚  Layer           β”‚       β”‚    (PHP, OSS)    β”‚
β”‚  SOAP API    │◄──────│  (middleware)     │──────►│    + Queue       β”‚
β”‚  Events      β”‚       β”‚                  β”‚       β”‚    + Dedup        β”‚
β”‚  qisserver   β”‚       β”‚                  β”‚       β”‚    + Listener     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚                    β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
         β”‚  Keycloak   β”‚    β”‚  LMS       β”‚
         β”‚  (SSO +     β”‚    β”‚  (ILIAS /   β”‚
         β”‚   accounts) β”‚    β”‚   Moodle)   β”‚
         β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                β”‚                  β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  BBB /      β”‚    β”‚  BBB /      β”‚    β”‚  Nextcloud /  β”‚
         β”‚  Jitsi      β”‚    β”‚  Jitsi      β”‚    β”‚  OpenCloud    β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key technical decisions:

  1. Build on the HISinOne-Proxy (GitHub, GPL-3.0) β€” the community-standard middleware used by FH Dortmund (3,000 courses/semester), Uni Bonn, FH Aachen, HHU DΓΌsseldorf. Don’t reinvent the wheel.
  2. HISinOne communicates via SOAP (qisserver/services2/) + TCP event listener (push, not poll)
  3. openDesk Integration Layer extends the proxy with additional targets (Keycloak, BBB, OpenCloud)
  4. HISinOne is always the source of truth β€” openDesk reads, never writes back to campus management

Phase 1: Identity & Account Lifecycle

Automate user provisioning based on university enrollment/exmatriculation events.

Data flow:

HISinOne (immatrikulation) β†’ LDAP/AD (existing university IdM) β†’ Keycloak (user sync) β†’ all services
HISinOne (exmatrikulation) β†’ LDAP/AD β†’ Keycloak (user deactivation) β†’ access revoked

Phase 2: Course Synchronization

Automate course creation, enrollment, and roster management in ILIAS and Moodle.

Data flow:

HISinOne (semester start) β†’ HISinOne-Proxy β†’ openDesk Integration Layer
  β†’ ILIAS: create courses, assign categories, add lecturers, enroll students
  β†’ Moodle: create courses, assign cohorts, enroll students
  β†’ BBB: create recurring meeting rooms per course (optional)
  β†’ Nextcloud/OpenCloud: create course file shares (optional)

Phase 3: Schedule, Rooms & Exams

Bring the semester calendar, room information, and exam data into the unified campus experience.

Phase 4: Study Progress & Advising

Transform raw campus management data into actionable student-facing information.

Phase 5: Cross-Service Intelligence

Connect campus management data with collaboration and communication tools for a smarter campus.

Technical Prerequisites

Before starting any HISinOne integration work:

Risks & Mitigations

Risk Impact Mitigation
No public API docs (HIS eG member-only) Blocks development Partner with university IT; use HISinOne-Proxy as reference
SOAP API (not REST) More complex integration Use proven proxy pattern; SOAP is stable and well-tested
TCP event listener (not webhooks) Requires network config Request firewall allowlist for HISinOne β†’ proxy connection
Each university customizes HISinOne differently Hard to generalize Make integration layer fully configurable per institution
HISinOne is not containerized Can’t deploy alongside openDesk Integration layer runs in-cluster; HISinOne stays on-prem
Student data is highly sensitive (DSGVO) Legal/compliance risk Follow data minimization; pseudonymize analytics; document data flows

v1.2 β€” Lecture Recording

The #1 requested teaching tool beyond LMS + video conferencing.

Opencast + Tobira Integration

Opencast is the dominant open-source lecture recording system in DACH universities (150+ contributors, active development, ECL-2.0 license). Tobira is a modern video portal built on top of Opencast (Rust, AGPL-3.0).

What Why
Official Docker images Easy to wrap in Helm
LTI support Launchable from Moodle/ILIAS courses
Shibboleth/OIDC auth Fits Keycloak SSO
Built-in Prometheus metrics Fits openDesk monitoring
Whisper transcription Local AI transcription, no cloud dependency

SNIpR β€” Lightweight Recording Alternative

SNIpR (MIT license, Rust) is a lightweight lecture recording alternative by the same author as F13’s transcription service. Perfect for smaller deployments or universities that want maximum control with minimal infrastructure.

Feature Opencast SNIpR
Language Java (large) Rust (tiny)
Complexity Microservices architecture Single binary
Storage Requires separate DB Simple file-based
Transcription Built-in Whisper GPU External (F13 or stand-alone)
Resources Heavy Lightweight
LTI Extensive Basic
Use case Enterprise Small-to-medium universities

Recommendation: Use Opencast for infrastructure-rich campuses, SNIpR for focused teaching needs.


v2.0 β€” Course Evaluation & E-Portfolio

Completing the teaching and learning cycle.

EvaP β€” Course Evaluation

EvaP (MIT license, Python/Django) is the standard course evaluation system used at HPI and growing in adoption. Lightweight, fits well into a Kubernetes deployment.

Mahara β€” E-Portfolio

Mahara (GPL v3, PHP) is the leading open-source e-portfolio platform. Supports LTI for launch from LMS, SAML for SSO, and provides competency-based assessment.


v2.1 β€” Campus Operations

Room booking, equipment lending, and resource management.

MRBS β€” Room Booking

MRBS (GPL v2, PHP) is the most widely deployed open-source room booking system in universities. Simple, LDAP-aware, well-understood.

LEIHS β€” Equipment Booking

LEIHS (GPL v3, Ruby) is used at multiple German universities for equipment and resource booking (cameras, laptops, lab equipment).


v3.0 β€” Digital Examination

Secure, on-premise exam infrastructure β€” a post-COVID standard.

R/exams + Safe Exam Browser

R/exams (AGPL v3, R) supports online exams with LTI integration for Moodle and ILIAS. Combined with the Safe Exam Browser (GPL v2), provides a lockdown environment.

JPlag β€” Plagiarism Detection

JPlag (GPL v3, Java, developed at KIT) runs entirely locally β€” no data leaves the cluster. Supports 15+ programming languages. GDPR-friendly by design.


v4.0 β€” AI & Analytics

Where universities are heading β€” with data sovereignty.

Local LLM Integration

Universities need AI tools that don’t send student data to cloud providers. The German government is funding €1B for AI infrastructure (2026-2030).

Learning Analytics (xAPI)

Capture learning activity across all services (LMS, video, portfolio) with xAPI standard.

F13 β€” Sovereign AI Assistant

F13 is an open-source AI assistant developed at Baden-WΓΌrttemberg universities (MPL-2.0, 7 microservices). Provides chat, RAG, document summarization, and transcription β€” all on-premise, no data leaves the cluster.

What Details
Core FastAPI (Python), Svelte frontend
Auth Keycloak-native (JWT via JWKS, UMA, RBAC)
Services chat, summary, parser (OCR), RAG, transcription (Whisper)
GPU Required for parser (EasyOCR), RAG (embeddings), transcription
Registry registry.opencode.de/f13/microservices/

v5.0 β€” Federation & Multi-Tenancy

Sharing services across universities.

Cross-University Service Sharing

Following models like VCRP (Rhineland-Palatinate shared OpenOlat), enable universities to share services while keeping data separate.

SATOSA Proxy for Federated Instances

SATOSA is a SAML/OIDC proxy that enables federated identity scenarios β€” ideal for universities sharing openDesk Edu across federations (eduGAIN, DFN-AAI).

Research Data Management

Growing EU requirement via European Open Science Cloud (EOSC).


Not Planned (or Deferred)

Tool Reason
Stud.IP No LTI, no Docker/K8s, limited REST API β€” too hard to integrate. Universities that use it should keep it alongside openDesk.
Papercut MF Proprietary. No viable open-source alternative exists for full print management (web print, follow-me, card readers).
Canvas LMS Proprietary (Instructure). Conflicts with sovereignty principle.
Shibboleth IdP deployment Universities already run their own IdP. openDesk Edu integrates as a SAML SP, not an IdP provider. SATOSA proxy (v5.0) handles SAML-to-OIDC translation for federated scenarios.
Keycloak as eduGAIN IdP SAML federation support is incomplete. Use Shibboleth IdP for federation, Keycloak for internal IAM.

Timeline

2026 Q2   v1.0  Core platform + 13 education services (ILIAS, Moodle, BBB, OpenCloud, SOGo, Etherpad, BookStack, Planka, Zammad, LimeSurvey, Draw.io, Excalidraw, SSP)
           v1.1  DFN-AAI federation + semester lifecycle + logout + user provisioning/deprovisioning
2026 Q3   v1.2  Opencast + Tobira lecture recording
2026 Q4   v1.5  HISinOne/Marvin campus management integration (phase 1: identity)
2027 Q1   v1.5  HISinOne integration (phase 2: courses, phase 3: schedule/exams)
2027 Q2   v1.5  HISinOne integration (phase 4: study progress, phase 5: intelligence)
2027 Q3   v2.0  EvaP + Mahara (evaluation + portfolio)
2027 Q4   v2.1  MRBS + LEIHS (room + equipment booking)
2028 Q1   v3.0  R/exams + JPlag (digital examination)
2028 Q2   v4.0  Local LLM + xAPI analytics + F13 sovereign AI assistant
2028 Q3   v5.0  Multi-tenancy + SATOSA proxy + research data management

Contributing

Have an idea for the roadmap? Open an issue β€” we’d love to hear what your university needs.