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

Student projects/Animated grade statistics report

From MoodleDocs

Note: This page outlines ideas for the Animated grade statistics report project. It's a specification under construction! If you have any comments or suggestions, please add them to the page comments.

Original Idea Summary

Use the Flare library to develop some cool and useful visualisation of information in the Moodle gradebook. This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9. To be really flexible and extensible, this should be built in several modular parts: harvesters to collect information (e.g., "grade entered"), reporters to summarize and normalize information, and adapters to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).

Student: Daniel Servos

Mentors: Greg Wilson, Anthony Borrow and Nicolas Connault


  • Finished first version of grade/report/stats
  • Finished first version of grade/report/visual

Scope and Goals

Primary Focus

  • Grades, statistics and visualizations covering a single course
  • Statistics relating to grades, gradable items and outcomes
  • Aimed at usage by teacher and/or instructor teaching courses
  • Aimed at students viewing there grade and there standing in there class
  • Made for Moodle 2.0

Secondary Focus

  • Grades, statistics and visualizations over multiple courses, years, programs, etc
  • Statics relating to things out side of grades such as posts, views, replies, submission time, number of submissions, age and other student information, etc
  • Aimed at usage by program and school administrators
  • Made for Moodle 1.9.X

Tertiary Focus

  • Statistic relating to instructors and courses such as drop out rates, work load, pass/fail rate, etc

Core Functions and Requirements

  • Developed as two grade book plug ins for Moodle 2.0 and then back ported to 1.9.X
    • grade/report/stats - for text based statistics reports
    • grade/report/visual - for visualisation of grade statistics through graphs


  • Provide additional statistics about grades and outcomes
    • For overall class
    • For groups overall
    • For gradable items (groups and/or all groups together per item)
    • For outcomes per student, and per group in that course
    • Statistics such as:
      • Highest
      • Lowest
      • Average
      • Median
      • Mode
      • Standard Deviation
  • Options to set each statistic viewable by role in class
  • Options for how to deal with incomplete assignments
  • Export ability
  • Customizable
  • Easy to add new statistics
  • Printable version


  • Provide visual statistical information about grades and outcomes
  • Options to set each visualisation visible or not by role in class
  • Correlations between groups and individuals
  • Customizable and flexible
    • Change graph type
    • Invert graph
    • Change what is being compared
    • Change axis and scale
    • Exploratory Environment
  • Easy and natural to use
  • Find me (student) in data
  • Export ability
  • Use flare
  • Easy to change graphing engine
  • Easy to add new graph types, correlations and statistics
  • Options for dealing with incomplete assignments


Main Visualizations

Grade Distribution/Histogram

Items vs Average, Highest, Lowest, Median, Mode and Standard Deviation

Assignment/Test/Quiz Questions vs Average Grade

Assignment/Test/Quiz Questions Grade Distribution/Histogram

% Pass/Fail vs Items and Overall



Capability to see the stats report.


Capability to see the visual report.

Database Structures

Rows to be added

Rows to be added to existing tables:

  • capabilities - Add row for gradereport/stats:view capability
  • capabilities - Add row for gradereport/visual:view capability
  • role_capabilities - Add rows for gradereport/stats:view role capability
  • role_capabilities - Add rows for gradereport/visual:view role capability

Interface Mockups




Tasks and Timeline

  • Develop and finalize specifications. - By May 26th.
  • Create basic gradebook report plugin (grade/report/stats) for displaying text based statistics. - By Mid/Early June.
    • Make harvesters to collect raw data needed for statistics.
    • Make reporters to summarize and normalize information for statistics.
    • Add options to control viewing of stats by roll in class.
    • Add customization options.
  • Create gradebook report plugin (grade/report/visual) for displaying charts and graphs using flare. - By Mid July
    • Make adapters to interface with flare.
    • Make the visualizations using flare.
    • Add options to control viewing of stats by roll in class.
    • Add customization options.
  • Add export functionality of reports to other document types. - By August.
  • Testing and debugging. - By August.
  • Back port plugin to moodle 1.9.X. - By August 11th.
    • Testing and debugging for plugin for 1.9.X.
  • Scrub code, final tests, improve documentation. - By August 18th.


Term Definition
Visualization A graph, chart or other visual representation of grade data or statistics created using flare.
Flare A collection of ActionScript 3 classes for building a wide variety of interactive visualizations on the web.
Harvesters Part of the code that deals with collecting raw data needed by the reporters to create statistics for the report.
Reporters Part of the code that deals with taking the raw data from the harvesters and creating statistics needed for the report.
Adapters Part of the code that deals with taking the raw data and statistics from the harvesters and reporters and interfacing with flare to create visualisations of the data/statistics.

See also