At the end of 2024, we serve you with a ton of improvements to MaMpf ✨. With regards to the UI, the biggest change is the redesigned profile page shining in new splendor (and better adapted to mobile phones as well):
You might be wondering: what is that Redeem voucher
field at the top? Well, that's a new voucher system we introduced to be better compliant to GDPR. Previously, elevated users like teachers could search for users in the whole database, e.g. when they wanted to assign them as tutors for their lecture. This is problematic since teachers could see all users in the database, including their e-mail.
With the new system, teachers can no longer use such a search. Instead, they most probably already have some contact to the users, e.g. via e-mail. So why not leverage that? From now on, teachers create a so-called voucher, which is a secure hash. They send it via another channel like e-mail to the users they want to give the "tutor status" for their lecture. Those users can then redeem the voucher on their profile page. A similar mechanism exists for speakers of a seminar, teachers themselves and editors of lectures.
As usual we upgraded our dependencies. 🔍 Shoutout to @christian-heusel who pointed us to an outdated solr version in #700 (solr is the search engine we are using). We also updated our security policy. At this page, you can report any security vulnerabilities without having to make them public in a GitHub issue.
For devs
As a highlight in the backend, developers now have the possibility to create ERD diagrams locally as PDF files (see just utils erd
. Please add new diagrams when you modify the database tables 🙏
We now also support dynamic instance method calls on FactoryBot objects in Cypress, see #696. Just use .call.my_rails_method_name
on the respective objects. Furthermore, quite a few new Cypress integration tests were added, such that our CI/CD pipeline takes really long to complete 🙈, but at least many scenarios are covered. We want to prevent regressions and give you the best possible experience with MaMpf.
What's Changed
- Add
just
commands for docker logs by @Splines in #681 - Fix lecture edit page if active term is not set by @fosterfarrell9 in #683
- Clean up Gemfile & pin all gems by @Splines in #680
- Remove unnecessary
with_teacher_by_id
trait by @Splines in #687 - Explicitly set locale to German in course specs by @Splines in #692
- Vouchers for user promotion - Part 1: Introduction of Vouchers by @fosterfarrell9 in #670
- Deal with registration edge cases in UserCleaner by @Splines in #693
- Update contribution guide & year in license file and footer by @Splines in #689
- Update Gemfile dependencies (
bundle update
) by @Splines in #688 - Fix annotation feedback not shown when share feature is disabled by @Splines in #686
- Apply RootPathnameMethods linting suggestion by @Splines in #695
- Allow dynamic instance method calls on FactoryBot objects in Cypress by @Splines in #696
- Init support for entity-relationship diagram creation (Ruby ERD) by @Splines in #697
- Vouchers for user promotion - Part 2: Redemption by @fosterfarrell9 in #671
- Add Ruby Test explorer to recommended VSCode extensions by @Splines in #705
- Init dependencies (deps) Just commands by @Splines in #711
- Fix annotation status default value in UI by @Splines in #708
- Update RuboCop & fix offenses by new lints by @Splines in #714
- Update Gems by @Splines in #712
- Update Node.js dependencies by @Splines in #713
- Fix flaky user deletion & redemption cypress test by @Splines in #718
- Disable Style/ArrayIntersect on one line by @Splines in #720
- Add "no results" messages pointing to new voucher system by @Splines in #707
- Redesign profile page by @Splines in #706
- Add
just docker rebuild
command by @Splines in #719 - Merge hotfixes of
main
intodev
by @Splines in #722 - Fix flaky Cypress submission test by @Splines in #725
- Fix failing
just docker rebuild
script by @Splines in #724 - Fix flaky voucher redemption Cypress test by @Splines in #726
- Update security policy by @Splines in #727
- Remove obsolete tutorial name search field by @fosterfarrell9 in #728
- Continuous Release 1.15.0 by @Splines in #723
Full Changelog: v1.14.4...v1.15.0