Customizing Moodle to include efficient Examination Processes


Revision as of 02:13, 10 August 2009 by Skierpage (Talk | contribs)
Jump to: navigation, search


Project Summary

The scope of this project is to extend Moodle to provide an easy customizable environment for faculty and examination controllers to form a database of questions over a Distributed Network (or may be Intranet as well at School) which could thus be used to generate examination papers for conducting examinations as well as for practice of students. Moodle as of now is only related to E-Learning processes but does not deals with any activity regarding Examination processes. This extension also aims at automation and facilitation of interaction between students and faculty in regards to assignments, etc (through blogs) while providing robust infrastructure for examinations and other academic analytical activities (online and offline).

The salient features (Goals) the proposed system looks to add to Moodle are

  • Providing an inbuilt mechanism to generate evaluation papers such as examination papers with various features and template support to Moodle having a comprehensive database.
  • Providing a Course, Subject and Unit wise Question Bank for students (for practice)
  • Providing a scheduling support so that the students can follow up and adhere to course and check out where they stand (similar to Pert and Gantt charts; but with reduced complexities for enabling novoices to use it without any trouble)
  • Providing plug-in and external tools support for added features
  • Providing online examination facility to judge students online
  • Storing and publishing the question papers and reports in form of pdfs, doc and other formats
  • Providing statistical analysis and related graphical heuristics for analyzing results and patterns
  • Providing a mechanism to get feedback of processes through a web interface
  • Providing an interface to act as an effective mechanism for intra-institutional communication
  • Providing system and interface for attendance roster and other such relevant features
  • Usage of Rubric and related tools for Multidimensional Scoring

The 3-Dimensional structure of the extension(in terms of interfaces)

The whole system is planned to have a 3-Dimensional structure (in terms of interfaces):

(which are already as being proposed by Moodle but customized to add the enlisted feature and support as well)

  1. Administrator (or school management)
  2. Teachers (or Mentors)
  3. Students

The above listed features / goals can further be classified for the three dimensions

  1. Administrator
    • Publishing papers, managing templates and the database administration
    • Manage all the external tools and plugins
    • Managing and supervising question bank and various courses being offered
    • Supervise all schedules related to various courses and mentors and handling global variables
    • Scheduling and running online examinations
    • Manage the allowable formats and access rights to various mentors
    • Managing available statistical analysis and external tool support
    • Managing Feedback mechanisms and intra institutional communication (via forum and instant notice support)
    • Providing an interface to act as an effective mechanism for intra institutional communication
  2. Teacher (or Mentors)
    • Submit questions to the courses assigned to them, choosing difficulty levels and other related properties for each question
    • Access to external tools and plugins as embedded by the Administration
    • Reviewing question bank generated against their course and answering instant queries by students
    • Use easy scheduler to chalk out course schedule for their courses and manage students progress against them
    • Viewing statistical analysis and related graphical heuristics for analyzing results and patterns for their courses
    • Be a part of feedback mechanism to keep the educational channel interactive and alive
  3. Students
    • Can access Course, Subject and Unit wise Question Bank and solve questions online/offline
    • Check scheduler for current assignments (to follow up at moodle) or to check course progress
    • Participate in time bound online examinations
    • Viewing question papers and question bank in various formats such as pdfs, doc, etc
    • View statistical analysis and related graphical heuristics of class / institution
    • Feedback about courses, questions and process through relevant interface

Apart from this, an Assistance System (initially a trainer interface) to lead the student through all the features and mechanisms of the system will be incorporated

Technology and Modules Summary

This section entails about the technology used, modular structure and technical abstract of modules.

Technology Used

The technology proposed to use is LAMP (Linux, Apache, MySQL and PHP), CGI along with AJAX

We will go through the development process as follows:

1. Write extra modules required and database update (for providing extended features to Moodle)
2. Updating the various interfaces of Moodle (rewriting and updating existing codes)
3. Introducing cache features and secure connection (for examination)
4. Carrying out extensive test suites

Modular Structure

