A Moodle Stadistical Control Aplication
Carlos Muñoz, Miguel Ángel Conde, Jorge Reyero
Departamento de I+D+i Clay Formación Internacional, Salamanca, Spain
Francisco José García
Departamento de Informática y Automática, Universidad de Salamanca, Salamanca, Spain
Keywords: Learning Management System, eLearning, Moodle, Aplicación de Control Estadístico de Moodle, Content
Management System, Learning Content Management System, Sharable Content Object Reference Model,
Web Accessibility, What You See Is What You Get, Graphical User Interface, Database, Data model,
Architecture, Authentication, Installation.
Abstract: This paper reflects the possibility of doing adaptations on a LMS depending on the necessities of a company
or institution. In this case, ACEM allows the definition of course-level and platform-level reports and the
automatic generation of certificates and diplomas for Moodle LMS. These adaptations are intended to
complement all the different learning platforms by contributing added-value features like the generation of
customizable diplomas and certificates and reports, which allow the obtaining information about both
grades and participation in every activity of a course. All this necessities are not provided by default.
Lately both state and private institutions are betting
on eLearning solutions so as to satisfy their
formation necessities. Any of the kinds of formation
which can be offered should rely on a complete and
flexible enough technological support, that is, a
Learning Management System (from now on, LMS).
These systems are in charge of the different actions
involved in the online formation process, which
includes the student management and providing
them with resources and activities. Because of this,
the eLearning cannot be implemented without the
support of an LMS.
Nowadays, many different LMS can be found in
the market. Commercial LMS generally offer a
higher level of customization, incrementing the final
price. On the other hand, those which are based on
free software have the advantages derived from this
kind of software but they will not adequate so much
to additional requisites.
Among free distribution LMS it must be
mentioned Moodle, which is a project designed to
support a framework for a constructive social
education (Comezaña & Garcia, 2005). Currently, it
is one of the most extended LMS in the world. It
also has a large community of users and developers.
Despite this large community behind it, Moodle
does not adapt to all the necessities that can arise.
The problem arises specifically from a particular
necessity of Centro Internacional de Tecnologías
Avanzadas (CITA), belonging to Fundación Germán
Sánchez Ruipérez. Its objective is achieving an
optimal qualification management and a system
which allows them to generate diplomas and
certificates. This situation must be resolved without
providing a new platform, but developing an
independent web application which can be used on
the top of the instance of Moodle being used now.
In order to resolve this necessity, it is proposed
the creation of ACEM (Aplicación de Control
Estadístico de Moodle) which will be an application
independent of Moodle and will provide the desired
functionality without having to alter the data
obtained from any instance of this LMS.
Some of the current LMS in the market will be
described, and detailed their limitations about
dealing with grades and their management of
certificates and diplomas, with special interest in
Moodle. After that, it is commented the development
model in Moodle and the difficulties which are
Muñoz C., Ángel Conde M., Reyero J. and Garcia F. (2008).
OPEN SOURCE LMS CUSTOMIZATION - A Moodle Stadistical Control Aplication.
In Proceedings of the Fourth International Conference on Web Information Systems and Technologies, pages 402-407
DOI: 10.5220/0001525204020407
raised depending on the distribution of the data in
the LMS. Finally, the developed product is shown
and the conclusions and future work lines are listed.
New necessities arise from the experience with the
usage of knowledge management platforms. It is
necessary to understand and realize the limitations
which these platforms have and also the objectives
which are intended to achieve, so that they do not
involve an obstacle when deploying.
Although it is obvious that there is not a panacea
capable of solving all the limitations which these
platforms show, it is simple to observe that some
basic functions are not supported.
The first limitation which arises when dealing
with LMS platforms is just its own definition. They
are systems for managing the learning process but
generally they do not include other interesting
aspects, like an adequate content management which
enables the creation of content within the platform,
that is, the typical features of a CMS (Content
Management System) which turns out to be very
useful for this kind of platforms.
The so-called LCMS (Learning Content
Management System) arise so as to solve this
separation, but its extension, apart from scarce, is
basically reduced to proprietary tools for specific
usages (Rengarajan, 2001).
Another limitation shown by LMS platforms is
the absence of implementing standards which enable
an easy migration of learning objects between
platforms (Maurer, 2004). An approximation which
represents a solution is the implantation of the
necessary functionality for the correct processing of
packages, like SCORM (Sharable Content Object
Reference Model) (Jones, 2002). Thus, learning
objects can be transferred between platforms without
having to redefine the contents on each platform.
Another lack of functionality in LMS platforms
is related to the graphical user interface
management, which is derived from the features of
any web application. Although the concentration for
this kind of platforms should be in the learning
process itself and the quality of contents, important
interface aspects like Web Accessibility should
never be neglected.
From a statistic point of view, there are not
usually platforms which have a wide range of
statistics about their usage, their administration or,
more specifically, the grades of the students who use
them. What is more, they do not include any
graphical representations which help to take
decisions about, for example, the way of posing or
presenting contents. Taking into account the
importance of some aspects like feedback, the
features previously mentioned become necessary if a
high level of satisfaction of all the involved parts is
desired. And this satisfaction is a key element for the
success of any kind of platform, especially in the
case of a LMS platform.
An unsupported concept by LMS platforms
arises as a result of these statistic properties: the idea
of portfolio associated to each student, seen as a
curriculum which shows the student’s progress and
achievements or even information related to learning
modalities like in-person or blended (blended
learning). Taking the different phases of the learning
process into account, many platforms in the market
cannot cover the whole process due to, basically, the
lack of methods for certificating or generating
documentation which proves the acquisition of
certain knowledge.
Finally, leaving aside the technical features,
another handicap which these platforms have to face
is their necessity to be correctly managed by
qualified personnel.
In general, these limitations are not applicable to
every single existing platform but each platform
presents a subset of these limitations which forms a
base for the implementation of possible
improvements. The identification of the weakest
points of those platforms will depend on the
objectives or requirements which are intended to
fulfil and, therefore, a research for helping to choose
the most adequate option should be made.
Moodle is a kind of LMS platform aimed basically
to provide a set of tools and structures which enable
adapting the learning model to an online one.
As a result of the nature of LMS platforms and
Moodle in special, the lack of a direct
communication between the teacher and the
students, or even, among the students, makes the
system be responsible for this communication. These
refer to the necessity of providing a set of
functionality which will substitute the exchange of
information between them.
In order to achieve this goal, the techniques used
are based on statistic methods for compiling
information. As for Moodle, although it provide
OPEN SOURCE LMS CUSTOMIZATION - A Moodle Stadistical Control Aplication
methods for evaluating the different activities, it
does not generate relevant statistics about the
evolution of the students based on either their grades
or other measures considered useful for these cases.
Besides these problems, the grades management
system of Moodle has its own gaps. Moodle groups
the students of a subject of course into groups, and
each of them can have a disjoint set of those
students. This layout, along with the characteristics
of the group, enables the interaction with the
students depending on the definition and
permissions associated with that group (Castro,
2007). However, the problem arises when
establishing the grades. This organization in groups
is not extended to the classification of students.
As for the achievement of the results of the
course, grades obviously are the main scale of
measure. Considering grades as the main element of
the metric, some kind of organization of the students
depending on certain ranges of grades is missed in
Moodle, which will allow the user to obtain the
percentage of those who are included in each range.
Thus, the quality of the knowledge penetration on
the students could be measured in a moderately
accurate way, depending on the number of factors
taken into account: the more factors, the more
accurate measure. This measure, along with other
aspects, could be established as highly adequate
rates so that the teachers could readapt the contents
in order to increase the reach of the required
knowledge. Another possible factor to be measured
should be the presentation rate of those activities.
As it can be observed, the possibilities of system
improvement that Moodle leaves open are
considerable. However, there is another relevant
limitation shared by most of the LMS platforms: the
inability to cover the whole learning process,
especially the final phases.
More specifically, Moodle does not allow the
generation of any kind of certification for each
student which would identify him as a holder of the
knowledge learned in the course. This would require
some kind of module which allow the generation of
diplomas, in an automatic and systematic way.
Besides all these limitations, Moodle have some
positive features which make it one of the most used
LMS platforms. The objective of the description of
its limitations is to state that though the functionality
of these platforms is usually wide and flexible, they
are not able to cover all the goals considered
relevant by those who use them.
The development in Moodle can be tackled in
different ways depending on the desired level of
independence from the platform:
External Applications: an application which
uses the platform database without having to
make any integration with its interface.
Module Development: it consists on building
new modules which can be integrated into the
Based on the client’s necessities, the first option is
chosen. These necessities specify certain
requirements whose fulfilment is more adequate to a
non-integrated solution. Once considered this choice
and taking into account the goals of the application
to develop, two architectures can be proposed so as
to obtain the maximum scalability possible.
4.1 Suggested Architectures
Firstly, a solution based on a external application
with access to the database of Moodle is suggested.
A diagram representing this architecture is shown on
the Figure 1.
Figure 1: ACEM first architecture proposal.
This application will access its database directly and
it will be structured in the following layers:
Access and Queries to Moodle DB: this layer
will contain the necessary functions to
perform queries on a Moodle database. It is
proposed the utilization of query description
files. This layer also abstracts the statistic
control functions layer from the data searching
Statistic Control Functions Layer: this layer
will use the functions located in the previous
layer so as to perform the statistic control.
GUI: graphical user interface.
The second architecture suggested is based on an
application linked to Moodle which uses the new
database access features of version 1.7 with full
WEBIST 2008 - International Conference on Web Information Systems and Technologies
support for version 1.6. This architecture is shown in
the Figure 2.
Figure 2: ACEM second architecture proposal.
In this case, the layers to be developed are these:
Statistic Control Functions Layer.
GUI: Graphical user interface.
Here, the database access is performed via the new
API which Moodle provides in the version 1.7:
Moodle DML Library (Lafuente & Hunt, 2007) and
Moodle DDL Library. Finally, the client chooses the
first option.
4.2 Obtaining the Data Model
The development can start once its model has been
defined. Developing Moodle based software
involves several difficulties. One of the most
representatives is the little knowledge about Moodle
database because neither its data model nor the used
tables are public. Thus, in order to find out that
information, reverse engineering (Hainaut, Tonneau,
Joris & Chandelon, 1993) methods have to be used.
Considering the data model obtained, a research
must be done so as to determine how Moodle fills
the data tables corresponding to the element to be
analysed. Specifically, one or more tables will be
queried for each of them because of the data
distribution in Moodle and the necessities of the
application as well. Some of those tables are:
User related tables: they will give information
about the users (students) of the platform.
Resource related tables: they will give
information about the existing resources.
Graded activity related tables: these will allow
the calculation of the grades at course-level and
Not graded activity related tables: used for
doing a list of activities for the reports.
Course related tables: these will give all the
information about the existing courses.
Once the information necessities and the way of
retrieving it are defined, some research on the
possible situations which might involve an update of
the data stored in the tables mentioned before needs
to be done.
The table which associates the different activities
with a course is built from the data of many other
tables and the information is updated only when the
teacher or student access the grades section of a
certain course. This means that, when generating a
platform-level report, it would be necessary to
access the grades of each course manually every
time a change happens. The option chosen to avoid
that is “touching” the courses involved in the desired
report. This method will consist in logging in each
course automatically and access to the grades web
page (grades.php) in a totally transparent way for the
user. This technique is effective but after some
testing, it was noticed that Moodle might have an
alternative login page, so this case must be taken
into account.
Nowadays, some significant delay is produced
when testing this technique with a large number of
students. Because of that, it might be changed for
retrieving that information by doing direct queries
on the database as it is done when dealing with
4.3 An Error in the Grade System
After researching on grade calculation methods, a
possible defect in the grade system of Moodle has
appeared. The platform weights all the grades and
can also weight them a second time if the
correspondent option has been enabled by the user.
It appears that this might lead to an error, because
the final grade of a student does not correspond to
the logic expected. It has been observed that Moodle
does weight grades although it has been asked not to
do it when doing some testing.
In the following lines, it will be described the
functionality obtained in the generator of reports, its
main elements and the development difficulties.
5.1 Functionality
ACEM was built as an application for a certain
client but after considering the limitations of Moodle
which have been overcome, it has been decided to
OPEN SOURCE LMS CUSTOMIZATION - A Moodle Stadistical Control Aplication
use it as an add-value component for that learning
platform. The application implements the following
Platform-level Report Generation: this option
enables the obtaining of statistic data related
to the whole platform. The generated report
will reflect data related to all the students in
the campus, the users, some generic
information about the courses, the resources
and the activities grouped by their type, as
well as information about the grades in the
platform. Information of final report can be
complemented with data typed by the user.
The data of the generated document are shown
in several ways as it can be observed on
figures 3 and 4. Any of the documents
generated can be obtained in different formats
like PDF, HTML or MS-WORD (.doc).
Figure 3: Information in list and table mode.
Figure 4: Bar and pie chart.
Course-level Report Generation: the
information of this report is about the number
of students, resources and activities of a
course and the grades as well. The user is
allowed to enter a head text and footer. It can
also be exported to different formats.
Diplomas and Certificate Generation: the
application also provides a tool for defining
customized diplomas for the students. Some of
the elements which can be configured are: the
image logos, the title, the institution name, etc.
5.2 Some Components of the
Three different layers are distinguished in the
architecture shown on figure 1. Other elements
which are not shown in the diagram are the
authentication component and the installation
GUI: It is very important for any application to
have a user interface which enables a simple
and efficient access to its functionality
(Gándara, 1995). The technologies used for
building it are HTML, PHP and CCS (Cascade
Styling Sheets).
Figure 5: ACEM GUI.
Authentication: ACEM deals with personal
data, so the access to this data must be
controlled. A component for authentication will
check if the user has logged in correctly. The
system uses HTTP sessions (Welling &
Thomson, 2003) to check it.
Installation: ACEM will need a process of
installation and configuration. In this particular
case, it will be checked if a file called
“config.php” exists and if it does not exist, the
web page for the basic configuration of the
application will be shown.
The type of the database which will be used
along with its name, a user and the
correspondent password.
The Moodle administrator’s username and its
The URL of the installation of Moodle to be
used and the one of the login web page.
The username and password to access ACEM.
5.3 Difficulties found During the
The development of any software applications
involves some difficulties. In this particular case,
most of them have appeared from the necessity of
researching on different PHP libraries which were
not known by the developers. Another big problem
is the time efficiency of the suggested solutions.
For the generation of charts it has been chosen a
free software PHP library called PHPlot
As for PDF files, the first choice was using
FPDF library ( for generating
the certificates and diplomas and DOM PDF
WEBIST 2008 - International Conference on Web Information Systems and Technologies
( in the case
of reports. FPDF allows the generation of complex
documents but it needs every element to be
positioned within the document, what can be really
difficult for a large documents. This is the reason
why DOM PDF is used for generating the reports
because this library allows the automatic conversion
from HTML to PDF. However, when the number of
students grows up and thus the size of the documents
generated, the time spent in generating the reports is
unacceptable. Therefore, the generation of reports
will be done using FPDF library as well, although it
involves much more time to develop.
For generating MS-WORD documents (DOC),
several libraries were researched on, but none of
them worked properly so the final choice was
generating a HTML document and then changing its
file extension to .doc because, currently, MS-WORD
converts automatically from HTML to DOC.
Another difficulty is the increase of time due to
the large number of database queries to be done. The
number of queries to execute was reduced and a
cache of query results was implemented. Thanks to
this, the execution time was reduced to a fourth of
the original time, though we are still working on it.
An added-value tool for a LMS platform has been
developed by using web technologies.
By observing the different LMS platforms in the
market, it can be noticed that most of them do not
provide enough graphical representation about the
students’ activity and they do not allow the
generation of certificates or diplomas either. In
particular, Moodle does not include those features.
Several options for developing the application
have been taken into account and an external
application has been defined. ACEM allows users to
obtain information in many ways, like documents,
charts or diplomas which enhance the information
stored by the platform. Nowadays, this kind of
information is fundamental for the management of
studies in a learning platform.
The development of the application has involved
doing an exhaustive research on the data model of
Moodle, its management and the way it deals with
grades. After doing it, a set of queries has been
defined so that the application can use them for
obtaining de requested reports.
The aim of the application is generating the most
complete, representative and useful reports. The
current application version is 1.0, although the
development will be continued so as to improve its
functionality and thus enhancing Moodle.
As for the possible evolutions of the application,
there are several options to work in:
Graphical Representation Methods:
Information Visualization is a computer
science area in develop (Rohrer & Swing,
Improve MS-WORD document generation.
Reduce report generation times.
Include new graded Activities.
Adaptation to new Versions of Moodle.
Build ACEM as a Moodle Module.
Castro, E. (2007). Moodle: Manual del profesor. From
Comezaña, O., & García, F. J. (2005) Plataformas para
educación basada en web: Herramientas, procesos de
evaluación y seguridad (Tech Rep. DPTOIA-IT-2005-
001). España, Salamanca: Universidad de Salamanca,
Departamento de Informática y Automática.
Gándara, M. (1995). La interfaz con el usuario: una
introducción para educadores. In Alvarez-Manilla and
Bañuelos (Ed.), Usos educativos de la computadora.
México: CISE/UNAM.
Hainaut, J., Tonneau, C., Joris, M., & Chandelon, M.
(1993). Transformation based database reverse
engineering. In R. Elmasri, V. Kouramajian, and B.
Thalheim (Ed.), Conference on Entity Relationship
Approach (pp. 364-375). Texas: Springer.
Jones, E. R. (2002). Implications of SCORM™ and
emerging e-learning standards on engineering
education, In ASEE Gulf-Southwest Annual
Conference, (pp. 20-22).
Lafuente, E., & Hunt, T. (2007) Development: XMLDB
Documentation. From
Maurer, W. (2004). Estándares eLearning. SEESCYT.
Rengarajan, R. (2001). LCMS and LMS: Taking
advantage of tight integration. Click 2 Learn. from
Rohrer, R.M., & Swing, E. (1997). Web-based
Information Visualization. Computer Graphics and
Applications, IEEE, v17, I(4) , (pp. 52-59).
Welling, L., & Thomson, L. (2003). Using Session
Control in PHP. In Sams Publishing (Ed.), Php and
Mysql Web Development. Developer’s Library.
OPEN SOURCE LMS CUSTOMIZATION - A Moodle Stadistical Control Aplication