I am David West an academic at the UCL School of Pharmacy now retired.
We have been using wikis in a teaching environment for about 15 years. We use it to teach relationships between the diverse subjects that make up a pharmacy degree. There are about 200 students enrolled. The wiki header is as:
The aim of this project is to promote a deeper understanding of pharmacy by revisiting material from all preceding courses and using this wiki to study and document the interrelationships that exist. The project is expected to involve about 100 hours of self study. Work can be carried out anywhere with access to the internet. Each student will be allocated 5 topics from a total population of about 1000. It is not the topics themselves that are the key to this project, but highlighting and substantiating the connections between these and other different but relevant topics illustrated by using hyperlinks. At the end of this course students will be better able to integrate across the diversity of subject knowledge that makes up pharmacy as is essential when dealing with practice situations. Final assessment is by submission of a map based around the 5 topics and showing their interrelationships within the context of pharmacy by using the other topics available.
We need to keep track of all the activity. We monitor words, links, edits, days editing, back links, ratio of words to links. There are various milestones that need to be achieved during the project. To do this and manage the wiki we have developed a number of both special page and code extensions for local use with a few extra tables added to the database. Each page edit stores it's state to a dedicated table. We can see at a glance the state of each student and their pages, Students can track the states of their own pages. Students and staff can grade pages. These extensions have been modified over the years as mediawiki has made changes to the core code.
I have a working knowledge of PHP but do have a hard time with some mediawiki code and keeping track of changes when they affect our extensions.
We have never published any of our extensions.
I have upgraded to 1.37 and needed to enrol a set of users. The best way to do this is with InputUsers and I have just provided a patch for the extension for 1.37. See Talk page https://www.mediawiki.org/wiki/Extension_talk:ImportUsers?tableofcontents=0