DESIGN AND IMPLEMENTATION OF LABORATORY
CONTENT MANAGEMENT SYSTEM (CMS) ‘iLAB’ USING
CakePHP FRAMEWORK
Sunu Wibirama1, Ir.Lukito Edi Nugroho, M.Sc., Ph.D.2, Indriana Hidayah, S.T.3
ABSTRACT
The making of ‘iLab’ Content Management System (CMS) begins with a fact that there are only a few amount of web based open source CMS implemented for laboratory management. Also, laboratory management in Electrical Engineering UGM has not optimalized the advantage of information technology yet. Thus, the making of web based laboratory CMS hopefully can increase the quality and effectivity of laboratory management in Electrical Engineering UGM.
iLab CMS was made with CakePHP framework. CakePHP is a framework based on PHP scripting language with Model-View-Controller (MVC) architecture and using
Object Oriented Programming (OOP) concept for source code writing. The synthesis of
MVC and OOP concept and also adequate framework documentation are the main reasons of using CakePHP as a framework to built a laboratory CMS application which is structured, easy to understand, and easy to develop.
Keyword : Content Management System (CMS), laboratory, CakePHP, iLab, Model-View-Controller (MVC).
1Author, Fresh Graduate Student of Electrical Engineering Department, UGM 2Supervisor I, Lecturer of Electrical Engineering Department, UGM
1.
Introduction
Information technology as a branch of knowledge in contemporer computer engineering has given a lot of alternative solutions for management development and automatization of data transfer in various field of work.
One of information technology implementation which is required by student, lecturer, laboratory staff, and institution staff of university is the use of Content Management System (CMS) for laboratory and practicum management.
The goal of the research is learning and understanding implementation of CakePHP framework for creating CMS, also developing it into an application which is used for laboratory management.
2.
Basic Theory
2.1. Content Management System
Content Management System (CMS) is an application which is used for managing several methods related with web publishing. Based on Douglas [7], a CMS generally can be customized by adding or subtracting spesific feature, so that only several features needed which will be published to the user. Currently, CMS is widely used to create bulletin board, online trading website, community website, online photo gallerym and so on.
Fraser [8] explained that Content Management System consists of at least three elements :
- Content Management Application (CMA).
CMA will manage application content components, including picture, text, and so on.
- Metacontent Management Application
(MMA). MMA will manage information carried by application content components.
- Content Delivery Application (CDA). CDA
will pick content components, read the information within, and render the result for user consumption.
One of several various kind CMS is used and implemented for laboratory. It is called LIMS (Laboratory Information
Management System). LIMS, based on
Crandall dan Auping [6] can be explained briefly as a combination between software and computer hardware used in laboratory to manage laboratory sample, user, instrument, standard and other funcionalities using database, report generator and computer network capabilities
2.2. Framework CakePHP
Framework is a basic tool used for reducing overhead resulting from web development activities [13]. Framework generally has a class library for accessing database, templating, session management and several reusable program codes. CakePHP is an open source framework used for developing web applicaton which has basic concept of CRUD (Create, Read, Update, Delete) [1]. Database User Apache / IIS Dispatcher View Controller requestAction() Redirect Model 1 2 3 4 5 4 6 7 8
Picture 1. CakePHP Architecture [3]
3.
System Design
3.1. Requirement Analysis
Almost all of laboratories in Electrical Engineering Department, Gadjah Mada University had same problems related to practicum (lab work) and resource management. Problems and solutions were tried to be solved by design and implementation of laboratory Content Management System are shown in table 1.
Table 1 Laboratory Problems and Solutions
Problems Solutions 1. Traditional practicum registration 1. Automatization of practicum registration 2. Traditional data 2. Automatization of
management data management 3. No resource repository for accesing moduls and all of practicum administrations 3. Creating online resource repository accessed from department intranet 4. No online information media for laboratory news 4. Creating online information media 5. Restricting access and administering privileges for common user (not admin). 6. Automatization of installation process 7. Creating a user friendly system . 3.2. Interface design
CMS iLab consists of four interface design :
- User page - Login page.
- Administration page. - Administration menu page. 3.3. Database design
Creating association between database entities was the first step of CMS iLab database design. There are 15 entities associating 15 CMS iLab funcionalities. Several of them allocated for practicum management are Practicumnames, Practicumschedules, Practicians, and Assistants. Others allocated for administration page, news board and repository are Userstatuses, Users, Projects, Resources, Newscategories, News, Links, Guestbooks, Homes, Profiles, and Settings.
3.4. System Architecture Design
Picture 2 explains implementation of
Model-View-Controller (MVC) architecture
in CMS iLab. Model is a part of application which consists of class related to database and manages association between tables.
Controller is a part of application which
consists of class handling request from CMS
user and being the business logic of application. View is a part of application directly interacting with user, rendering the result of data processed by Controller.
Database CMS iLab Apache
Web Server
Dispatcher
View Controller Model
User CMS Model News Model Practician Model Practicumname Model Practicumschedule Model Assistant Model Project Model Resource ... Controller News Controller Practician Controller Practicumname Controller Practicumschedule Controller Assistant Controller Project Controller Resource ... PAGE News PAGE Practician PAGE ... FILENAME index FILENAME add FILENAME edit FILENAME delete FILENAME ... FILENAME ...
Picture 2. MVC Architecture in CMS iLab
Picture 3 shown Use Case diagram of CMS iLab. There are 5 users in CMS iLab :
Admin, Lecturer, Laboran, Member, and
Guest. Guest is lab participant (practician)
dan lab assistant. The others are different actor with different access privileges.
This Use Case diagram has 10 sub systems (moduls). Default system, located on the left side, is accessed by all users, including Guest. Administration system, located on the right side, is a system accessed only by user having an account in database. Picture 4 explains briefly the program flow of CMS iLab in MVC architecture.
Model handles data sanitation and input
validation from user. Sanitated and validated data then processed by Controller. The result of data processing is rendered by View in web interface made with pieces HTML, CSS, Javascript and PHP codes. User gets the result and all information processed by the system via this web interface using their web browser.
Picture 3 . iLab Use CaseDesign
3.5.CMS iLab Components
The application is divided into several parts explained below.
CakePHP Framework
CakePHP Framework is the main part which is used to build CMS iLab. Within the application structure, class files are located in
cake/ folder. The framework’s version is
1.1.10.3825 (stable). Main Library (Webroot)
Main library (webroot) consists of several files needed for supporting application interface. It consists of pictures, CSS (Cascading Style Sheet), Javascript, and some files for installation process and upload-download mechanism. The main library is located in app/webroot/ folder.
User
Keyword pencarian (melalui path url)
Mendapatkan ID menuju url halaman ID dari objek atau parameter lainnya
Apakah objek ada di database ? Redirect ke halaman error Memasukkan ID yang direquest ke proses Cek keamanan (apakah user diperkenankan melakukan aksi ?) Redirect ke halaman error Ya Tidak Tidak Lakukan filtering untuk objek (spam filtering, HTML formatting, data validation
Proses data yang dimasukkan (form, post, search)
Parsing layout berdasarkan aksi dari
proses (html, rss, etc)
Gunakan template untuk tampilan
layout modul
Ambil konten yang akan ditampilkan
lakukan filtering dan validasi tampilan
konten masukkan konten ke
dalam template layout konten Tampilan akhir : layout konten + layuot modul Ya Hasil ditampilkan ke user Validasi request data dan alokasi resource (database) Memproses data yang dimasukkan Menampilkan data MODEL CONTROLLER VIEW
Picture 4. CMS iLab Program flow
Secondary Library
Other part of iLab is secondary library. It supports main library by providing extra funcionalities for user. Some of them are : - Kcaptcha Library;
- Pagination Library;
- MySQL to XLS Converter Library. Configuration Class
CMS iLab needs several configuration variable, related to installation type, database configuration, session configuration, production type configuration, and so on. CakePHP framework locates all of configuration classes inside app/config/
folder. The most important configuration files are core.php, routes.php and database.php . Main Module
CMS iLab has ten main modules designed to fulfill general requirement for each laboratory. Each module consists of three parts called Model, Controller, and
View. There are Home Module, News Module, Profile Module, Practicum Module, Resource Module, Project and Research Module, Guestbook Module, Link Module , User Module, and Setting Module which are built as main module of CMS iLab.
Secondary Modul
Beside main module, CMS iLab uses secondary module. There are Login Module and Installer Module. They use no database table because none of them have database entities.
4.
System Implementation
4.1.System Evaluation Evaluation Method
Evalution process during implementation section is aimed to get information related to performance and durability from each module. Evalution process will give us detail information of application bug and several error occured during implementation process. The evaluation process is divided into three steps : 1. Interface Evaluation.
Interface evaluation has been done by running application with different internet browsers which are often used by user to access internet, such as Internet Explorer, Mozilla Firefox, Opera, and Safari.
2. System Installation Evaluation.
System installation evaluation has been done by implementing CMS iLab on three different operating systems and running it thorugh different netwok architectures, without and with proxy server.
3. User and System Interaction.
This evaluation shows the user respon upon CMS iLab performance. The evaluation has been done by asking several tester to fill some quizes related to CMS iLab. The tester are laboratory staff, laboratory administrator, laboratory assistant, laboratory participant (practician) and common user.
Interface Evaluation
CMS iLab generally could run without significant problem when it was accessed with different web browser. Nevertheless, CMS iLab user interface had not accomodated several browsers yet. There were some bugs related to CSS and Javascript rendering depended on the browser.
CMS iLab ran perfect without any problem on Mozilla Firefox, although it needed more time to render the interface compared with other browsers. The use of Mozilla Firefox is recommended to guarantee all funcionalities run without problem.
Picture 5. CMS iLab Interface
System Installation Evaluation
System installation evaluation had been done by implementing CMS iLab on three different operating systems, i.e Microsoft Windows XP Service Pack II, Ubuntu Linux 6.0, and OpenBSD 3.9.
Installation implementation on three different operating systems with different charateristics needs spesific procedures. Several requirements which are needed to run CMS iLab on all operating systems are : - Activation of mod_rewrite module in
Apache Web Server. By default, CakePHP uses mod_rewrite to access all directories within.
- GD Library (for image rendering) and XSLT (for spreadsheet rendering) must be activated in PHP installation.
- The use of .htaccess is allowed.
- app/config directory should be accessible by system, especially if the operating systems are Ubuntu Linux and OpenBSD. Therefore, its access privilege sholud be set in 755 or 777 with command chmod
through command prompt ot konsole. If the system uses Microsotf Windows XP, we don’t have to set the access privilege. - Configuration of iBrowser plugin in
TinyMCE library is manually set by adding absolut path of iLab installation in the configuration file.
User and System Interaction
The last evaluation showed that iLab user interface generally easy to access and use by user. Some bugs related to user interface will be fixed on the next iLab development.
5.
Conclusion
CakePHP Framework can be used as a tool to develop an integrated application such as Content Management System which is involved a lot of modules. By understanding the funcionality of CakePHP library class, CakePHP Framework can be developed into various web applications. The process of designing and implementing CMS iLab is successfully done. CMS iLab has ten modules which are used to accommodate general requirement of laboratory in Electrical Engineering Gadjah Mada University.
6.
Future Work
CMS iLab is still possible to be improved into more complex application. Several things related to iLab which can be improved i.e :
- Advanced development of iLab interface and simplification of secondary navigation on iLab sidebar.
- Development of system logic in Model and Controller classes.
- Development of system module by creating new module or special mechanism for module installation based on web interface which support iLab user to easily add or subtract suitable module.
- Development of installation module so that user can easily install the system without any manually-done-by-user configuration on various operating system.
- Integration of CMS iLab with practicum (lab work) registration based on SMS
(Short Message Service) by mobile phone.
Bibliography
1. Anderson, J.; & Masters, L.E. (ed). 2006a.
CakePHP Programmer's Reference
Guide. USA : CakePHP Software
Foundation, Inc. 141 p.
2. Anderson, J.; & Masters, L.E. (ed). 2006b.
CakePHP-API Documentation version
1.1.8.3544. USA : CakePHP Software
Foundation, Inc.
3. Anderson, J.; & Masters, L.E. (ed). 2007.CakePHP Framework. [Online].
http://www.cakephp.org/
Accessed on August 16th, 2007 4. Bird, Graham. 2006. How Cake Works.
[Online].
http://grahambird.co.uk/cake/tutorials/ howitworks.php.
Accessed on August 16th, 2007 5. Cevasco, Fabio. 2006. An Overview with
CakePHP Framework. [Online]
http://hades.phparch.com/ceres/public/ article/index.php/art::cakephp::overvie w. Accessed on January 3rd, 2007
6. Crandall, Karen S.; & Auping, Judith V. 1987. Laboratory Information Management System (LIMS)- A Case
Study. Ohio, USA : National
Aeronautics and Space Administration (NASA). 18 p
7. Douglas, Robert T.; Little, Mike; & Smith, Jared W. 2006. Building Online Communities with Drupal, phpBB, and
Wordpress. USA : Apress. 561p.
8. Fraser, Stephen R.G. 2002. Real World ASP.NET : Building a Content
Management System. USA : Apress.
405 p.
9. Gibbon, Dr. Gerst. 1996. A Brief History of
LIMS. USA : Laboratory Automation
and Information Management (journal issue 32, 1996).
10. Gillespie, Helen. 1994. Lab Data
Management. USA : Scientific
Computing and Automation (journal July 1994).
11. Krasner, G.E.; & Pope, Stephen T. 1988.
A Description of the Model-View-Controller User Interface Paradigm in
the Smalltalk-80 System. California,
USA : Parc Place Systems. 34 p 12. Shan, Tony C.; & Hua, Winnie W. 2006.
Taxonomy of Java Web Application
Frameworks. Beijing, China : IEEE
International Conference on e-Business Engineering (ICEBE '06). 8 p.
13. Siswoutomo, Wiwit. 2005a. PHP
Enterprise : Kiat Jitu Membangun Web
Skala Besar. Jakarta : Elex Media
Komputindo. 356 h. (In Indonesian Language).
14. Siswoutomo, Wiwit. 2005b. PHP Undercover : Mengungkap Rahasia
Pemrograman PHP. Jakarta : Elex
Media Komputindo. 356 h. (In Indonesian Language).
15. Smith, L.; & Scheeper, Inus. 2004. Bika
Lab System Workflow. [Online].
http://bikalabs.com/images/diagrams/fl owdiagramstandard.
Accessed on August 16th, 2007 16. Sunarfrihantono, Bimo. 2006. Makalah
Kuliah Analisis dan Perancangan Sistem Informasi : Pengembangan
Sistem Informasi. Yogyakarta : Teknik
Elektro UGM. 22 h. (In Indonesian Language).
17. Wagito. 2003. Pemrograman Berorientasi Objek : Teori dan Aplikasi dengan C++
Berbasis Windows dan Linux.
Yogyakarta : Gavamedia. 238 h. (In Indonesian Language).