the obsidian-git plugin. Auto commits and pulls/push every x minutes. Works great for me, I get full version control and works on all my platforms (Linux, Windows, Android). You just need to be careful with your .gitignore and add at least .obsidian/workspace.json to prevent conflicts.
Probably not suitable if you store larger files, but after a year of daily usage with tons of small images I’m still below 150 MB.
+1 for mediawiki
Although you really need to consider the peer group you are working with, and make the contribution as little work as possible. In my experience, as soon as the course is over people won’t want to do any extra work like change the formatting or integrating with existing materials. And requiring to use a specific format (even if it’s something dead simple as markdown) might already be too much friction.
In my experience shared cloud storage (GDrive, Dropbox,…) works quite well, even if the feature set is very limited. Being able to simply plonk your .docx/.pdf/.whatever into there is very easy and low friction.
A different solution I saw that worked was a forum where you could also upload files that could be categorized into the different courses and were then accessible by others. If you were to self-host this, you’d really want to make sure somehow that it’s not exploited to spread malware or worse.
Anyways, I wouldn’t think too much about how well the material can be represented, but rather how you can get your peers to continuously contribute to it. The best representation is useless without the data going with it.