Releases: ls1intum/thesis-management
4.10.2
✨ New Features
Configurable Grading Scheme for Thesis Assessments
Research groups can now define a default grading scheme with weighted components (e.g., "Thesis Content" 40%, "Methodology" 30%, "Presentation" 30%). When submitting an assessment, examiners see the pre-configured grade components and can assign individual grades per component. The overall grade is automatically calculated as the weighted average. Components can be marked as bonus items (excluded from weight validation). The final grade modal also pre-fills with the weighted average across all assessments, while still allowing manual override. Research groups without a grading scheme continue to work as before.
🐛 Bug Fixes
-
Fixed avatar display for examiners and supervisors
Avatars for examiners and supervisors on internal theses were not loading correctly, showing a 404 error. This has been resolved. -
Fixed an issue where users could lose their assigned roles
In rare cases, users could lose their assigned role (e.g., "student") when the identity provider was temporarily unavailable. Role assignments are now stored directly in the application database, making them independent of the identity provider's availability. -
Fixed edge cases in research group membership management
Improved error handling when changing the head of a research group or removing members. The system now shows accurate error messages instead of generic "access denied" responses when something goes wrong.
🔧 Maintenance & Dependency Updates
Several internal dependencies were updated to keep the system secure and up to date. These changes do not affect user-facing functionality but improve maintainability and stability.
Updated components include:
- Build tools (Gradle, Docker build actions)
- Client libraries (DOMPurify, Terser Webpack Plugin, CSS Extract Plugin, ESLint)
- Server libraries (Lombok)
Full Changelog
v4.10.1...v4.10.2
4.10.1
✨ Improvements
-
Pagination on the Research Groups page
The list of research groups now supports pagination at the bottom of the page, making it easier to navigate large numbers of groups. -
Improved performance for dropdowns
Dropdown components now avoid unnecessary data requests when they are disabled, resulting in slightly faster and more efficient page behavior. -
Fixed an issue on the thesis page for students
Unnecessary error messages are not shown anymore to students on the thesis page. -
Clearer privacy statement
The privacy statement has been updated to improve clarity and transparency. -
Better test coverage
Additional end-to-end tests were added to cover previously untested features, improving overall reliability. -
Optimized Docker builds
Build performance was improved through better layer caching and streamlined image configuration.
🔧 Maintenance & Dependency Updates
Several internal dependencies were updated to keep the system secure and up to date. These changes do not affect user-facing functionality but improve maintainability and stability.
Updated components include:
- Code formatting and linting tools (Spotless, ESLint)
- Build and bundling tools (PostCSS, Terser, CSS Minimizer Webpack Plugin)
- Database image update (PostgreSQL Docker image)
- Additional internal build and development tooling improvements
Full Changelog
v4.10.0...v4.10.1
4.10.0
💥 Breaking Changes
Role Terminology Updated
The role names have been updated across the entire application to better reflect their actual responsibilities:
- "Supervisor" is now called "Examiner" (the professor who grades the thesis)
- "Advisor" is now called "Supervisor" (the person who guides the student day-to-day)
All existing data (theses, topics, email templates) has been automatically migrated. If you have custom email templates, please verify that the role labels and variable names are correct.
✨ New Features
User Data Export (GDPR Right of Access)
Users can now export all their personal data from the settings page. The export includes profile information, thesis data, applications, and uploaded files as a downloadable archive.
Account Deletion (GDPR Right to Erasure)
Users can request deletion of their account from the settings page. A preview shows what data will be affected before confirming. Admins can also manage user deletion requests.
Automatic Thesis Anonymization
Theses are now automatically anonymized after a 5-year retention period. Student names and personal data are removed to comply with data privacy requirements. Admins can also trigger anonymization manually and manage retention settings from the admin page. Email notifications are sent before anonymization occurs.
Automatic Cleanup of Rejected Applications
Rejected thesis applications are automatically cleaned up after a configurable retention period (default: 1 year), reducing stored personal data.
Updated Data Privacy Statement
The privacy statement has been updated to reflect the new data processing practices, including data export, account deletion, and retention policies.
Application Disclaimer for Students
Students now see a disclaimer when submitting thesis applications, informing them about data processing and the application workflow.
Dark Mode / System Theme Support
The application now respects your operating system's color scheme preference (light or dark mode).
Per-Group Settings
Research groups can now individually configure:
- Data privacy settings
- Scientific writing guide links
- Application email content
🧰 Improvements
-
Faster Page Loading
List views (theses, topics, applications) now load significantly faster thanks to optimized API responses with lightweight overview. -
Reduced Deployment Downtime
Deployments now pre-pull Docker images before restarting, reducing downtime to a few seconds. -
Improved Email Notifications
Application notification emails now contain less personal data to improve privacy by default. Research groups can still decide to send the full details. -
Security Hardening
Added response headers to prevent clickjacking, improved input validation, file upload type restrictions, email template content validation, and strengthened authorization checks. -
Improved Error Handling
Better error messages and validation across forms and API endpoints. -
Vulnerability Reporting Policy
Added SECURITY.md with instructions for responsible disclosure.
🐛 Bug Fixes
- Fixed an issue where selecting students in a thesis configuration did not work correctly
- Fixed application email content settings not saving properly for research groups
- Fixed research group settings page errors
- Fixed logout issues
- Fixed data retention handling for theses in incorrect states
🔧 Infrastructure & Dependencies
- Upgraded to Spring Boot 4.0, Hibernate 7, Liquibase 5, and Jackson 3
- Upgraded PostgreSQL from 17 to 18
- Updated React, Mantine UI, Tiptap editor, and keycloak-js to latest versions
- Updated client Docker image to Node 24
- Added comprehensive Playwright E2E test suite with CI integration
- Added Mailpit for email verification in E2E tests
- Various dependency updates (see full changelog for details)
Full Changelog: v4.9.0...v4.10.0
4.9.0
💥 Breaking Changes
Email Template Variables Reworked
The available template variables for emails have been revised.
- Existing system templates were automatically migrated.
- Variables that still exist were renamed accordingly during migration.
⚠️ If you used custom email templates with deprecated variables, those variables may no longer be available.
Action Required:
Please review your custom email templates and verify that all variables are still valid.
✨ New Features
Custom Email Templates per Research Group
Each research group can now customize email templates for Accept, Reject, and Presentations.
- Edit email templates individually per group
- Adapt communication to specific processes and requirements
🧰 Improvements & Maintainance
-
Topic Overview Links Usability
Topic links can now be opened in new browser tabs. -
Interview Process Test Coverage
AddedInterviewProcessTeststo improve the reliability of the interview workflow. -
Documentation Updates
- Added Interview Process video links
- Updated access tables in Readme
-
Dependency & CI Updates
- Updated GitHub Actions (
checkout@v6,appleboy/ssh-action@v1.2.5) - Updated client build dependencies (webpack plugins, css-loader, eslint-plugin-prettier, etc.)
- Updated GitHub Actions (
🐛 Bug Fixes
-
Booking Confirmation Scroll
Fixed an issue where the booking confirmation dialog was not scrollable. -
About Page – Git Information
Fixed incorrect display of git branch and commit information.
4.8.0
✨ New Features
-
Interview Management
A new Interview Management feature has been introduced, enabling structured handling of interview processes directly within the system.- Add and manage interviewees
- Invite candidates to interviews
- Create interview slots and schedule interviews
- Take notes during interviews for better documentation and evaluation
-
Matriculation Number Sync from Keycloak
The matriculation number is now automatically synchronized from the Keycloak JWT, ensuring consistent and up-to-date student data without manual intervention.
🧰 Improvements
- Updated Role Labels (CIT Terminology)
Role labels in the UI have been aligned with official CIT terminology for improved clarity and consistency.
🐛 Bug Fixes
- Immutable List Error in Scheduled Rejections
Fixed an issue where usingtoList()resulted in an immutable list, causing a recurring error during scheduled execution.
🔧 Maintenance
- Dependency & Tooling Updates
Multiple dependencies and tools were updated, including TypeScript, Webpack, ESLint, npm, OpenJDK, Lombok, and CI-related actions.
These updates improve stability, security, and long-term maintainability of the project.
4.7.0
✨ New Features
- Draft Theses for Supervisors
Supervisors can now create theses in a draft state before making them visible to students. This allows better preparation and review before publication.
🐛 Bug Fixes
-
Presentation Duration not accessible publicly
Improved the handling of the duration setting to ensure it always exists and is reliably accessible across the system, even without explicit access checks. -
Calendar Link Subscription
Fixed an issue where the duration setting could be missing, potentially causing errors in the calendar subscription.
4.6.0
✨ New Features
-
Custom Presentation Slot Duration
Research groups can now configure the duration of presentation slots, enabling more flexible scheduling. -
Optional Proposal Phase
Research groups can now disable the proposal phase if it is not needed in their workflow. -
Application Notification Email
Introduced a new additional notification email that receives emails when students submit applications.
🧰 Improvements
-
Updated Research Group Settings
The Research Group Settings section has been restructured by phase for better usability. -
Read-Only Profile Fields Synced from LDAP
Fields in the profile that are automatically synchronized from LDAP are now read-only to prevent incorrect changes. -
Clickable Research Group Cards
Research group cards are now clickable links, making it easier to open them in new tabs.
🐛 Bug Fixes
-
Presentation Page “Today” Not Included
Fixed an issue where the Presentation page did not correctly show the current day.- Minimum Value for Semester Field
Added a minimum allowed value for the semester field to ensure consistent data.
- Minimum Value for Semester Field
4.5.0
✨ New Features
- Filter and Search for Submit Applications
Added new filtering and search functionality to the Submit Application page, allowing users to quickly locate applications based on relevant criteria. Reworked Page Design.
🐛 Bug Fixes
- Published Theses Accessibility
Fixed an issue where published theses were only accessible to logged-in users. Published theses are now correctly available to all visitors as intended.
🧰 Improvements & Maintenance
-
Support Email on About Page
Introduced an email alert banner on the About page to improve communication. -
Dependency Updates
- Updated PostgreSQL Docker image to
v17.6 - Updated Traefik to
v3.5 - Updated Radicale to
v3.5.7.0 - Updated appleboy/scp-action to
v1 - Updated appleboy/ssh-action to
v1.2.2 - Updated actions/checkout to
v5
- Updated PostgreSQL Docker image to
4.4.2
🐛 Bug Fixes
- Automatic Application Reject
Fixed an issue where not assessed applications were incorrectly included in the automatic rejects. The reference date was set incorrectly when no deadline or planned start was set. The logic sets the reference date to the creation date of each application now.
🧰 Improvements & Maintenance
-
Research Group Selection in Presentation Overview
Replaced the previous tab-based navigation with a dropdown selector for research groups if there are more than 5 that the user has access to, making it easier to manage and browse multiple presentations. -
Java 25 Upgrade
Updated the project to Java 25, ensuring compatibility with the latest language features, improved performance, and long-term maintainability.
4.4.1
🐛 Bug Fixes
- Dark Mode Card Background to light
Updated theCardBackgroundcolor of components in TopicPage and PresentationOverview for a consistent dark mode appearance.
🧰 Improvements & Maintenance
-
Comment Section UI Update
Improved the comment section design with clear visual indicators for file uploads, enhancing clarity for users when attaching files. -
Presentation Overview Enhancements
The presentation overview now includes:- Display of the thesis type for better context.
- New accept and edit options directly from the overview page, improving supervisor workflow and usability
-
Presentation Navigation
Users can now navigate to a presentation’s detail page.
The “View Thesis” button only appears to users who have access to view the thesis. -
Proposal Feedback Dismiss Card
Added a confirmation dialog asking users if they’re sure before discarding unsaved changes for proposal feedback — helping prevent accidental data loss. -
Docker Configuration Update
Added a Docker restart policy indocker-compose.prod.ymlto ensure improved reliability and uptime for production deployments.