E-Learning System Development using an Open-Source Customization Approach

: Educational organizations have different methods of deploying E-learning systems, of which is using and developing open-source e-learning systems. One should consider some criteria when choosing a suitable system includes: documentation, usage rate, structure, standards support and educational strategy. In this work an e-learning software system has been elected and five phases of modification has been done to domesticate it, which are: document completion, translation, implementation of Iranian solar calendar, modules modification to support Farsi language and finally preparing Farsi help files. All these phases have been fulfilled at University of Isfahan as a research project. The present paper aims to describe the mentioned work.


INTRODUCTION
Education, in its entirety, is a time independent concept. However, as time goes by, introduction of new requirements and tools can alter its appearance, or create new forms of it. E-learning, as a part of the wider domain of Virtual Education, is a new methodology in the field of education that has risen since the widespread of personal computers and the worldwide web. Of course, it should be said that the topic of teaching with the help of computers has been around since emerge of digital computers. Advantages of Elearning like its worldwide scope, coherency and low cost makes it hard to ignore it in a country like Iran with a big population of young people yearning to get into the higher education. In addition, beyond the use of E-learning in formal education, it is an effective and useful tool for re-learning and keeping the Iranian work force up-to-date [4] .
One of the problems faced by most universities and educational institutes is the selection of a proper Elearning system, providing electronic contents and in general, preparing the required tools and facilities for replacing a part of their education flow from the old and traditional system to a new and electronic one [1,2] . In this research, we have set forward an attempt to study the various aspects of selecting an E-learning educational system and presenting some solutions for it, as well as, comparing the advantages and disadvantages of the provided solutions. Finally, based on the experiences, we will propose and analyze a solution for customization of some open source systems.
The most important parameter in choosing an Elearning system, is that it should consider and hit the educational standards in general and E-learning standards in general and E-learning specifically. The second most important parameter is its ability to be customized; that is, the adaptability of the E-learning system to the needs of the educational institute. The third parameter is the feasibility and practicality of the system, which is, whether regarding to the educational institutes, the proposed system is feasible in case of financial and manpower resources or not [1,2,6] . After choosing a proper E-learning systems as the solution, we need to come up with a good primary executive plan resulted in the implemented E-learning system [3] . There are also different solutions for doing so, which are not the focus of this research.

TO BUY OR TO DESIGN, THAT IS THE PROBLEM
Based on their technical knowledge, expertise, level of potency and available means educational institutes and organizations, have several solutions to implement an E-learning system. In the following sections, we will pay special attention to these solutions which are one of two kinds: purchasing a software program or designing one. Purchasing a software from an external vendor: By an external resource we mean a company or institute that either provide a system itself, or acts as a representative of one. One of the advantages of doing so is to speed up the process of creating an E-learning system and its contents for the requesting university. In addition, using this approach, the university does not have to worry about the possible technical problems of the purchased system, since such problems are of the responsibility of the vendor. Also, the required manpower is mainly provided by the vending company. Using this method includes some problems, too. The university or the education institute does not have much choice on the rules or capabilities of the virtual education system or its user interface and cannot expect much more from what the system offers. On the other hand, the cost of such systems is very high and in most cases the budget needed for purchasing them is out of the question.
Perhaps the most important disadvantage of this option is the user interference and the conflict of the interests of the two parties involved: a commercial company seeking higher profit resulting from admitting more and more students into various fields of studies, while the university is responsible to maintain its quality of education.
A. Purchasing a software from an external vendor and producing the contents, internally: Another solution faced by the universities is to buy the software program from an outside source and to produce the contents in-house. As the content is produced by the university itself, this solution has more economical benefits for the university but since there are very limited options in producing the contents, there is limited choice on how to produce the contents. On the other hand, it is obvious that software system developers have special methods for creating contents for their software which even if their method is not fully compliant with the existing educational standards, it will have better performance. This, in turn, requires extra money and efforts of the university personnel and the faculty members. Therefore, if money is not an issue, the first solution seems to be more viable than the second one, unless the university insists on producing its own contents [1,2] .

B. To design and implement the E-learning system, internally:
The third approach is to design an electronic educational system using the university's internal resources and expertise. Having access to a full range of design options, being able to design the desired capabilities and producing the proprietary contents are just to name a few advantages for this method of choice. Economically saying, this approach needs less functional resources than the two former methods. Despite all these advantages, this approach has some adverse effects too. Time consuming software development is one of these adverse effects. In addition, the expertise chosen for the production team must be fully familiar with the standards of E-learning systems for which in most cases, some training classes are held to educate the team. In other words, to produce such systems, it demands a close collaboration between the IT professionals and the educational experts. The truth is, reaching such coordination between various professional groups in a university can not be achieved easily and the current structure of the IT groups in universities may not have the technical how-to knowledge to produce such software. Therefore, if the production team's output is low, the actual overall expenses for this approach would be higher than the solutions A and B [3] .

