Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Plagiarism API improvements: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
Line 59: Line 59:
* [[https://github.com/danmarsden/moodle-plagiarism_urkund URKUND]]
* [[https://github.com/danmarsden/moodle-plagiarism_urkund URKUND]]
* [[https://github.com/danmarsden/moodle-plagiarism_compilatio Compilatio]]
* [[https://github.com/danmarsden/moodle-plagiarism_compilatio Compilatio]]
=== Schedule of Deliverables ===


'''24th April - 30th May -''' Discuss with the mentor and prepare an outline of all the relevant hooks to be added in the modules and their implementation.
=== Deliverables ===
'''31st May - 6th June (1 week) -''' Add Plagiarism API support to essay questions (quiz module) - MDL-32226.
Main Task - Add Plagiarism API hooks to other areas of Moodle Code
 
*Sub Tasks*
'''7th - 13th June (1 week) -''' Add Plagiarism API support to Workshop Module - MDL-32227.
* [[Add Plagiarism API Support to Workshop Module]]
 
'''14th - 24th June  (1.5 week) -''' Add Plagiarism API support to Online Assignment Type -MDL-32228 and File attachments in Forum posts - MDL-32229.
 
'''25th - 27th June (3 days) -''' Writing documentation of Plagiarism API (for new hooks)
 
'''28th June - 30th June (3 days) -''' Test all modules for the new Plagiarism support, identify bugs and fix them.
 
'''1st July - 13th July (2 weeks) -''' Improving Open-Source Crot Plugin to support the new hooks.
 
'''''Midterm Evaluation Target-''''' Includes completion of first part of project along with documentation and extending Crot plugin's support to new hooks.
 
'''14th - 23rd July (1.5 week) -''' Implementing new hooks in Turnitin.
 
'''21st - 30th July  (1.5 week) -''' Implementing new hooks in URKUND plagiarism plugin.
 
'''31st July-  3rd Aug (4 days) -''' Updating documentation of current Plagiarism plugins (Crot, Turnitin and URKUND) about new hooks.
 
'''4th - 19th Aug (around 2 weeks) -''' Testing, identifying and fixing bugs.


== Relevant Links ==
== Relevant Links ==

Revision as of 14:43, 20 August 2012

Plagiarism API improvements
Project state Community Bonding
Tracker issue MDL-32225
Discussion
Assignee Kanika Goyal

Moodle 2.3

GSOC '12

Introduction

This is a GSOC 2012 Project. The goal of this project is to extend some core modules to use the Plagiarism API.

Project Details

Description

The Plagiarism API is a core set of functions that all Moodle code can use to send user submitted content to Plagiarism Prevention systems. When a user submits a file (or content) inside a module that has been configured for the Plagiarism Plugin, an event is triggered which contains details about user, module and submissions. Plagiarism plugin has event handlers which will then check for plagiarism content. Plugin will return the hooks (defined in Plagiarism API) for displaying information to both the user and the teacher.

Currently, Plagiarism API only supports Single upload assignment and Advanced uploading of assignments. This project aims at extending the support to other Moodle modules such as -

1. Online assignment type (Assignment 2.2)

2. Assignment

3. Workshop module

4. Quiz module (essay questions)

5. Forums posts (file attachments)

After the implementation of relevant hooks for the Plagiarism API and then adding the support for new hooks in the above mentioned modules, the current Plagiarism Plugins will be improved to support these new hooks.

Implementation

Plagiarism API requires hooks for modules to trigger an event (like assessable_file_upload in case of assignment module), that is, to pass user submitted content to Plagiarism Plugin and also to allow display of information (such as similarity score) on teachers and students page. Plagiarism plugin have listener for the event which will then do the necessary processing, that is, check submitted content for plagiarism. Settings of Plagiarism API are configured by adding a hook plagiarism_get_form_elements_module ($mform, $course_context) in the module form.

In case of-

1. Online type (Assigment 2.2) - This assignment type asks users to compose and edit text, using the normal editing tools. Added the support for assessable_content_uploaded, which allows sending of content, that is online text to the Plagiarism Plugin. When the online text is added/modified, an event assessable_content_uploaded which contains content as $eventdata->content. Plagiarism Plugin has handler for this event, which then creates a temporary file with this content and submits it for checking of Plagiarism.

2. Assignment - This is a new assignment module. Students can submit any digital content (files), such as word-processed documents. Alternatively, or in addition, the assignment may require students to type text directly into the text editor. Added the support for assessable_content_uploaded which contains files as well as online text submitted by the student. Whenever a student submits the assignment, the files as well as text submitted is sent to the Plagiarism Plugins through event assessable_content_uploaded.

3. Workshop - Added the support for assessable_content_uploaded which helps in sending files as well as online text submitted by the student in workshop module. Whenever student submits, the files as well as text submitted is sent to the Plagiarism Plugins through event asessable_content_uploaded.

4. Forum posts - File attachments are stored in moodledata folder as stored_file objects of moodle. This file along with the content of the post is submitted to the Plagiarism Plugin through the event assessable_content_uploaded.

Plagiarism API is also responsible for displaying the results to teachers "view submission" and students "view page". The hooks for display results may or may not be same for all the modules.

Integrated the above implemented hooks with the following Plagiarism Plugins -

Deliverables

Main Task - Add Plagiarism API hooks to other areas of Moodle Code

Relevant Links

Tracker

Discussions