The modular structure of System being proposed can be visualized as follows:

Note: The block diagrams only show the extended scope of interfaces and skip to explain the existing part and processes of Moodle

Modular Structure of System

Technical Abstract of Modules

The description entails the added features to either of the interfaces:

Teacher Module:

Teacher module undertakes all the features and goal as described in the previous section and uses an AJAX engine to interact with the Administrator module. A cache is implemented to tackle multiple request and a situation of overload at the mentor end. It is to be noted that the figure illustrates a single mentor whereas multiple mentors may be issuing queries over the network

Student Module:

Student module used AJAX engine as intermediate for all transactions with server but for examination routine, during which no cache is maintained and a secure communication channel is established.

Administrator Module

The Administrator module is responsible for processing all requests through scheduling and caching all XMLHttpRequests and also servicing examination routines under secure channel. The other responsibilities shared by administrator module is database backup, maintenance, plug-ins profiling and other administrative responsibilities as listed above.

Coding Paradigm Used

The coding to be done will be object oriented with libraries of classes to be written up first. This will follow with objects being declared under main files of scripting with template based look and feel induction to the system. The caching at server side will also curtail through the usage of classes and code snippets of CGI.


Usage of Rubric and related tools for Multidimensional Scoring

  • As suggested by Homunq in wiki discussion for this article, usage of Rubric and related tools, to allow multidimensional scoring can be a very desirable and helpful feature for academicians (esp. teachers).
    Thus, support for rubrics (including rubric file-format, its rubric construction, templates) via plug-in or interface is to be included in Week 6's plan.
  • Further feature, tweaks to follow as per feedback and discussions

How different is proposed Examination Process from existing Quiz model of Moodle?

Its true that Moodle does have an effective "quiz" model with it. But it qualifies only effective for normal assessments and not for major examinations.
The Moodle's quiz module has options for timing, display, attempts, grades, security, etc while adding / updating a quiz. It also allows options for editing a quiz, taking its preview before it is inducted in the system, generating a report of the quiz taken up by the student, etc

But having said that, the features provided are not sufficient enough for detailed examination processes. We can enlist a few suggestions (which are to cope up for shortcomings) for the existing system:

  1. We will be adding a template support for examination paper pattern, and a mechanism to effectively edit that template.
    About Template: This template will describe the layout of the examination paper, about the various sections involved, marks distribution, anchors - using which our further mechanisms can operate in conjunction with the system, etc.
    For a Use-Case: We may assume that we need to conduct four type of examinations viz., mid-semesters (theory and objective mixed), end-semester (pure theoretical), quizes and a pure objective type exam. With different time of occurrence of all of these examinations, we will need to covering different units (no. of units) and even structure (paper structure) and weightage of examinations and marks of individual questions as well. So we will want to have a generalized framework which we can alter for each case and get the examination rolling. So, our template does the same job for us, we can specify and tweak each and every part and parcel of examination being undertaken.
  2. Generating Question paper as per schedule.
    We may just schedule the examination and specify the examination template as well as the examination link (webspace), paper and every thing related to that examination will thus be available at that particular time and date without any worry of the admin or teacher (roots lying back to the cron job)
  3. We will be providing Question Bank to the students, using the database of questions we will thus form (We can choose to keep some questions confidential to our examination purposes only by flagging them, etc such features and tweaks with question bank available for disposal)
    Other than that emulated real time but unrated examinations will also be available to students.
  4. Other than just teachers being provided the stats and reports, students will be provided with several statistics and graphical tools options (such as piecharts, barcharts, etc) to evaluate and deduce their standings in the class against others. Other charts can show their performance in regards to their previous performances, performances of others and other historical facts and data such as median of class, etc in graphical format)
  5. Providing an extra charting tool to teachers to follow up their course progress in form of Gantt-Charts, etc. To map and indicate progress of students as well.
    Other than that an automated tool to generate and indicate progress of students against course progress, etc
  6. Providing statistical analysis and related graphical heuristics for analyzing results and patterns and not just simple reports as being currently provided by the Moodle.
    This will include various charting tools (will be embedded in Moodle as well as we will generate the data in formats acceptable by various popular tools, which can thus take it as input and generate and deduce further reports and patterns)
  7. Providing feature for generation of progress reports and mark sheets, which can be cumulative of multiple examinations thus taken up so far (spanning over multiple templates and dates).
  8. Providing interface for undertaking simulated practical examinations and inputting their results (these Simulated practical examinations can be added as plug-ins, as many as we want)
    For Eg.
    • Embedding computer-lab examination session by incorporating auto-testing compiler (such as online judges from programming contests, TopCoder.. )
    • Flash program for any Chemistry lab exam, etc
  9. Providing other test/examination results data importing capabilities
  10. Usage of Rubric and related tools for Multidimensional Scoring and for ensuring better evaluation process
  11. Providing Secure connections (https) for live examination, disabling cache and enhancing security mechanisms.
  12. For practice purposes, maintaining students cache at their local systems (to reduce network requirements and to cope up with weaker internet links). Also, using AJAX for all other communication with server other than live examination, to ensure better operation and usage of system.