C. To use and develop the open-source E-learning systems:
Besides the solutions mentioned hitherto, there is a fourth approach, too. And it is using the opensource E-learning systems which can be thought of as a mid-way solution that includes the advantages offered by the previous solutions. Presently, there are several open-source E-learning systems, each supports different capabilities. Some of the advantages of using such systems are their diverse available capabilities that can be selected and used by the university based on its needs. On the other hand, the open-source nature along with their relatively complete design documentations available for these systems, it is possible to add specific features to such systems according to the universities needs by in-house professionals. In addition, since this type of systems usually belong to a very large group of programmers, they are regularly updated and in each release their found technical problems are resolved and upgraded. Moneywise, all these open-source programs are freely available to the general public [5,8] . Nevertheless, there are shortcomings in using these systems too one of the most important shortcomings of using the open-source systems is the security issue. Of course, because of the frequent upgrading of such systems, any aroused problem would be solved quickly. But some special security issues will still remain [8] .
On the other hand; there are structural differences between Farsi and English, e.g., the right-to-left text direction in Farsi. Customization of these systems requires a considerable scientific and technical investment that will be looked at as a case study. In this approach, external expert groups are used; therefore, the acquirement of the final system is quite fast. Furthermore, attainment of educational standards and the university requests are all manageable, without increasing the expenses. We will now turn our attention to study the features of one of the practical E-learning systems.

CRITERIA FOR CHOOSING AN OPEN-SOURCE E-LEARNING SYSTEM
As there are not many open source E-learning systems available at the moment, it is easy to choose one based on chooser institutes preferences. These criteria would be different depending on whether the user's goal is to develop the software system or to exclusively use it as a user. Here, we only explain the criteria used for developing and customizing an open source E-learning system.

A. Software system documentations:
One of the important issues in choosing an open-source system is to pay attention to the amount of design documents and user manual. These documents are important because none of such systems can be put into work as their developers have intended. This is because open-source software systems are not commonly designed for commercial purposes but for programmers and software designer audiences. While the main users of such systems are university students and professors that in most cases do not have access to the technical information for using these computer programs. Therefore, any software should become user-friendly before putting it to work. In the best form, a new and effective user interface should be designed and documented for it.
B. The software usage rate and circulation: It is obvious that as the number of users for a software program grows, that software becomes more reliable. Open source software developers allow the users to send the technical problems feedback to them. Hence, the more the number of the users for an open source software, the faster the development cycle of the software. From another point of view, the type of users and their opinions are important in choosing an opensource E-learning system. However, the more users are from active and official educational institutes, the more authenticity the software system has.
C. The software's architecture: The old software systems implementation had coherent structures. In such software, all the sections are similarly designed and implemented and cannot be separated by parts. It is obvious that to develop such systems, you need to have an extensive dominate over the software.
One of the new software development technologies is using the Modular Design. In this method, a main core is designed for the software and other parts are places as modules onto it. In other words, we can call this layered software design. Using this method, one does not need to have complete familiarity with the software core and can only focus and work on the required layers. Despite the advantages of this new method, many still use the old one. However, using the modular design for an open-source system is very useful and keeps the changes cost down.

D. Educational Strategies:
Besides the general mentioned criteria which are valid for almost all opensource software, there are some special criteria that must also be considered in choosing an E-learning system. The educational strategy of the software system is one of them. At present, there are two strategies in content producing by E-learning systems: using static contents and using interactive and social contents, of course, a combination of both is also possible. The best selection based on this criterion, depends on the needs of the educational institute. It is possible to make the read only contents available on the web and then offering the remaining contents through class attendances. In such cases, a simple system to provide some static contents for organizing each lesson's materials is useful. On the other hand, consider an institute that wants to offer all its classes online and all interactions between students and the lecturers, students and the course topics and material and students with other students be conducted via the web. In this case, a system that supports just static contents would only be costly. Here, it is better to use a more advanced system, instead.

E. Support of standards:
In designing an E-learning system, it is better to support different standards. These standards are divided into five categories: referential architecture, Meta-data, information packages, students' evaluations, students' personal information and the run-time graphical user interface (GUI). Currently, SCORM and IMS [4] are the best standards to use. The widest use for educational standards is exchanging educational contents between the Elearning systems without losing the quality or properties of the transferred contents. Today, a good Elearning system, whether it is an open-source or a commercial one, must support the defined standards for importing or exporting contents. Even, if the selected Elearning system does not have this option available at first, it should be considered for the future development stages [3] .

