Is your feature request related to a problem? Please describe.
Currently, the repository uses a two-branch structure: the main branch serves as a general version suitable for any institution, while the lecture branch contains specific modifications required by Heidelberg University. This setup leads to redundancy and makes maintenance difficult as institutional requirements change.
Describe the solution you'd like
Replace the two-branch structure by introducing modular solutions for all components that typically vary from institution to institution (e.g., authentication, branding, lecture configurations, etc.). Develop a plugin or module system to encapsulate institution-specific code and configurations, so these can be cleanly maintained and extended as new institutions adopt the system. The main branch should remain the central codebase, with separate modules or configuration files handling customization, rather than maintaining a long-lived parallel branch.
Describe alternatives you've considered
- Continue maintaining a dedicated branch for each institution, which risks divergence and duplicated efforts.
- Hardcoding institution-specific logic behind configuration toggles, which could clutter the core codebase.
Additional context
A modular approach can streamline contributions, reduce code duplication, and simplify adoption for new institutions. Modular design also improves maintainability and supports the growth of the project beyond a single university.
Is your feature request related to a problem? Please describe.
Currently, the repository uses a two-branch structure: the
mainbranch serves as a general version suitable for any institution, while thelecturebranch contains specific modifications required by Heidelberg University. This setup leads to redundancy and makes maintenance difficult as institutional requirements change.Describe the solution you'd like
Replace the two-branch structure by introducing modular solutions for all components that typically vary from institution to institution (e.g., authentication, branding, lecture configurations, etc.). Develop a plugin or module system to encapsulate institution-specific code and configurations, so these can be cleanly maintained and extended as new institutions adopt the system. The
mainbranch should remain the central codebase, with separate modules or configuration files handling customization, rather than maintaining a long-lived parallel branch.Describe alternatives you've considered
Additional context
A modular approach can streamline contributions, reduce code duplication, and simplify adoption for new institutions. Modular design also improves maintainability and supports the growth of the project beyond a single university.