Several other features to make Examination-Processes of Moodle really grow rich in features and support. Other than as specified, we will be open to addition of any feature and requirement we think is necessary for making examination process of Moodle to be full-fledged will be inducted while development as well.

Thus in short we can say that,
Moodle presently provides feature for taking up a quiz which is pretty much static in structure, nature and conducting purposes. Moreover it has limited features and flexibility. We will be adding a new Examination section (or we will rename and update existing Quiz section) to make it more robust, dynamic, flexible and viable for any tweaks possible along with strong examination related tools and systems being associated with it as well and thus implementing really what examination process is instead of a mere normal quiz.

Work Plan

The work plan for the design and development for the system has been planned as follows:

  • Prior to GSoC Start: Chalking out details of each module and refining the requirements
  • Week 1: Creating Blueprint for the system and System's prototype
  • Week 2: Customizing, developing and testing Administrator's module
  • Week 3: Customizing, developing and testing Mentor's module
  • Week 4: Customizing, developing and testing Students module and interfaces
  • Week 5: Packaging and Integration testing
  • Week 6: Further plug-ins incorporation and improvements based on testing and feedbacks
  • Week 7,8: System implementation and stress test, Beta testing
  • After GSoC: Maintainence and Support


Any interested mentor may please enlist his/her name here


The deliverables for the project will include:

1. All script files for the three modules
2. A trainer module to train the usage of system to the students
3. An installer file to install the database and set environment variables
4. Comprehensive documentation and help files

To add to the deliverables, I will be available for help and assistance to the developed system in future and handle any bugs

About Me


My name is Abhishek Tiwari and am located in Lucknow, Uttar Pradesh (India) and am pursuing bachelors in engineering (Computer Science stream). I have developed several LAMP based web-applications (working as a freelancer on internet) during my college life and have done several other design and development works continuously (adhering to industry norms) for commercial and non-commercial (academic) purposes. I have strong hold and experience in several Open Source and Java Technologies; as well as have a hand on experience of many other popular technologies.
I have good problem solving and algorithmic skills. I have bragged several national and international level awards by winning programming contests at various levels such as of International Programming Contests organized by renowned universities, TopCoder, ACM ICPC, etc (in team and individually).
My experience as an intern in the Platform Development Department at Yodlee Infotech Pvt. Ltd. as well attests to my skills of design and development. During my internship, I developed a module which was deployed as an integral part of Service Level Agreement Computation Model (Java and Oracle 9i) at Yodlee which leveraged me to learn and work under industry standards.

Related Skill Set

PHP, AJAX, CGI, MySQL, GTK, (X/D)HTML, JavaScript, XML, Understanding of Linux Web-Server, etc

Related Experience and Detailed Portfolio

A list of projects undertake and detailed portfolio can be viewed at:

Personal tools
  • Log in
  • Login with OpenID
About OLPC
About the laptop
About the tablet
OLPC wiki