THE LOGICAL PROCEDURE IN DEVELOPMENT OF AN OPEN-SOURCE E-LEARNING SYSTEM
While applying an open source software, the first step is to determine the goal for using it. Defining this goal helps us to decide on the process of customization and security strategies. If you want to use an opensource E-learning system for a university, depending on the formality or informality and the level of the trust by the officials for using the software, you should consider different security strategies. For example, a change in the system's structure, changing the usual location of the software files, omission of the original software's name and preventing users from accessing the source code by studying the original software's documentations, upgrading the data protection, adding security modules to make sure the source codes are unchanged and so on. If the goal is to just present the material to the students or an educational supplementary tool, security will lose its significance. But if it is used as a formal virtual E-learning tool to the extent of holding online virtual tests, then security issues and data protection will become very important. Hackers could even go to the extent of writing codes for your original open-source program in order to penetrate your system.
In the second step, a software needs to be customized for the region it will be used in. the official language used in institutes around Iran is Farsi, while almost all of the available open-source software interfaces are in English. When using Farsi in computers, we encounter two main problems: making use of the Unicode characters in pages and databases and the right-to-left text direction. Fortunately, most new software support the Unicode character table, but setting the software's graphical user interface to display Farsi texts properly requires additional changes in various modules of the software. Also, the problem of using two directions: right-to-left for text and left-toright for numbers, is another issue to be noted. The other problem is date. The official calendar used in our country is based on the Solar-Hijri calendar, while in nearly all the open-source software program, it is the Christian calendar. Of course, there are an algorithms for changing the Hijri into Christian calendar and vice versa, but the primary problem still exists; and that is, how to save the date into the database. This is due to the difference in the valid range for the Hijri and the Christian calendars.
The other important issue in transforming the opensource software programs into Farsi, especially in the GUI, Help files and the documentations, is the wordby-word translation of the English texts. This could cause some confusion or misunderstanding in the translated texts. For a correct and exact translation, the act of translating should be with actual work on desired parts simultaneously. This way, by using the software and becoming aware of its performance issues we can infer the actual meaning of the original documents. Therefore, the translators must not only have a good handle of both English and Farsi languages but also a good grip of the way the program works.
To accomplish all these stages, practically and quickly, we must first obtain a great in-depth knowledge of the software's architecture. Normally, the available documentations for the open-source software are just intended as users' manuals and it is hard to get a hold of documentation of software design and architecture. Hence, before starting the transformation stages, we must go through "Reverse Engineering", to generate software design documentation and gain familiarity with the software's architecture. Creating software design documentation has another utility; and that is, the possibility of transferring that software's technology to other specialist team and a life-time support for the software used in that university. After the above stages, which results in a customized Elearning system with specified needs, we need to add some user manual documents in three levels: some for the management, some for the professors and Since these documentations are usually enclosed in the English-version of the software, we do not need to have much special knowledge at this stage. However, special attention must be paid to come up with a comprehensible translation. Based on the discussions of this section, the stages for customization of E-learning software are shown on Fig. 1. Depending on the original selected E-learning software, the amount of work on each stage may differ, or in some cases would not be necessary.

FROM MOODLE TO CHAHARBAGH: INTRODUCTION OF A SUCCESSFUL SOFTWARE CUSTOMIZATION PROJECT
Considering the mentioned criteria, from among different types of open-source E-learning systems, Moodle [5] was chosen. This E-learning system, presently, is translated into 75 languages and is being used in more than 175 countries in more than 30,342 different sites. Sixty three of these sites have more than 20000 users. This software not only can be used to present a single course with a single lecturer but also can be used to present all E-learning courses of institutes with more than 40000 users [5] . Moodle is a Modular Object-oriented Dynamic Learning Environment. The word means allowing the mind and the body to do creative things without any particular structure. From the two meanings, mentioned above, we can first infer that Moodle is a modular software with various added or deleted parts. On the other hand, offered courses and their educational contents do not follow any linear orders, therefore, lecturers will be able to modify the method of presenting their contents. This system provides a Fig. 2 Another important feature for this software system is the usage of educational approach instead of an engineering approach. The E-learning system of Chaharbagh is the customized version of Moodle. In this system, in addition to all of the original software's support, all constrains discussed earlier for using Farsi have been resolved. Although a Farsi calendar has been provided and all the courses can be offered with a fully-designed Farsi contents.
The original web-based administrator interface was modified and customized according to the Farsi language characteristics and software design standards. Along with that, a non web-based administrator panel was developed and added to the package to facilitate an easier and faster handling of the courses and users. Fig.  3 shows some pages of the Chaharbagh E-learning system. The first page, the AI course main page and an assignment definition panel are illustrated separately.

CONCLUSIONS
There are many approaches to employ an Elearning system in universities and educational institutes, one of which is to design a customized system in-house by the institute itself. Nowadays, considering the rapid improvement of the technology, especially that of the educational technologies, networks and software, design and implementation of an E-learning system from scratch is not an economically and technically sound option in general. The suggested solution is to use the open-source software and their further development or at least making a partial use of their architecture to come up with a new E-learning software system. Keeping in mind that not every open-source system can be utilized, just because it is open-source! Instead we must consider other criteria for the best selection of such systems too. We also proposed a development procedure for open source-based E-learning system regarding the special situation of Iran and Farsi language, which can be useful in particular for other non-European/American countries where the alphabet and calendar system might be different. Finally we introduced Chaharbagh, our internally developed Moodle-based E-learning system, which is now successfully operating at university of Isfahan.