We're currently building an eLearning system and up until now Moodle 2.2.1 has been a great choice and was able to do just about everything we wanted it to do.
However, one of the desired features for this system is giving me a bit more of a headache than I expected:
In order to give students an incentive to post constructive feedback and questions on the forums we want to give them the ability to rate each others posts. This should not be part of their final grade, but we would like to display a public ranking of students with the most helpful post to incentivise others to follow in their footsteps.
In order to increase fairness and avoid problems arising from a traditional grading scale, the students should only be able to give positive feedback for posts they liked, but no negative feedback for posts or possibly even students they may dislike. This is somewhat similar to Google's "+1" or Facebook's "Like" approach to rating content - not perfect, but it eliminates several problems of the more traditional public rating system.
Sadly, I found no proper, somewhat native way of doing anything like this or even similar with Moodle's grading system.
Just using a simple scale of 0 to 1 would be perfectly fine if one could display the total sum of "ones" under the post and create a small, live table of the top ranked students that the students can see.
Even when chosing to display the sum of all votes, Moodle naturally caps this at the highest possible grade, one, making the result useless.
So in short the features required would be:
- adding votes/likes/plus or similar to forum entries - this doesn't have to be overly pretty and can make use of the existing dropdown menu
- showing who liked/graded whom to the teachers and admins internally - this is already possible with the existing system
- possibly show a list of the highest ranked students to students and teacher alike
Ist there any clever way of using Moodle's othwerwise incredibly powerful grading system in the way we want to, did I simply miss an existing function? Any simple hack to allow for it without sacrificing the abiliuty of somewhat painless Moodle updates in the future (tweaking a couple of lines of Moodle code would be fine as long as it can somewhat painlessly be applied to future versions)?
How easy would it be to extend Moodle with this feature for someone with php knowledge and a background in php-based CMSs? Is there maybe already a plugin providing something similar? How flexible and well documented is Moodle's plugin system in this area (could one hook into the existing grading system and extend it or would one have to reinvent the wheel)?