Another week in GSoC 2015 has gone by, and I’ve been busy working on the Moorsp Plugin for Moodle.
My main task during the past week was to complete the functionality of the Moorsp plugin and to ensure that it checks for duplicate submissions by comparing the filehashes of uploaded files.
Moodle takes two forms of submissions for assignments, forums and workshops; file uploads and online text. To store online text in the plagiarism_moorsp_files table, I hash the contents of the submission and store it with content_hashvalue as the filename.
The get_links() function is called, which in turn calls the get_file_results() function which carries out the actual comparison of files in the context of Moorsp. This will add a checked image to each submission as follows (green check mark for files that are not plagiarised, red warning sign for those that have been plagiarised).
The next step is to start writing Unit Tests and Behat tests to provide test coverage for the Moorsp plugin.
The 2nd week of GSoC and the final week of the Community Bonding period has rolled past, and I have been busy engaging with the Moodle community over the past couple of weeks.
As I explained to my mentor Dan, I see actually developing code as a great way to engage with the Moodle community as, in that case, I would be working on the Moodle Tracker and this enables me to interact with many members of the Moodle community through the peer review and integration testing processes.
As I had experience in writing automated Behat features beforehand, I thought the best contribution I could make would be to automate some of the top priority QA tests using Behat. So I worked on automating a couple of tests, MDL-50110 and MDL-50261. The first one was promptly accepted and integrated, while the 2nd it turned out, had already been automated. However, I got the chance to interact with the cool and calm dev community of Moodle who didn’t get frustrated by my repeated mistakes.
I also took some time to clean up the code of a Behat test I had been working on previously, MDL-43731, which is an interesting case as it required me to provide fixes on the Moodle 2.7 and 2.8 stable branches as well. This was a very interesting test to work on as I got input from over 8 members of the community who brought in different ideas on how to best automate the test. It was a very rewarding experience as I was able to understand the best practices involved with writing a Behat feature for Moodle.
While this was going on, I was working with my mentor Dan on getting started on developing the Moorsp plugin. My changes are currently going in to the dev branch on my fork of the Moorsp repo. As some initial work, I made some modifications to the Moorsp settings form so that it can be enabled for modules that support the Plagiarism framework. Dan was able to help me out with some snippets of code that would make use of the framework properly. I also had a lot of help from another commercial plagiarism plugin that Dan has developed; Urkund.
That’s it from me for this week. See you soon!