To redevelop the Moodle Assignment Module to address common problems around usability and extensibility and to implement web services to ease integration with third party tools.
The following four problems have been highlighted requiring attention:
- The four core subtypes are confusing to new users, and are in fact all very similar.
- There is no good support for team-based assignments.
- The support of subtypes makes it slightly easier to write new assignment types but also makes them less flexible, and so people tend to create hacks
- Third party tools such as Lightwork and the Moodle mobile app require the use of web services to be able to access all functionality of Moodle
These goals are to be achieved by collapsing the four assignment subtypes into one assignment type which supports:
- Teacher-written text to students
- Teacher-supplied files to students
- Student-written text for teacher
- Student-supplied files for teacher
The assignment activity should support groups and groupings not just from the teacher perspective (for grading purposes) but also for students, such that, if desired, teams of students can submit assignments by sharing uploading to a common file area and entering text into a shared text response. A grade for a group submission would apply to all students but would allow manual overriding for individual students. This may be achieved though a new setting in the assignment module.
Logging of activity in the assignment module will be even more important than previously if multiple students can modify each others' (common) work.
The framework of the assignment module should allow for other activity modules to declare themselves "Assignments" such that they can be grouped in the UI if required.
A facility will need to be provided (through lib/assignmentlib.php) to convert assignment from the old four-pronged Assignment module to the new Assignment module with the appropriate settings.
The Assignment module needs to provide web services which allow other tools to view, contribute, submit and grade assignments.
Use Case 1: File Upload Assignment
In a traditional use case a teacher may require the students to write an essay and submit the file to Moodle for grading. So far, the "Upload a Single File" and "Advanced Uploading of Files" Assignment types have been used. ("Upload a Single File" does not allow the teacher to upload a response file, whereas "Advanced Uploading" does).
With editing turned on, the teacher would select "Assignment" from the "Add an Activity" dropdown menu. The teacher specifies a name, description, available from and available to dates and times and a grade for the assignment. The teacher specifies the maximum number of files a student is allowed to submit, and the size per file (or all files together?).
Once the assignment opens, each student opens the assignment activity and uploads their files form their computer. This may be done over several visits. When the required files are uploaded, the student presses a button to indicate this and the assignment is locked from further changes by the student. (THis is the Send for marking/Draft mode behaviour of the Advanced file upload)
This process described does not have any facility for the teacher to upload a file with instructions for the students, or a data file to process in the assignment. THis is a common request and should be added.
Use Case 1: Statistics Assignment
The Teacher wishes to provide the students with a data file which is to be processed. THe students will have to supply output from a stats program with graphs and a report written in a word processor to complete the assignment.
This is similar to Use Case 1 but the teacher uploads the data file as a assignment instruction file when creating the assignment.
Use Case 3: