Transforming a Paper-Based Library System to Digital in Example of Herat University - Master Thesis
Upcoming SlideShare
Loading in...5
×
 

Transforming a Paper-Based Library System to Digital in Example of Herat University - Master Thesis

on

  • 3,226 views

Resourceful libraries have long attracted knowledge-seekers and have played an important role in education and research. With the astonishing advances in science and technology, traditional libraries ...

Resourceful libraries have long attracted knowledge-seekers and have played an important role in education and research. With the astonishing advances in science and technology, traditional libraries have not remained unaffected and the concept of digital library has emerged and caused a revolution in these old institutions. A digital library can provide access to many of the information networks around the world, which is a necessary component of almost any research experience today.

Considering the facilities associated with a digital library, gradual replacement of traditional libraries by digital ones appears to be inevitable. As an important step in enhancement of education in Afghanistan, the concept of digital libraries must be introduced and integrated into the country’s rapidly evolving educational system.

This thesis addresses the challenges existing in Afghanistan university libraries. A solution for each challenge is defined by introducing digital and automated systems and finally a scheme is provided for switching from a paper-based library system to a digital library system.

Statistics

Views

Total Views
3,226
Slideshare-icon Views on SlideShare
3,225
Embed Views
1

Actions

Likes
4
Downloads
99
Comments
0

1 Embed 1

http://www.slashdocs.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Transforming a Paper-Based Library System to Digital in Example of Herat University - Master Thesis Transforming a Paper-Based Library System to Digital in Example of Herat University - Master Thesis Document Transcript

    • Transforming a Paper-Based Library System to Digitalin Example of Herat UniversityMaster’s ThesisAbdul Rahman SherzadSupervisors:Prof. Dr. Bernd MahrDr. Nazir PerozTechnische Universität BerlinFakultät IV Elektrotechnik und InformatikBerlin, 18.02.2010
    • ABSTRACTResourceful libraries have long attracted knowledge-seekers and have played animportant role in education and research. With the astonishing advances in science andtechnology, traditional libraries have not remained unaffected and the concept of digitallibrary has emerged and caused a revolution in these old institutions. A digital librarycan provide access to many of the information networks around the world, which is anecessary component of almost any research experience today.Considering the facilities associated with a digital library, gradual replacement oftraditional libraries by digital ones appears to be inevitable. As an important step inenhancement of education in Afghanistan, the concept of digital libraries must beintroduced and integrated into the country‘s rapidly evolving educational system.This thesis addresses the challenges existing in Afghanistan university libraries. Asolution for each challenge is defined by introducing digital and automated systems andfinally a scheme is provided for switching from a paper-based library system to a digitallibrary system. i
    • ACKNOWLEDGMENTFirst of all, I would like to express many thanks to the World Bank, Ministry of HigherEducation of Afghanistan, TU-Berlin, and other staff and organizations that wereinvolved in providing me with the opportunity to study for a Master‘s Degree.In particular, I would like to extend many thanks to Dipl.-Inf. Rene Herlitz, mysupervisor at TU-Berlin, for continuous provision of many useful suggestions andconstructive feedback, which enabled me to complete this paper.Last but not least, I would like to thank my family for their support and encouragement.I am indebted to their inspiration and support. This paper would not have been possiblewithout their support and inspiration. ii
    • TABLE OF CONTENTSABSTRACT ....................................................................................................................... iACKNOWLEDGMENT ................................................................................................... ii1 Introduction ............................................................................................................... 1 1.1 Motivation .......................................................................................................... 2 1.2 Goal .................................................................................................................... 3 1.3 Thesis Structure .................................................................................................. 42 Background ............................................................................................................... 6 2.1 Herat University ................................................................................................. 6 2.2 Herat University Main Library ........................................................................... 6 2.3 Herat University Abu Abdullah Rudaki Library ................................................ 7 2.4 Overview of Current Situation ........................................................................... 8 2.4.1 Book-Registration ....................................................................................... 8 2.4.2 Book Labeling in the Main Library ............................................................ 9 2.4.3 Call Number System in the Main Library ................................................. 10 2.4.4 Book Lending ............................................................................................ 11 2.4.5 Redundancy Problem ................................................................................ 13 2.5 Summary .......................................................................................................... 153 Digital System and Automation .............................................................................. 16 3.1 Need for a Digital and Automated Library....................................................... 17 3.1.1 Availability of Information ....................................................................... 17 3.1.2 Manageability of Information Explosion .................................................. 18 iii
    • 3.1.3 Accessibility of Various Media Types ...................................................... 19 3.1.4 Greater Efficiency ..................................................................................... 19 3.1.5 IT Based User Services ............................................................................. 20 3.1.6 Cooperation and Resource Sharing ........................................................... 20 3.1.7 Advent of ICT and WWW ........................................................................ 21 3.2 Summary .......................................................................................................... 224 Requirements........................................................................................................... 23 4.1 Functional Requirements .................................................................................. 24 4.2 Non-Functional Requirements ......................................................................... 25 4.2.1 Security ..................................................................................................... 25 4.2.2 Usability .................................................................................................... 28 4.3 Hardware Requirements ................................................................................... 29 4.4 Software Requirements .................................................................................... 30 4.4.1 Programming Language ............................................................................ 31 4.4.2 Database Management System ................................................................. 31 4.4.3 Web Server ................................................................................................ 32 4.4.4 Browser ..................................................................................................... 33 4.5 Summary .......................................................................................................... 345 Database Concept and Model.................................................................................. 35 5.1 Input Data ......................................................................................................... 35 5.1.1 Book Information ...................................................................................... 35 5.1.2 Member Information ................................................................................. 37 iv
    • 5.2 System Model ................................................................................................... 38 5.2.1 Login Scenario .......................................................................................... 39 5.2.2 Add Member Scenario .............................................................................. 39 5.2.3 Add Book Scenario ................................................................................... 40 5.2.4 Checkout Scenario .................................................................................... 41 5.2.5 Check In Scenario ..................................................................................... 43 5.3 Relational Database Benefits ............................................................................ 43 5.3.1 Redundancy ............................................................................................... 44 5.3.2 Insertion Anomalies .................................................................................. 44 5.3.3 Deletion Anomalies................................................................................... 45 5.3.4 Update Anomalies ..................................................................................... 45 5.3.5 Multiple-Value .......................................................................................... 45 5.3.6 Avoiding Data Loss .................................................................................. 46 5.4 Library System Database Model ...................................................................... 48 5.5 Summary .......................................................................................................... 506 Implementation ....................................................................................................... 51 6.1 Application Structure ....................................................................................... 51 6.1.1 Public Directory ........................................................................................ 51 6.1.2 Other Directories ....................................................................................... 52 6.2 Shared Code Concept ....................................................................................... 53 6.2.1 Database Connectivity .............................................................................. 53 6.2.2 General Functions ..................................................................................... 54 v
    • 6.2.3 Web Server Configuration ........................................................................ 54 6.2.4 Template.................................................................................................... 54 6.2.5 User Class ................................................................................................. 54 6.2.6 Thumbnail Class ....................................................................................... 56 6.2.7 Pagination Class ........................................................................................ 58 6.2.8 Persian Date .............................................................................................. 60 6.3 Challenges ........................................................................................................ 61 6.3.1 Form Live Validation ................................................................................ 61 6.3.2 Sort Data Instantly..................................................................................... 62 6.3.3 Add Data Instantly .................................................................................... 62 6.3.4 Search Data without Delay........................................................................ 63 6.3.5 Internationalization and Localization Approach ....................................... 64 6.3.6 401 Error Page........................................................................................... 65 6.4 Summary .......................................................................................................... 657 Conclusion .............................................................................................................. 66APPENDIX ..................................................................................................................... 69Bibliography.................................................................................................................... 70Eidesstattliche Versicherung ........................................................................................ 72 vi
    • LIST OF FIGURESFigure 2-1, User Searching for Book (Picture by Author) ................................................ 8Figure 2-2, Separate Book for each Category (Picture by Author) ................................... 9Figure 2-3, Books on Shelf with Labeling System (Picture by Author) ......................... 10Figure 2-4, Letters Represent Subject of Study on LC System ...................................... 10Figure 2-5, Book Catalogue Card (Picture by Author) ................................................... 11Figure 2-6, Library Membership Card (Picture by Author) ............................................ 12Figure 2-7, Separate Box for each Faculty (Picture by Author) ..................................... 12Figure 5-1, User Entity.................................................................................................... 48Figure 5-3, Library System Entity Relationship Diagram .............................................. 49Figure 6-1, Pagination Example 1................................................................................... 59Figure 6-2, Pagination Example 2................................................................................... 60Figure 6-3, Form Live Validation ................................................................................... 62Figure 6-4, Add Required Data Instantly ........................................................................ 63Figure 6-5, User Details with Mouse Over ..................................................................... 64 vii
    • LIST OF TABLESTable 2-1, Simple Library System using Book Registration .......................................... 14Table 5-1, Book Information .......................................................................................... 37Table 5-2, Member Information...................................................................................... 38Table 5-3, Simple Library Database ............................................................................... 44Table 5-4, Multiple-Value Using Multiple Rows ........................................................... 46Table 5-5, Multiple-Value Using Multiple Columns ...................................................... 46Table 5-6, Book Table..................................................................................................... 47Table 5-7, Author Table .................................................................................................. 47Table 5-8, Book-Author Table ........................................................................................ 47Table 6-1, Thumbnail Result with Width and Height Specified ..................................... 57 viii
    • 1 INTRODUCTIONAfghanistan has experienced three decades of civil war and almost all of itsfundamental infrastructures have been affected or destroyed, including its educationalsystem at all levels. The Afghan society feels the necessity for education more thanever, and it needs considerable time and effort to fill the gap, build the educationalsystem concretely and pave the way for new generations to have a system in compliancewith international standards.In order to reach the goal it is essential to take the first step, thus, in this paper a plan tokick-start the shift from a paper-based library system to digital has been detailed and thevarious implementation steps have been outlined, bearing in mind that expanding theaccess to libraries is pivotal to any effort to improve the educational system in thecountry.As a direct consequence of war, most Afghans are un-educated in computer sciencesand are not familiar with modern technology, or don‘t have any access to educationcenters and computers due to financial problems, and because the digital system is anew system that is not used often in the country, people still prefer using paper-basedinformation resources for their studies or research. The switch to digital library systemis a major transitional step and certainly takes a sufficient amount of time before it isfully integrated as a regular practice of academic community and the public.Using a paper-based system has many constraints and limitations compared to a digitalsystem as it is associated with wasting or consumption of (more) time, requires morepersonnel, and the service quality is much lower than that provided through the digitalsystem. Having such libraries equipped with a digital system can facilitate and ease theresearch process for lectures, students and researchers, who can use online resources,i.e. research papers, e-books, etc and take part in discussions or electronically exchangeviews with people who live thousands of kilometers away from them.Today, Information Technology (IT) has changed the world massively (examplesinclude reading our emails and news online using neither paper nor pen, communicatingwith instant messengers and Voice Over Internet Protocol (VOIP) while not sending 1
    • letters or going to call centers, watching video or TV shows online without renting /buying of physical DVDs, ordering and purchasing products online from around theworld without traveling, and as one of the more recent developments, some minorsurgical procedures can be performed without the presence of doctors). All thismotivated the author to play his own part in supporting the Herat University Libraries intheir effort to improve efficiency and quality of their services and reduce the sort ofproblems and difficulties which accompany their old system. The aim is to provide alibrary system with higher speed, accuracy and efficiency. It should be mentioned thatsuch a system would be replicable and could be easily implemented in other universitiesacross Afghanistan, once it has been successfully installed in Herat University.It is needless to say that upon using digital systems, the workflow in the library will besmoother, more rapid, systematic and well-organized, and all sorts of maintenance jobsand information processing can be carried out with higher speed, correctness andefficiency.1.1 MOTIVATIONIn Afghanistan, most administrative systems are paper-based which are hugely costly,and their workflow is slow and inefficient in spite of the many staff working in them.The same situation is seen in libraries as well. Some of the main challenges whichlibraries that use paper-based systems experience are as follows:  Wastage of time: searching for specific books is mostly done by users and it can be really cumbersome for researchers to look for a desired book in a long list of books on the book registration log. This can make the users exhausted and they may prefer to not use the library anymore (based on interviews with users).  Loss of books: Tracking of borrowed books is difficult. For example, a member borrows a book for a specific period of time and does not bring it back on time, so the book is somehow lost because there is no automation process available, and someone else can‘t use it anymore. 2
    •  Usage limitation: Information regarding books (i.e. headings, labels, and announcements) is limited to only one language either in Dari or Pashto; such a system is limited and can‘t be used by those who do not know the language.  Costly: Running and maintenance of such a system is very difficult and costly and requires many staff and expenses.Since I have studied in Herat University, I am familiar with, and have been able tolocate, the above mentioned irregularities and problems in its libraries. Having that inmind I decided to do a research on development of a digital system in order to fill thegap in Afghanistan‘s educational developments. This idea increasingly motivated me towork on, and think strategically about, replication and implementation of internationalsystem of education in Afghanistan. At the same time, being in Germany helped meobtain some good and significantly useful information about its university libraries,which helped me to implement the digital library system in Herat University.1.2 GOALThe main goal behind this thesis is to define some of the key issues related to librarysystems and develop a system to demonstrate several of these issues for management oflibrary resources and users. It is intended to be used as a creative guide to motivate andeducate users in the power and necessity of running a library in digital system. As such,the system was required to be easy to use.Some other goals behind this paper are to examine and evaluate the process in HeratUniversity Library as an example, discovery of users‘ needs, identify which parts of thelibrary workflow is required to be automated and digitalized and to implement anautomated and responsive library system which could handle tasks efficiently,accurately, securely, and rapidly based on the users‘ requests.When this challenge is addressed and the gap is filled in Afghanistan, the digital librarysystem can become a standardized system, although gradually and step by step, whichwill help lecturers and students to find topics based on their studies and to performeducational projects which enable them to improve their capacity, skills, etc. 3
    • 1.3 THESIS STRUCTUREThe paper will begin with a brief overview of the history of Herat University and itslibraries as well as their current situation, following which the benefits of the digitallibrary system and automation will be introduced in details. Next, the required libraryfeatures will be introduced, and focus will also be placed on the analysis of the datadefinitions. Finally the most important features will be addressed, including challengesduring the implementation phase.In general, providing such a system requires investigation, information gathering,analyzing, designing, implementation and maintenance which will be introduced indetails in the coming chapters, but prior to that there will be an overview of theorganization structure of the paper.Chapter 2: BackgroundThis chapter will begin by looking at the background of Herat University as well as bybriefly describing the history of Herat University libraries. Then the current workflowof the libraries will be introduced based on the author‘s surveys and interviews.Additionally, this chapter covers various aspects, challenges and issues as well as thedisadvantages associated with the current system.Chapter 3: Digital System and AutomationIn this chapter the digital library system and automation will be introduced in details.Moreover, the benefits of automation such as managing explosion of information,accessing different types of media, greater efficiency, resource sharing and cooperationwill be addressed.Chapter 4: RequirementsThis chapter begins by looking at what defines library, through describing its functionaland non-functional requirements, as well as by looking briefly at the features that willbe implemented in the library system based on the users‘ needs. Additionally, thetechnical hardware and software requirements will be introduced and addressed. 4
    • Chapter 5: Database Concept and ModelingThere are a number of different aspects of the application that must be covered,including system model, benefits of using relational database management system, andentity relationship diagram of the whole library system.In this chapter, all features of the library management system, including workflow ofthe system in order to accomplish a task, will be looked at and introduced. Each specificfeature will be broken down into its respective scenario. Here we will look at the librarysystem as a whole and discuss various options that need to be considered.Chapter 6: ImplementationIn this chapter, implementation of the library system will be defined. This processbegins by correctly setting up the environment and general application structure. Thereare a number of various types of files in our web application. By defining theapplication structure they will be kept as organized as possible. For example, onedirectory is required for the web server, which it uses as the base directory and fromwhich it serves files. Another directory is supposed to hold custom and third-party PHPlibraries, and last but not least is the one to hold web site templates. Besides all this, themost important features and challenges will be addressed and detailed.Chapter 7: Outlook and ConclusionThis chapter will detail the challenges and issues which are automated and resolved bythe implementation of the digital system as well as the sustainability and maintainabilityof the system itself. Next, the features and modules which are not yet covered by thecurrent implementation of the system will be described and detailed. 5
    • 2 BACKGROUND2.1 HERAT UNIVERSITYThe University of Herat, established in 1988 with only a literature faculty, is one of theoldest universities in the country and is particularly rich in tradition. It now consistsof 11 faculties (i.e. Agriculture, Computer Science, Education, Economics, Engineering,Fine Arts, Islamic Studies, Literatures, Law & Political Sciences, Medical and Science)which cover about 32 departments and totally host more than 6,000 students. (Team,2009).The rest of the information in the chapter is achieved by the author through interviewswith Majid Niya, head of Herat University libraries, other library staff and members aswell as through the surveys done by the author in both libraries.2.2 HERAT UNIVERSITY MAIN LIBRARYHerat University main library was inaugurated in 1367 (1988), simultaneously with theinauguration of Herat University itself.Since the beginning, this library has gone through many ups and downs. After therecent events and the establishment of a democratic system in the country, HeratUniversity has undergone some developments. Currently, the library provides its userswith more than 35,000 books in various fields during office hours. Moreover, it has athousand journals in Dari, Pashto and English.The main university library consists of sections including reference books, electronicsection, technical section, book distribution section, journals, and a section onAfghanistan.In 1387 (2008), based on an agreement between Herat University and ShahedUniversity in Iran, two librarians from Herat University library attended a two monthintensive training in Iran, in an effort to build the capacity of Herat library librarians. 6
    • One of the major problems in the Herat University library is shortage of space and lackof IT infrastructure. It is hoped that the Ministry of Higher Education and other relevantgovernment organizations and offices take the necessary measures in this regard.Currently, courses are offered based on credit system and students and lecturers are oncampus full time. Therefore, building a library in the new Herat University campusstands out as a necessity.In spite of all the problems during the educational year of 1387 (2008), Herat Universitylibrary distributed 2010 books, was visited on average by 40 people every day andreceived 396 members.2.3 HERAT UNIVERSITY ABU ABDULLAH RUDAKI LIBRARYThis library, which was previously named Herat Special Library, was renamed as AbuAbdullah Rudaki during the international Rudaki conference in Herat and Afghanistan‘sforeign Minister‘s visit to this city.There are a total number of 11,000 books in this library, of which 6,000 are in Dari andthe other five thousands were donated by the wife of the late German professor, Dr.Braun.This library fully runs based on a standardized system and its books are organizedfollowing the Library of Congress regulations, which are globally accepted. HeratUniversity professors and students who use the services of this library get familiar withhow to use a modern library and will have no difficulty using libraries outside thecountry. 7
    • 2.4 OVERVIEW OF CURRENT SITUATIONThe remaining part of the chapter will introduce the workflow processes of bothlibraries in more details.2.4.1 BOOK-REGISTRATIONBook-registration is one of the old methods for bookkeeping which is currentlypracticed in both libraries of Herat University. In this method, registration of bookidentifications and information is done manually by library staff. In this system, there isa separate book-registration for each subject (i.e. computer related books such as thoseon graphic, programming, network and database have their own book-registration,accounting related books have their own separate book-registration, etc).Searching for a specific book is cumbersome through these long and unsorted book-registrations and finding a book can take hours. Besides, after the book is found on thelog, a librarian is required to look for its location (see Figure 2-1).Figure ‎ -1, User Searching for Book (Picture by Author) 2Today, it is the age of information and technology, and it is not efficient to keep bookinformation on book-registration logs containing lists of books based on the subject (seeFigure 2-2 ) as the number of subjects in which books are written increases over time,new fields and subjects come to being continuously and, in addition, there are 8
    • interdisciplinary books that can be classified under more than one subject (e.g. books onrelated Engineering and Computer subjects).Figure ‎ -2, Separate Book for each Category (Picture by Author) 2Thus, with the methods currently in use in Herat University libraries, it is impossible toedit book information and hard to track books which have been checked out. Inaddition, book logs cannot be easily edited for lost and archived books.All in all, the workflow in the library is much slow, disorganized and inefficient, and thesystem is very tedious for both users and librarians.2.4.2 BOOK LABELING IN THE MAIN LIBRARYLabeling is like an address. It helps librarian to figure out where a book or otherdocument is located on a shelf in the library. In fact this system is not a standard onesince each librarian implements their own concept of labeling which is understandableonly for them (see Figure 2-3).The Library system will be inefficient and difficult to understand in the absence of thelibrarian who implemented the labeling. 9
    • Figure ‎ -3, Books on Shelf with Labeling System (Picture by Author) 22.4.3 CALL NUMBER SYSTEM IN THE MAIN LIBRARYNowadays most educational libraries in developed countries use the Library ofCongress (LC1) call number system. This system uses a combination of letters andnumbers to arrange materials on the shelf by subject as illustrated in Figure 2-4(Mazinani, 2000).Figure ‎ -4, Letters Represent Subject of Study on LC System 21 established in 1800 in the American Library of Congress for better services 10
    • Since LC arranges materials by subject, the first letter(s) represents the general subjectarea, and the number represents a specific subject, the third line represents the author‘sname and the last line is the year it was published.The Call Number can be considered like an address, exactly telling where a book orother media is located on the shelf in the library. As a standard system, it is notdependent only on a certain librarian but, instead, is understandable for everybodyirrespective of where on the globe they are.Recently, Librarians were trained on putting the LC system in place, so now theygenerate call numbers using some algorithms and regulations and stick them on thespine of the books.2.4.4 BOOK LENDINGBesides generation of a call number based on the LC system and sticking it on the spineof the book, a catalogue card containing book information and lending schedule table isplaced inside the book by librarian (see Figure 2-5).Figure ‎ -5, Book Catalogue Card (Picture by Author) 2 11
    • Users who do not have library membership card are not able to borrow any book, andusers are required to be registered as a library member in order to obtain themembership card.Figure ‎ -6, Library Membership Card (Picture by Author) 2When a user requests to check out a specific book, the librarian will fill out his / herrequired information on the catalogue card with consideration of the due date forreturning of the book, and will stick membership card with catalogue card together andkeep them in a box as it is shown in Figure 2-7 (for better efficiency there is a separatebox for each faculty).Figure ‎ -7, Separate Box for each Faculty (Picture by Author) 2 12
    • When the user brings the borrowed book back, he / she will be asked for the facultyname. Then the librarian looks after the member‘s card inside the related faculty‘s box.When it is all ok (i.e. it is not past the due date for returning the book or book is notdamaged) user will receive his / her membership card back and the catalogue card willbe placed inside the book for later use.All in all, there are remarkable problems as it is a paper-based system. One issue can be,for instance, un-awareness of librarian regarding the expiry dates of borrowed books, soit is difficult to track borrowed books and users, and last but not least when the usersbring back the borrowed books it is time-consuming to look inside the boxes.2.4.5 REDUNDANCY PROBLEMExtensive redundancy of data is the main problem linked with using paper-based librarysystem. Some repetition of data is almost always required, but redundancy is the issueof needless repetition of data.Suppose merely for the purpose of illustration that there are 10 books in the libraryhaving some required information [the same concept can be applied for a library withmaybe hundreds or thousands of books (Roman, 1999)].Code Title Author Information Publisher Information Name Details Pub Name Add Tel YearDB- MySQL Tom Logan Tom info Mercury New xxx 050001 YorkDB- Oracle Tom Logan Tom info Mercury New xxx 040002 YorkACT- Star climber Oppel Andrew Oppel info Harper New yyy 020001 Collins YorkACT- Sky breaker Oppel Andrew Oppel info Harper New yyy 010002 Collins YorkWEB- CSS Cristina Silva Cristina info Neptune Herat - zzz 080001 AfgWEB- HTML Cristina Silva Cristina info Neptune Herat - zzz 090002 AfgWEB- JavaScript McFarland, McFarland and Pogue Pogue sss 090003 David Sawyer David info Press City 13
    • WEB- Dreamweaver McFarland, McFarland and Pogue Pogue sss 080004 CS4 David Sawyer David info Press CitySF- Obsidian Prey Krentz, Jayne Krentz, Jayne Jove Jove Add ttt 020001 Ann Ann infoSF- After Dark Krentz, Jayne Krentz, Jayne Jove Jove Add ttt 000002 Ann Ann infoSF- Trust Me Krentz, Jayne Krentz, Jayne Pocket Location ppp 040003 Ann Ann info BooksSF- Wildest Hearts Krentz, Jayne Krentz, Jayne Pocket Location ppp 040004 Ann Ann info BooksWEB- AJAX Powell, Thomas Powell, Thomas McGraw- New xxx 080005 info Hill YorkWeb- AJAX Bible Holzner, Steven Holzner, Steven John Wiley US uuu 080006 infoTable ‎ -1, Simple Library System using Book Registration 2As Table 2-1 illustrates there are many books which have the same author informationrepeated in different pages of the registration-book log. In addition to this, publisher‘sinformation appears more than once. Thus searching for a specific and desired book isvery difficult and is so much time-consuming that it makes the users exhausted.According to the survey and interviews carried out by the author, this involved processis a reason for some people to prefer not to use the books from Herat Universitylibraries any longer. 14
    • 2.5 SUMMARYIn the current era, with the advent of new branches of science and expanding existingbranches and the growing number of students, lecturers and researchers, traditionallibraries with manual and paper-based workflow activities cannot maintain and managethe huge number of existing books and other resources, and also cannot respond to theapplicants‘ requests efficiently.One of the usages and benefits of Information and Communication Technology (ICT) isintroducing of digital and automated library systems, which can play an important rolein development and be a convenient means for sharing of resources and information.Additionally, most manual activities will be reduced and the workflow in the librarymay be carried out faster, and in a more organized and efficient way. All types ofhousekeeping jobs and information work can be done with higher speed, accuracy andgreater efficiency.The next chapter will introduce the digital and automated library systems including theirbenefits in more details. 15
    • 3 DIGITAL SYSTEM AND AUTOMATIONWe are now in the age of information and technology. This age has its owncharacteristics. The most important features of the information age are the facility andextraordinary speed of communications. With the introduction of computers andInternet in everyday human life, all angles and aspects of human society havetremendously changed. With phenomena such as virtual organizations and universities,electronic commerce and township, and last but not least the digital library, the worldtoday is faced with rapid and unpredictable changes.Some define the Internet as a digital and automated library while it is not such. It differsfrom any traditional or actual library including physical space for resources where theminimum services are the bibliographic information. On the other hand a digital librarycan also be defined as such: electronic access to information systems which are well-organized and that allow the user to retrieve organized, selected and managedinformation as fast as possible (Information, 2002).Digital libraries are computer-based models of actual libraries which, with the help ofICT, provide more effective and fast information services to the research communitiesby eliminating time and spatial range.Automation can be the use of computer systems and facilities (i.e. hardware, WorldWide Web, expert systems, artificial intelligence, and so on) to control, eliminate,reduce, or facilitate some processes and workflows of the manual system in differentsectors, including library loan, organizing, providing management, journals, reference;and also promote the efficiency of library housekeeping such as acquisition,cataloguing, circulations and serials control, etc as well as information (Information,2002). 16
    • 3.1 NEED FOR A DIGITAL AND AUTOMATED LIBRARYVarious factors and challenges have caused to bring about the change from paper-basedor traditional library to digital library systems.The fundamental reason to create digital libraries is better distribution of informationcompared to the past. Although traditional libraries are an integral part of society butthey are not complete.During centuries paper has been used as the main media for the storage of mediapublications. But in current era with the huge explosion of information and existence ofvarious sources of information, paper as media can no longer respond to the increasingneeds of human.As an example, consider using a real or traditional library, where the reader must bepresent. It takes only a few minutes of university members, but most people are notuniversity members and neither is the library in their vicinity. Most researchers,engineers and students will not have enough access to latest information if they relysolely on traditional libraries.The remaining chapter will introduce the benefits of digital and automation librarysystem in more details. The benefits also can be applied to digital index, not only todigital library.3.1.1 AVAILABILITY OF INFORMATIONIn traditional libraries, access to resources and documents is only possible as much asthe number of existing copies allows, and also users cannot use them until they arebrought back in the library; in contrast with this, access to digital library resources andmaterials are available for unlimited number of users. The same concept applies todigital index as in a traditional library system one user can use the book-registration logat a time.Using of traditional libraries is restricted to certain days of week and certain hours ofday, but in digital libraries there is no time limitation and at any time the system can beused. 17
    • In traditional libraries danger of loss of documents and resources due to negligence ormistake exists and sometimes it may even be impossible to pay costs for such losses,but this concern does not exist in digital libraries and the documents can be kept in asecure way.Lack of Physical Boundary: Visitors who use the digital library do not need tophysically visit the library as long as Internet connection is available, people around theworld can have access to the same information at the same time with no conflict.Lack of Time Boundary: An important advantage is that digital library clients canaccess information and the library‘s resources any time, day or night; unless there is noInternet connection. This is in contrast with traditional libraries which are only open andaccessible during the official time.Multiple Accesses: The same resources shall be used simultaneously by several users.For instance, if there is a PDF version of book available it does not make differencehow many users are using it; while traditional libraries are limited to the number copieswhich exist.Structured Access Method: Digital libraries provide more organized access to contentin much richer ways. This means that it is easily possible to move from a list of books toa special book, and then to a special chapter.Information Retrieval: Users can search the total collection using any search phrase(word, phrase, title, name, and subject). Digital libraries provide a very easy way to useresources through interface.3.1.2 MANAGEABILITY OF INFORMATION EXPLOSIONThe huge growth and explosion of documents (i.e. books, articles, journals, etc) can befelt considering the fact that the number of documents doubles almost every two orthree years written by people around the world and available in various formats and onvarious fields, especially in areas of science, social science and technology in the formof book and non-book material. This forced the library planners to utilize newtechnology for the organization of information since the traditional library methodsfailed to cope with the task (Nabil, 1996). 18
    • The fact that information explosion is growing at a tremendously fast pace is the mainreason for people to rely more and more on using library automation. Although libraryautomation seems to be the only solution to this, there remains a main challenge as howto organize such libraries systematically and how to provide services with documentswhich are available in different formats, thus library automation is the only solution.3.1.3 ACCESSIBILITY OF VARIOUS MEDIA TYPESPrinting is not always the best way for information storage and distribution. Forexample, a database may be the best way to store information because of the ability toanalyze that information by computer. Therefore, information presented on paper isprovided to users as static in terms of content and shape. However, digital libraries havethis feature to provide information in dynamic and flexible ways (Arms, 2000).Generally, information is available in libraries in different formats, print or non-printmaterials, within print format there are many other varieties of sources such as books,journals, e-books, archives and pictures, and non-print sources include videos, audios,and so forth, so it is required that they be organized and accessible as fast as possible.3.1.4 GREATER EFFICIENCYThis is a direct statement about the utility and usefulness of using computers in order tokeep track of the resources which are available, keeping in mind that, in the case of adigital library, its success depends on how the recourses are utilized by the users. “The workflow in the library may be made more rapid, more systematic and efficient with the help of computer. The records in the computerized store are more accurate, more reliable, and more accessible than the manually prepared records. All sorts of housekeeping jobs and information works can be performed with more speed, accuracy and greater efficiency.” (Riaz, 1992 P. 66)Making the data available and usable to users to a large extent as quickly as possibleand in an accurate manner is what the greater efficiency does. 19
    • 3.1.5 IT BASED USER SERVICESThe growth of documents and resources is fast and these are produced in many differentareas, and are updated regularly. This all leads to an increase in the users‘ needs as theyare required to keep up with the new developments and remain aware of newhappenings. Thus we can say that the revolution of information expansion has disabledpaper-based systems to cope with the increase in the needs of users resourcefully.The computer as an electronic machine which is fast, reliable, and capable is able torespond to the users‘ needs in an enhanced and fast manner. For instance most of theworkflow and housekeeping of a traditional library such as acquisitions, circulations,cataloguing, and serial controls is done manually and leads to many problems. This canbe done with computers with greater ease, speed, accuracy and efficiency with no error.Automation of library cataloguing provides a variety of access points to a large volumeof information very easily, and online catalogue provides great access for the users withthe possibility of accessing a variety of bibliographical databases around the world andobtaining information in whatever field they are interested.3.1.6 COOPERATION AND RESOURCE SHARINGNo single library or institution can be resourceful and self-sufficient alone by itself,since no single library can collect and organize all documents available all over theworld even in one specific field of study. Nor any one organization can gather alldocuments in the areas of interdisciplinary and multidisciplinary subjects. “The computer-based library systems, such as Online Computer-based Library Center (OCLC) in the United States, the University of Toronto Library Automation System (UTLAS) in Canada and the Birmingham Libraries Cooperative Mechanization Project (BLCMO) in the U.K. are functioning successfully with increasing databases and multidimensional services.” (Riaz, 1992, P.66) 20
    • Through automation process cooperation and sharing of resources among the librariesand other organizations is possible without consideration of geographically dispersedareas within the country and the world.The remarkable enhancements and benefits of resource sharing comprises of: (a) Accessto more documents and information sources due to coordination and cooperation ofmany libraries and institutions in a system. (b) Being inexpensive, because the totalcost is shared by a number of libraries in the system. It can happen that due to lack ofbudget a particular library or institution can‘t afford all the required documents andresources, and (c) helps avoid duplication of resources.3.1.7 ADVENT OF ICT AND WWWNowadays the Internet plays a vital rule in libraries and the information centers, as it hastremendously changed the world and the means of communication across the globe.With rise of new technologies world has became a global village; a village that includesdigital libraries as well.As researchers and students increasingly achieved access to the Internet, they soonunderstood it and found it as a tool for the advancement of learning. Textbooks in somelibraries and other educational institutions were out of date, whereas research on theInternet moved quickly, was up to date, and included a wide variety of internationalsources. Thus, students were the first to realize the impact of the Internet on theireducation—barriers to learning had been removed.All in all, due to the availability of ICT and the World Wide Web (WWW) it is easy foreveryone to know what is happening and what is exactly taking place in the modernworld and to be up to date. 21
    • 3.2 SUMMARYIn physical or traditional libraries, access to books is only possible as much as thenumber of existing copies allow, and next visitors cannot use them until they arebrought back; in contrast access to resources of a digital library are available forunlimited number of users.Using of traditional libraries is restricted to certain days of week and certain hours ofday, but in digital libraries there is no time limitation and at any time the system can beused.Physical access to the library for people in remote areas could not be accomplished andthis makes it difficult for anybody who lives away from physical libraries to use themfor educational, research and study purposes but in digital libraries distance has nomeaning, anyone in any place who has access to Internet can use the resources.In physical libraries risk of loss of documents and resources due to negligence ormistake exists and sometimes it may even be impossible to compensate such losses, butthis concern does not exist in digital libraries and the documents can be kept in a secureway.The aforementioned benefits also apply to the digital index and not only to digitallibrary. For instance in traditional libraries the book-registration log can be used by oneuser at a time and also it is not available remotely and risks for loss of it exist as well.Overall, considering the problems with paper-based systems, and the benefits ofcomputerized systems, it is decided to implement such a system to overcome some ofthe aforementioned difficulties and offer services with ease and efficiency instead.In general providing any system requires investigation, information gathering, analysis,design, implementation and maintenance. Definition of Requirements for the proposedlibrary management system for the Herat University libraries will be covered in the nextchapter. 22
    • 4 REQUIREMENTSIn System Development Life Cycle (SDLC) of software engineering, the wordrequirement can be defined as an introduction of what a system or a product does, if it isa must, referred to as a functional requirement. This type of requirement specifiessomething that the delivered system must be capable to do. Another type of requirementspecifies something about the system itself, and how well it performs its functions. Suchrequirements are often called non-functional requirements. Examples of suchrequirements include accessibility, usability, reliability, maintainability and in a wordease of use.To sum up, a requirement is defined as a condition and criteria the system must meet forthe customer to find the system satisfactory. Requirements serve as an agreementbetween the system developers and the customers for whom the system is beingdeveloped. The system developers agree to provide the capabilities and functionalitiesspecified. The customers or clients agree to find the system satisfactory if it provides thementioned capabilities.As a result of the investigations and surveys performed by the author, and the interviewsdone with library and academic staffs, the following components are found as the mostessential ones for the system to provide. It shall overcome problems related to manualand paper-based activities, automate most of the feasible tasks such as data summary,overdue feedback for the borrowed books, and provide ease of use of the library for themembers.Book Management: The library management system shall allow authorized users toreview, add, update and delete books information.User Management: The library management system shall permit authorized users toreview, add, update and delete users‘ information.Search: The library management system shall allow users including either library oracademic staffs to review, and search resources. 23
    • Check in and Checkout: The library management system shall allow authoritativeusers to review and search checked out books in order to extend the due date or informusers to bring back the book.Report Generation: The library management system shall automate most calculation inorder to provide useful statistical data.News and Announcements: The library management system shall let users, eitherlibrary or academic staffs, to review and search for recent news and announcementswith regards to the library.4.1 FUNCTIONAL REQUIREMENTSThe functional requirements describe the core functionality of the library managementsystem. In more detail, functional requirements are the functionalities which arerequired for the library management system as without them the system can‘t becomplete and function properly. These are sometimes known as system capabilities.Book and User ManagementThe library management system shall allow authorized users e.g. library staffs toreview, add, update and delete books and users information.This is because the library staff need to have an admin section with qualifiedfunctionalities that manages resources, either book or user information, or otherresources when it is required.Simple and Advanced SearchThe library management system shall permit library members including either library oracademic staff to search and review resources such as books information and newsannouncements. Authorized users shall be allowed to search for all kinds of resourcesincluding books, users, news etc in order to review, change or update information.Search feature facility shall allow the finding of resources in a matter of secondswithout time wasting. The search feature will be based on various criteria. In addition,advanced search feature is provided in order to search various conditions and criteria 24
    • simultaneously (i.e. book title, language, subject, author information etc with regards tobooks and the same concept can be applied for the users information).Check in and CheckoutThe library management system shall allow authorized users (i.e. library staff with rightaccess level) to do check in and checkout processes; besides, it can review list ofchecked out resources in order to either inform users to bring them back by email orextend the due date.The proposed library management system is supposed to overcome difficult processesof resource check in and checkout (distribute books to the users and update the booksreturned by the users), and instead provide ease of use on mentioned processes; inaddition, the library management system shall calculate and display the list of users withoverdue borrowed books.4.2 NON-FUNCTIONAL REQUIREMENTSThe non-functional requirements features will improve accessibility, reliability, andmaintainability of the system and provide ease of use for the library staffs and users.Non-functional requirements are also known as quality requirements as they increasethe usability of the system.4.2.1 SECURITYFor the purpose of security issues and resolving of problems such as abuse of theavailable system information and sabotage and manipulation of resources and data byunauthorized users, loss of data by system crash due to power failure, virus and fire;special and efficient security procedures and roles are considered for the system asfollows:4.2.1.1 ACCESS LEVEL SCHEMEAccess to various system components including documents or other management partsof the system is based on role. In other words, each user in the system will have accessto different parts and components of the system based on the permissions and privilegesdefined. 25
    • There are different categories of users namely administrator, library staff, lecturers andstudents. Depending upon the category of user the access rights and permissions aredecided. This means if the user is an administrator then he / she can be able to modifythe data, delete, append, etc. All users other than library staff such as students andlecturers only have the rights to retrieve the permitted information.4.2.1.2 ENCRYPTION OF STORED PASSWORDSMost of the users have different accounts for their emails, messengers, social networks(i.e. Yahoo, MSN, Skype, Live Messenger, Facebook, and MySpace) and most of thetimes use the same password. Thus, passwords of system users in the database arestored encrypted with using Secure Hash Algorithm (SHA), even if unauthorized usersachieve access to the database, the passwords are unusable since they are encrypted.4.2.1.3 PASSWORD RECOVERYPassword recovery is usually a useful and significant feature and component of thesystem. It can be counted as an automated feature of the system which decides andoperates by itself, and there is no need to ask library staff for lost / forgotten password.4.2.1.4 SECURITY IMAGE / CAPTCHACAPTCHAs (Completely Automated Public Turing test to tell Computers and HumansApart) keep spam programs out of systems. Right now the most popular socialnetworking sites (i.e. Facebook, MySpace, etc) and other application systems useCAPTCHAs in their registration form since screen readers are not able to read the textin CAPTCHAs. Therefore by using CAPTCHA also known as security image, system isable to differentiate between human and computer or screen readers.4.2.1.5 DATA SANITIZATION AND V ALIDATIONValidation of data is a very essential and vital part of working with forms. Not only caninvalid submitted data lead to security problems (i.e. SQL injection, XSS, sessionfixation, etc), but it can also crash the system. “A critical concept related to handling HTML forms is that of validating form data. In terms of both error management and 26
    • security, you should absolutely never trust the data being entered in an HTML form. Whether erroneous data is purposefully malicious or just unintentionally inappropriate, its up to you the Web architect to test it against expectations.” (Ullman, 2005, P.42)Data validation and security is important and often undervalued by designers whodesign databases, developers who develop applications, programmers and clientssimilarly.  Cross-Site Scripting (XSS): A sort of code injection where a script is injected onto a website from a completely different website. (Shiflett, 2005)  SQL Injection: this is deservedly one of the best known types of attacks in which a script is used to participate in one of numerous exploitative behaviors including exposing gaining unauthorized access to data, altering data inside of a database, or simply injecting code to be rendered or executed within a website thereby breaking or altering the website (Shiflett, 2005).  Cross-Site Request Forgery (CSRF / XSRF): A less common exploit that relies more on data sources like browser and session cookies than poorly sanitized and validated data inputs (Ullman, 2005).  Improper Data: Not really security vulnerability by itself, improper data can cause problems for a website owner or database administrator. Often, improper data can break poorly coded websites or cause automated systems to crash.4.2.1.6 DATA B ACKUPIn an age when the use of computers increases day by day, data backup and storage ismore significant than ever. However, todays data backup and storage solutions haveevolved into much more characteristic services that let one share and access your dataeasier and from pretty much anywhere. There is no warranty of avoiding data loss dueto issues such as system crush, corruption, virus, or power failure. In such situationsbackup would be the only solution. 27
    • 4.2.2 USABILITYIf a powerful system in a specific field is created without an appropriate user interface,users will not use it. Appropriate user interface design is an effective communicationpath between users and the created system.If system usability is difficult, if it causes numerous errors, or if the system does notlead the users to their aims simply, despite of the powerful performance that it provides,users will not be interested in using it.A suitable and appropriate interface design is the most important issue for production ofsystem, because the users only work with the interface and that is why the interface isknown for them as the system.4.2.2.1 WEB B ASEDSince proposed library management system is dynamic and on the other hand librarystaffs are not technical / programmers, it is useful and more user friendly to consider allcomponents and parts of the system completely web based and dynamic. For examplehome page, library rules and policies, library services, contact us, and contents of otherpages can be updated and modified through the interface easily without code accessingand manipulation by the application programmer. Thus, all contents of the componentscan be easily customized and modified via the interface by the library staff withoutspecific technical knowledge whenever it is required.4.2.2.2 SMART DATA VALIDATIONSince the system is supposed to handle users and books registration into the database forthe purpose of maintenance and tracking, immediate evaluation and validation of userinput during the registration process would be helpful and provide ease for the librarystaff. Validation of user input after registration is complete and checking on the serverside and comparing of data against the database based on some criteria like usernameand email duplication would be tedious as the library staff is required to correct theerrors and reenter everything from the scratch. 28
    • 4.2.2.3 SMART DATA SORTINGBased on the survey and interviews carried out by the author, accessing the requiredinformation and favorite resources are one of the most essential modules mostly used bythe library staff during book management (edition of information, deletion of unneededbooks, check in and checkout transactions), and members while looking for theirfavorite books. Thus, including smart sort feature handles sorting of data based onmulti-column and parses text, integers, currency, floats, and dates data types withoutpage refreshes and will apply applicants‘ requests more efficiently.4.2.2.4 PAGINATIONPagination is basically the concept and process of taking a set of huge records of dataand spreading them out over many pages to make them much easier and more flexibleto be viewed by users.The concept behind pagination is, if there is hundreds and thousands of records ofinformation displaying only on a single page; not only it would be a headache for usersto try and read through the long page, but it will also be a cause for reducing systemperformance as it takes much time to display them.4.3 HARDWARE REQUIREMENTSThe system is going to be used in Herat University libraries. The network architecturewould be client/server, so system would be installed on the server, and the clients couldaccess it via browsers.Since currently there is not a very large compound for the both libraries, and neitherthere is significant rush of the members nor huge growth of information and resources,so three desktop computers would be sufficient to make the internal network of eachlibrary. One of the computers shall be considered as the server for the system and therequired tools and software would be installed on it. The other two computers will beused as client by members for accessing material and resources. 29
    • Server requirementsOperating System: Windows XP / Vista2Processor: Pentium 2.x GHz or higherRAM: 1 GB or moreHard Drive: 80 GB or moreMouse, Keyboard, LAN Card, Monitor, Printer and some other devicesClient requirementsOperating System: Windows XP / VistaProcessor: Pentium III or 2.0 GHz or higher RAM: 516 Mb or higherHard Drive: 20 GB or higherMouse, Keyboard, LAN Card and Monitor4.4 SOFTWARE REQUIREMENTSThere are many reasons for developing a new system rather than adapting an existingone such as interface and localization, different requirement specifications including thedata and functionalities, and last but not least customization according to theenvironment.The development of the proposed system will be constrained by the availability ofrequired software such as web servers, database and development tools. In this part it isto be discussed that what types of tools and software are actually required in order toimplement the proposed system with aforementioned features.2 Selection Windows Operating System is due to users familiarity with it, on the side the proposed systemshould be cross plat-form 30
    • 4.4.1 PROGRAMMING LANGUAGEThere are many different web-based programming languages available, for exampleASP, JSP, PHP etc.PHP 5.3.0 is chosen as the scripting language since it is fast, free and open source, isextremely powerful and interactive with almost all Database Management Systems(DBMSs) and especially because it has built-in features for communicating withMySQL (Ballad, 2008).PHP stands for PHP Hypertext Preprocessor. The word Hypertext means HTML or anyother markup language and the word Preprocessor defines that PHP processes the codebefore sending the result to the client‘s browsers (Glass, 2005).PHP is free. This means that it can be downloaded from the PHP official website3 andbe used. This is an advantage since Afghanistan is a developing country which does nothave good economic infrastructures, and in particular educational institutions cannotafford the license payment.PHP is open source. This means the source code is freely available to the public for useand modification, thus allowing programmers and developers to modify and customizeit to fit their own specific environment.Additionally, PHP is cross-platform. The term cross-platform means that one can usePHP on Windows, Linux, MAC operating systems and this is a great feature.4.4.2 DATABASE MANAGEMENT SYSTEMIn order to keep the data persistent a database is needed, and a database is just acollection of related data; examples of databases that are used in everyday life can bephone address book storing friends‘ information, bank databases keeping accountinformation etc (Navathe, 1999-2008).3 http://www.php.net/downloads.php 31
    • In order to manage resources such as users and books details and so on a (DBMS) isrequired. As an analogy database can be considered as the library, while DBMS can becounted as librarian.Examples of powerful DBMSs are Oracle, Microsoft SQL Server, Microsoft Access,Postgre-SQL, MySQL etc where each of them has their own merits and special features.As the result of author‘s investigations, MySQL 5.1.36 was chosen as the DBMS, sinceit is free and open source and downloadable from its official website4.Besides, it can handle small and medium databases up to 32 indexes per table. Thisfeature has been successfully implemented at levels of 60,000 tables and 5,000,000,000rows (version 5.x, currently in development, will allow 64 indexes), and is relationaldatabase management system where data can be split into many separate tables in orderto reduce redundancy and database anomalies, and last but not least is that it iscompatible with PHP (Glass, 2005).4.4.3 WEB SERVERPHP is selected as the scripting language on the server side. It does not needcompilation. Placing PHP source files on the server and the web server will take care ofparsing and executing the source files, and then sending the plain text results to theusers‘ browsers instantly depending on how busy the web server is.There are many different web servers available such as Apache HTTP web server alsoknown as Apache, IIS (Internet Information Server), etc and each has its own featuresand merits. As an answer to the question of which web server should be selected, theanswer will be apache 2.2.11 due to its great offering features as follows.Apache is free. It does not need license payment and is an open source that allowsprogrammers to modify and customize it, adding or modifying modules as needed to fittheir own environment. It runs on a variety of different operating systems (i.e. Linux,Windows, Mac OS (and most other varieties of UNIX), it is a great and popular web4 http://dev.mysql.com/downloads/ 32
    • server according to surveys and investigations at news.netcraft.com 5andsecurityspace.com6. This wouldn‘t be true if it didn‘t work well. Also, this means thatApache carries on correctness, reliability, scalability, stability, speed and last but notleast there is a large group of users who can support and provide help (Ballad, 2008).4.4.4 BROWSERA web browser is a program on the computer that allows users to visit the web sites.The web browser is an important piece of software on the computer because every webpage runs through it.Installing web browsers is free but the latest version is preferable and there are plenty ofweb browsers such as Firefox 3.5.5, Internet Explorer 7.0, Safari, Opera, and GoogleChrome 3.0.195.33 etc.Java Script is required to be enabled on the browser for the proposed system in order toprovide smart and useful, mostly non-functional, requirements (i.e. Smart datavalidation, quick sorting of data, etc).5 http://news.netcraft.com/archives/web_server_survey.html6 www.securityspace.com/s_survey/data/ 33
    • 4.5 SUMMARYBased on the author‘s investigations and surveys in Herat University libraries, HeratPublic Library, some online library management systems, and interviews with librarystaff, the proposed system requirements and specifications have been discovered andcategorized as functional and non-functional.In order to fulfill the listed requirements and specifications, it is essential to analyze anddivide them into multiple tables in order to reduce and overcome repetition of unneededdata. Additionally, elimination of database anomalies (insertion, deletion, and updateanomalies) is important.In order to create communications and negotiation space between the system developers(database designers and application programmers) and customers (library staff), it isnecessary to have a model of the database system that is understandable for both parties(developers and customers).The coming chapter will introduce the methods of data analysis and their benefits.Besides, the database entity relationship model of the system will be introduced in moredetails. 34
    • 5 Database Concept and ModelThe model of a database provides a useful blue-print and perspective, in particular forthe purposes of the initial design of the database. Additionally, it is a bridge between thedevelopers and customers; since the customers do not have technical knowledge, thusthe database model provides ways of communication and discussion between them.The general principles and concepts of the use case scenarios and models for the librarydatabase systems will be illustrated and introduced in detail through the entire chapter.The database library example is designed to hold data about the books in a certainlibrary for the purpose of illustration and description; in addition, the amount of datawhich will be used will be kept artificially small just as much as necessary to exemplifythe concepts.In order to start building the basic model, the database designer is required to analyzethe information gathered during the previous chapter for the purpose of (a) classifyingdata objects as either entities or attributes, (b) identifying and defining relationshipsbetween entities, (c) naming and defining identified entities, attributes, andrelationships, and (d) finally draw its Entity Relationship diagram.5.1 INPUT DATAThe results of the input data are based on surveys and interviews performed by theauthor in Herat University libraries, Herat Public Library, some online librarymanagement systems, and last but not the least with library personnel in regards withrequired data.5.1.1 BOOK INFORMATIONHerat University libraries use book registration logs for the purpose of keeping andtracking of books information. Also part of books information is kept on the bookcatalogue cards for the purpose of tracking lent books. Table 5-1 is the needed data forthe book based on results of the author‘s surveys and interviews. 35
    • Attribute DescriptionSignatory Signatory is the system call which is generated using Library of Congress system standard with using some algorithms; helps user and librarian to access location of the book easilyTitle Title of the book; useful for the search purposeLanguage There are books in different languages, thus for the purpose of having a list of books according to specific language, useful for statistics purposes for example displaying total number of books according to languagesEdition Edition of the book (i.e. 1st, 2nd, 3rd, 4th, …. 8th)Category There are books on different subjects, thus having a list of books according to specific subject, helpful for statistics purposes for example having number of books according to each categoryPublisher Name Name of publisher, valuable for the search purposePublished Location City where the book was published, as address of the bookPublished Year Only yearAuthor‘s First Name Book Author’s First Name; useful for the search purposeAuthor‘s Last Name Book Author’s Last Name; helpful for the search purposeAuthor‘s Birth Year Only YearAuthor‘s Death Year Only YearStatus Can store the following values:  Archive: Books which are old and out of date, not being used any more  Available: Books which users can borrow  Unavailable: books with one copy not lendable or those books which have been borrowed, burned, damaged and now not available in the library 36
    •  Reference room: Books which cannot be taken out of library, but can be used inside the libraryNo of Copies Number of copies which are available for the bookDescription Other book information such as ISBN, sub-title, etcTable ‎ -1, Book Information 55.1.2 MEMBER INFORMATIONLibrary membership cards have been issued for members including students andlecturers as the library membership cards enable them to borrow their favorite booksfrom the library.Herat University libraries use member registration logs for the purpose of keeping andtracking member‘s information. Table 5-2 summarizes user‘s information as the resultof the author‘s interviews with library staffs.Attribute DescriptionFirst Name Member’s First Name; useful for the purpose of searchingLast Name Member’s Last Name; useful for the purpose of searchingFather‘s Name Member’s Father Name; useful for the purpose of searchingGender True or false, Useful for statistics purposes to know the number of users according to gender; useful for data filteringFaculty Useful for statistics purposes to know number of users according to each faculty, useful for data filteringSemester Useful for statistics purposes to know number of users according to each semester, useful for the search module to filter based on semesterEmail Useful in future, in order to notify users about new books, account activation, and warning users to bring the borrowed books back, etcContact No Mobile or telephone number, needed in emergency cases, in 37
    • order to inform usersID No Users’ IDENTIFICATION NORegistration No Registration Number of IDENTIFICATION NOPage No Page Number of IDENTIFICATION NOOriginal Residence Original address of user (city)Current Residence Current address of user (city)Username Unique, this is the user account to loginPassword Password in order to login into the systemUser Category Useful either to define access level, or on user statistics section according to user category (student, teacher, librarian, administrator)Is Active Defines status of the user ( active or not active), maybe in future we activate user account through email, and also when s/he graduates we mark that user as not activeSignature May the user want to have a word, or a signaturePhoto Stores a random key as user photo name, why random, because of security issueTable ‎ -2, Member Information 55.2 SYSTEM MODELIn order to simplify the requirements definitions and specifications of the librarymanagement system listed in previous chapter, and introduce what exactly happenswhen users interact with the system, it is useful to define use case scenarios for theimportant system requirements; since scenario is an example of what occurs whensomeone interacts with the system. 38
    • 5.2.1 LOGIN SCENARIOBefore directly describing the login scenario, it would be useful to define different typesof users. The proposed system will have two types of users. One for academic members(i.e. lecturers and students; chosen different names due to statistical purposes to achievenumber of users based on their types; besides system sustainability in future to definedifferent access level for each), and the other one for administrators (administrators /librarians; currently both have same right and access level but the reason behindchoosing two different names is to define different privileges in future for each).Currently the academic member‘s login does not provide them more privileges on thesystem. In future when there is good IT infrastructure and Internet accessibility—members can log into the system from anywhere in order to make book reservation,check their account, change their passwords and profile information, etc.When resource administration is required library staff can login the system and theirlogin information will be checked and matched against database information. In caselogin information is correct; administration navigation links appears to the logged inmember. If the login information does not match with database information the memberwill be redirected to the home page.5.2.2 ADD MEMBER SCENARIOAdding a member is the task of authorized users (i.e. library staff with right access levelprivileges); thus the page is required to be restricted for academic users and onlyaccessible when library staff with right privileges logged in.During entry of member‘s information, the system should be smart on data validationand responsive as fast as possible when invalid data typed. The system will take care ofthe following validations:Required: Validate against either empty value or null.Valid Characters: Invalid characters will not be accepted (i.e. %, ^, $, etc).Valid Email: Valid email address must be supplied (i.e. name@server.domain). 39
    • Remote: Requests a resource to check the form element for validity i.e. username,email, and ID duplication is not allowed.Min Length: Makes the form element require a given minimum length.Max Length: Makes the form element require a given maximum length.Numeric: Allows numeric data type.Accept: Makes the form element require a certain file extension (i.e. .jpg, .jpeg, .bmp,.png).Equal To: Requires the form element to be the same as another one (i.e. password andconfirm password elements must be matched).When member‘s information is typed correctly successful feedback appears, stating thatmember added into the database successfully.Otherwise, if there is something wrong with data entry, warning feedback appearsdisplaying the missing and incorrect typed information.Besides client side data validation; it is essential to check and validate data on the serverside too; since Java Script can be disabled on browsers.5.2.3 ADD BOOK SCENARIOAdding books into the database is the duty of authorized users; thus the page is requiredto be restricted against unauthorized users and only accessible when members do loginwith appropriate access level.Certain data are required and must be validated; besides client side data validation; it isrequired to validate data on the server side as well; since Java Script can be disabled onbrowsers. 40
    • During book registration process in addition to data validation there are some issues andchallenges, which are useful to be considered. They are listed as follows:Author for the Book: A book can be written by more than one author, so the challengeis to make the system smart enough to be able to add as many new authors as requiredin place which is not available in the list.Category for the Book: More than one category may be applied for a book, forexample a book with the title of ―PHP and MySQL in 21 Days‖ is related to databaseand programming categories, so the system should be smart enough to add as many newcategories as required in place which is not listed.Publisher: System must be able to handle adding of new publishers which do not existin the database already.Book Copies: Books are donated or purchased in the library, sometimes carrying morethan one copies. The problem is that the number of copies are not clear so there maybeone, two… ten, fifteen, more or less. System must be smart to add as many numbers ofcopies as required without refreshing the page, and without removing the already typedinformation.When book information is typed correctly, successful feedback appears stating thatbook information is saved in the database successfully.Otherwise, if any required field is missing or typed incorrectly; warning feedbackappears while describing the missing and incorrect parts.5.2.4 CHECKOUT SCENARIOThe proposed library management system is supposed to handle checkout resources forusers. In addition, it is to keep track of already checked out (borrowed) resources bymembers including important information (i.e. member and book details with checkoutand due date). Due to security issues this page is only accessible to authorized users,and restricted to unauthorized members and neither accessible by typing its correct URLdirectly. 41
    • Certain conditions are required to be evaluated in terms of checkout book. Theseconditions are based on the policy of the library and should be customizable.  The original book never can be lent; will be kept as a reference in the library, but members are allowed to use it inside the library.  In addition to book information, each book carries an action link captioned ―checkout‖, if the book is ready for checkout it is active; otherwise not. Whenever a book is given to a member as lend, it must be marked as deposited and the action link ―checkout‖ becomes inactive.As illustration, let‘s consider a book which meets all the checkout conditions, thefollowing steps take place during the checkout process.  Clicking the action link ―checkout‖, will direct the administrator to the checkout page, displaying the selected book information.  Members‘ information is already listed in a drop-down. System is smart enough to filter the checkout list based on member selection from the drop-down; this helps administrator to check member‘s account without extra action and headache.  Current and due date are automatically filled out by the system but editable with accepting a different date. Since there is no good IT infrastructure and neither there is stable power the system may be down during the checkout and check in process; so checkout and check in can be done at a moment later on, that is when system is up administrator can register that.When all the above mentioned criteria takes place correctly and is submitted, thecheckout process is done and the book will be marked as deposited; and the action link―checkout‖ becomes inactive. 42
    • 5.2.5 CHECK IN SCENARIOCheck in process takes place in the checkout page, where all the borrowed books arelisted. Search facility is included in this page in order to look for specific records; searchcan be applied on many different criteria (i.e. book title and signatory, user‘s first nameand father‘s name).After recognizing the member who brings the borrowed book back; check in processwill be completed as follow:Simply click the action link ―check in‖, and the administrator will be asked forconfirmation; when confirmation is canceled nothing will happen. If confirmed,successful feedback will appear on top of the page. And at the meantime the book willbe marked as available, so the action link ―checkout‖ will be activated again.Now that most of the requirements definitions and specifications of the librarymanagement system are clear; and besides to this, it is clear what exactly occurs whenusers interact with the system, it is time to work on the database model.5.3 RELATIONAL DATABASE BENEFITSMaintaining of a simple database, the so-called flat database consisting of a single tablewith no huge data, does not require relational databases. On the other side, mostdatabases worth maintaining are quite a bit more complex and cannot be handled withusing flat-database and book-registration logs as is the case in Herat Universitylibraries. “Consider, for example, the Library of Congress, which has over 16 million books in its collection. For reasons that will become apparent soon, a single table simply will not do for this database (Roman, 1999)”.Herat University libraries use flat-file database and book-registration logs with data thatare related. This is where using a relational database management system becomesessential, since it is not possible to maintain such huge and complex data using either 43
    • flat-file database programs (i.e. Microsoft Word or Excel) or book-registration logs dueto the following reasons:5.3.1 REDUNDANCYA worthy and long-standing goal and ideal in software development is to keep awayfrom duplication and redundancy of data as much as possible. Duplication andredundancy cause increasing the size of the data hugely since there is growth ofdocuments and resources; and this makes the system and the many code variants hard tounderstand, and causes maintenance headaches (Navathe, 1999-2008).Redundancy can be defined as unnecessary information which is repeated several timeson same or different places. Redundancy can be counted as one of the most seriousproblems and issues linked with using flat-file databases; where there is no solution toeliminate or at least to reduce it; that is why relational database becomes handy; sinceby splitting data into multiple relations (tables) much of the redundancy problems willbe reduced.5.3.2 INSERTION ANOMALIESDue to entity integrity in Table 5-3, it is not possible to insert a record neither for theauthor nor for the publisher without any book; since the book (Call Number) can‘t benull and can‘t be left empty; such a problem is called an insertion anomaly.Call_Number Book_Title Author_Info Publisher Publisher_AddressDB-0001 MySQL in 21 Days Tom Logan, Mercury Canada Cristina Silva, Bob LoganDB-0002 SQL-Server Cristina Silva Neptune GermanyWEB-0001 HTML Ana Nava, Mercury Canada Gloria RiveraTable ‎ -3, Simple Library Database 5 44
    • 5.3.3 DELETION ANOMALIESFor the same reason as insertion anomaly in Table 5-3, it is not feasible to delete eitherthe author information or the publisher information with keeping just the bookinformation; such a problem is called a deletion anomaly.5.3.4 UPDATE ANOMALIESDue to a need to change the address of a particular publisher in Table 5-3, it is requiredto update the records of all books published for that publisher (i.e. publisher for thebook with Call Number DB-0001 and WEB-0001). In case the modification is notfulfilled on all the relevant records, the database will be inconsistent, such a problem iscalled update anomaly.5.3.5 MULTIPLE-VALUEIt is clear that there can be more than one author for a book as it is illustrated in Table5-3, so with using flat-file databases there will be three possibilities to implement it;each including drawbacks and weaknesses as follows (Roman, 1999):  Including all authors of the book in a single column of table with separation of comma delimiters as it is presented in Table 5-3. The problem is the database anomalies as stated already.  Provide multiple rows for multiple authors, one separate row for each author of the book as it is demonstrated in Table 5-4. The drawback with using multiple- rows is that all of the data about a book and publisher must be repeated as many times as there are authors for the book, which is an obvious case of redundancy.Call Number Book Title Author Info Publisher Publisher AddressDB-0001 MySQL in 21 Days Tom Logan Mercury CanadaDB-0001 MySQL in 21 Days Cristina Silva Mercury CanadaDB-0001 MySQL in 21 Days Bob Logan Mercury CanadaDB-0002 SQL-Server Cristina Silva Neptune Germany 45
    • WEB-0001 HTML Ana Nava Mercury CanadaWEB-0001 HTML Gloria Rivera Mercury CanadaTable ‎ -4, Multiple-Value Using Multiple Rows 5  Accommodate multiple authors with using multiple columns on a single row; one column for each author of the book as it is shown in Table 5-5. Using multiple columns approach presents the problem of guessing how many author columns we will ever need as it is unanticipated, and creates a lot of wasted space for books with only one author.Call_Number Book_Title Authors Information Publisher Publisher_Add 1 2 3DB-0001 MySQL in Tom Cristina Bob Mercury Canada 21 Days Logan Silva LoganDB-0002 SQL- Cristin Neptune Germany Server a SilvaWEB-0001 HTML Ana Gloria Mercury Canada Nava RiveraTable ‎ -5, Multiple-Value Using Multiple Columns 55.3.6 AVOIDING DATA LOSSUsing relational database instead of flat-file database is to split and break the data intomultiple tables. Thus, one difficulty in designing a relational database is figuring outhow to divide the data into multiple tables so as not to lose any information.During designing of a relational database, sometimes it is required to define additionaltables considering as relationship among other tables in order to keep consistency ofdata and avoid losing of information. For instance, splitting Table 5-3 will result threetables as Table 5-6, Table 5-7, and an additional one, Table 5-8 if we had left out theTable 5-8, there would be no way to determine the authors of each book. In fact, the 46
    • sole purpose of Table 5-8 is to keep consistency and not to lose the book / authorrelationship.Book_ID Call_Number Book_Title1 DB-0001 MySQL in 21 Days2 DB-0002 SQL-Server3 WEB-0001 HTMLTable ‎ -6, Book Table 5Author_ID Author FirstName Author LastName Address1 Tom Logan Logan2 Cristina Silva3 Bob Logan4 Ana Nava5 Gloria RiveraTable ‎ -7, Author Table 5ID Book_ID Author_ID1 1 12 1 23 1 34 2 25 3 46 3 5Table ‎ -8, Book-Author Table 5 47
    • 5.4 LIBRARY SYSTEM DATABASE MODELAll in all, using benefits of relational database with elimination of redundancy anddifferent types of database anomalies, multiple-value problems and avoiding data lose;it is time to split data of book and member information (Table 5-1and Table 5-2)respectively into multiple entities with their related attributes.In the library management system after analyzing input data, the library resourcesrequired entities are listed as (BOOK, BOOK_COPY, AUTHOR, PUBLISHER,CATEGORY, USER, and FACULTY). For the purpose of illustration the USER entitywill be described as follows:User Entity: User entity is the set of all the library users. The user is described by theattributes user_id which is assumed as an artificial auto incremented primary key for thepurpose of relationship definition, Name etc.Figure ‎ -1, User Entity 5 48
    • Library System ERDFigure 5-2 is the complete ERD for the library management system. It presents anabstract, theoretical view of the major entities and relationships needed for managementof libraries resources.Figure ‎ -2, Library System Entity Relationship Diagram 5 49
    • 5.5 SUMMARYTo sum up, to keep away from redundancy problems as much as possible and differentunpleasant database anomalies, a database is required to contain multiple tables, withrelationships defined among tables as necessary. On the other hand, this raises someissues and challenges, such as how to split data into multiple tables in the database,keeping consistency among them in order to avoid data loss, and how to join the databack together from multiple tables to create different views.Scenarios make clear the activity of actors with the system and state what happens whenusers interact with the system; in addition, the database model acts as a bridge betweenthe developers and clients and provides a way of communication between both parties.In this chapter the requirement definitions and specifications of the proposed librarydatabase management system was analyzed and detailed by using scenarios anddatabase model and finally the ERD was achieved. Thus, the application programmerscan start their work by planning the overall structure of the application and codingconcept. In the coming chapter the implementation part will be introduced in moredetails. 50
    • 6 IMPLEMENTATIONBased on the system development life cycle, the prerequisites of library managementsystem were covered and described in details in previous chapters. The next step is theimplementation part which will be described in detail throughout this chapter.6.1 APPLICATION STRUCTURETo start with, any coding and programming concept would be useful to plan and decidethe directory structure of the system.Implementing the concept of dividing the application into different following sections:Model: Including the logic partView: That describes the presentation partController: As an interface between the Model and ViewAs well as the concept of directory structure achieved by reading and practicing thebook ―PHP and MySQL: Create-Modify-Reuse‖ written by (Psinas, 2008).6.1.1 PUBLIC DIRECTORYThe directory name is explanatory; all files in this directory will be publicly accessibleby the web server. Although PHP will be able to reference files from anywhere in yoursetup, the web server should only serve files from the public directory, since keeping allother support directories and files outside of the publicly accessible directory increasessecurity issues.In a word, this directory is the root for the web server. The only files accessible from theInternet and local network are the ones located in this directory. There are many othersubdirectories inside public directory for better organization and structure describe asfollows:CSS Subdirectory – Since the proposed system is required to be as usable as possible,using CSS is a need. It is preferable to keep the CSS separate from HTML code in order 51
    • to make the system extendable in future. Placing CSS code in a separate file allows theweb designer to completely differentiate between content (HTML) and design (CSS).Java Script Subdirectory – Separation of Java Script from HTML is useful since thereis no mix between Java Script and HTML coding. Additionally, it makes the systemmore consistent to be extendable and maintainable. This will conveniently keep theHTML file small, and prevent non-Java Script browsers from mistakenly displaying theJava Script source.Image Subdirectory – It is useful to keep all images which will be used for designpurpose of the application (i.e. HTML and CSS files) in a separate directory for betterorganization structure.Photo Subdirectory – By storing members‘ photo into a separate directory theapplication will be more structured and managed.6.1.2 OTHER DIRECTORIESLib Directory – Files, such as classes (i.e. user, book, author, publisher, category), andcommon files such as database connectivity, common variable, functions which aregoing to be shared by any number of other files will be kept inside this directory.Template Directory – Template is the root for the view and presentation files. Thetemplate files which describe the structure and layout of the application will be keptinside this directory such as header, footer, sidebar, content and other layout sections.Sql Directory – SQL directory will contain the data files of the library databasemanagement system such as database schema.Log Directory – Log directory stores the applicable log files generated directly by thelibrary database management system. It can also contain web server log files, databaselog files, etc for the administration purposes. 52
    • Lang Directory – Lang directory contains files which will be used for theinternationalization and localization of the library system—mostly interface translationfiles (i.e. labels, feedback, error messages, etc).Doc Directory – Doc directory keeps the project documentation files, includingdocuments and user manual as well as database diagrams.6.2 SHARED CODE CONCEPTCode that is shared by multiple files should be set aside in its own file and includedusing include or require PHP commands; so its not duplicated, which makesmaintaining the application easier. For this purpose Object Oriented Programming(OOP) concept becomes handy and useful based on the below definition. “Object-oriented programming evolved in response to the problems of maintaining complex code by breaking it down into discrete units of programming logic. The aims were reusability of code and ease of maintenance through a modular, generic approach to common programming tasks. (Powers, 2008)”Where possible, code that might be useful in future expansion of the application shouldbe collected separately as functions or classes to be reused. Its a good idea to write codewith re-usability and DRY (Do not Repeat Yourself) concept in mind. The remainingchapter will introduce the shared code concept and their benefits in more detail.6.2.1 DATABASE CONNECTIVITYEstablishing a connection to a MySQL database is a common activity which makes itdesirable to place the needed code in its own file named db.php. Db.php holdsconfiguration constants and code to establish the connection to the database, and theescape_data () function was defined as a way to sanctify user input before storing it in adatabase. 53
    • 6.2.2 GENERAL FUNCTIONSCommon functions can also be placed in a separate file named function.php for bettermanaging the code and ease of sustainability in future. For instance, a function thatgenerates random number will be used to generate a CAPTCHA string and validationtoken in order to activate the account in future.6.2.3 WEB SERVER CONFIGURATIONCommon.php file contains shared code to be included in other scripts in the applicationto establish a sane baseline environment at run-time (i.e. web server configuration suchas enabling and disabling display errors, setting what sorts of errors to be displayed,define of default time zone and etc).6.2.4 TEMPLATETemplates make it easier for developers to maintain a consistent blue print andprototype across many pages, they help keep the code well organized, and they movepresentation logic out of code, making both the PHP and HTML files more readable.The best idea is to keep the core of the presentation and layout in a specific file in thetemplates directory.6.2.5 USER CLASSThe majority of the code written for maintaining a user‘s account can be encapsulatedinto one class, making it easy to extend or reuse in future applications. This includes thedatabase interaction logic, which will make storing, retrieving, editing and deleting userinformation much easier.The class user.php has two private properties $uid which maps to the user entity‘suser_id attribute, and the array $fields which maps to the rest of attributes. They areexposed in an intuitive manner by overriding the get () and set () magic methods ofPHP. The static getById () and getByUsername () methods contain code responsible forretrieving the user details from the database by their id or username.The save () method writes the user information to the database and is smart enough toknow when to execute an insert query or an update query based on if the user_id is set. 54
    • There are other various static methods available for the purpose of user statisticalcalculation e.g. retrieving number of users by their faculty, gender.All that‘s necessary to create a new user account is to create a new instance of a userobject, set the record‘s fields, and calls save () method as follow: <?php $u = new User (); $u-> first_name = Abdul Rahman; $u-> last_name = Sherzad; ... $u-> username = Sherzad; $u-> password = sha1 (password); $u-> email = a_20120@yahoo.com; $u-> save (); ?>It‘s the same logic to update user information; first it is required to retrieve the existinguser by calling the static method getByUsername () and passing the username of theuser where modification is needed, make the changes, and again save it to the databasewith calling save () method as follows: <?php $u = User::getByUsername (Sherzad); $u-> original_residence = Herat - Afg; $u-> current residence = Berlin - Germany; ... $u-> username = absherzad; $u-> password = sha1 (secret); $u-> email = sherzad@cs.tu-berlin.de; $u-> save (); ?>The other entities (BOOK, AUTHOR, CATEGORY etc) carry out the same concept andlogic as User.php. 55
    • 6.2.6 THUMBNAIL CLASSMembers‘ photo may be of unequal dimensions, and their file sizes can varysignificantly. This variation creates problems when downloading and displaying a groupof photos because one large photo can occupy the entire screen. Besides, they can slowdownloading to an undesirable pace. One solution to the problem of inconsistently sizedand large photos is to create a thumbnail image class, which creates small images(thumbnails) of equal dimensions. By reducing the quality of a photo, this class will beable to further reduce file size and hence download times (Lavin, 2006).In order to consider future sustainability and maintainability of the system (i.e. it may berequired to store cover image of the book for better identification, or an image gallerymay be required, etc); then it is useful to have a separate class handling the functionalityof thumbnail creation for various types of images (i.e. jpg, gif, png, bmp).The thumbnail class is smart enough to create image thumbnails with user defined widthand height, or just either of them. For better clarification see the following piece ofcode: // create a thumbnail image with width and height given $img = new Thumbnail (); //create instance of the class $img->PathImgOld = "path/oldImage.jpg" $img->PathImgNew = "path/newImage.jpg"; $img->NewWidth = 170; $img->NewHeight = 127; if(!$img->create_thumbnail_images ()) { $errors = Thumbnail could not be created!; } //Thumbnail image will be saved to specified path if all is ok.First an instance of the class Thumbnail is created, then the path for the original imagewill be assigned, and afterwards the address for the thumbnail image with new 56
    • dimensions will be assigned, and finally check if there is any error throws exception;otherwise the thumbnail image will be created.For the purpose of illustration, the original and thumbnail images are displayed on thescreen as it is demonstrated in Table 6-1.oldImage.jpgnewImage.jpgTable ‎ -1, Thumbnail Result with Width and Height Specified 6 57
    • 6.2.7 PAGINATION CLASSWhen there is a large number of images in a directory or large number of members andbooks records, it‘s not desirable to display all of them on one web page because doingso will almost certainly create a long page and in addition will degrade the systemperformance (Lavin, 2006).The paginator.php class will take the task of creating a navigator list using somealgorithms on total number of available data records; as the system is required to beextendable it is essential to determine how it should work. Keeping its design flexibleand make sure that its appearance is easily configurable so that it can blend with thestyle of any particular page.All that‘s necessary to create pagination navigation links is to create a new instance of aPaginator object and assign total number of records and afterwards call thedisplay_pages () method as follows: $num_rows = mysql_num_rows(mysql_query($sql)); $pages = new Paginator; $pages->items_total = $num_rows; echo <div class="paginator">; $pages->paginate(); echo $pages->display_pages (); echo </div>;  The first line of the code gets the total number of records  The second line gives a new Paginator object to use it and initializes the default values behind the scenes.  The third line uses variable containing the total number of records and assigns it to the Paginator items_total property. 58
    •  The fourth line is just a container using a CSS class style  The fifth line tells the Paginator class to get to work and paginate and finally the sixth line displays pagination links see Figure 6-1 number of records per page is set to two. Figure ‎ -1, Pagination Example 1 6 Decision is to provide option of changing the number of items per page or jumping to a specific page. No change is required to be made inside the Paginator class; simply customizable through its additional methods as follows:// fetch total number of records$num_rows = mysql_num_rows (mysql_query ($sql));$pages = new Paginator; //create instance of the class paginator//assign total number records into Paginator property$pages->items_total = $num_rows;echo <div class="paginator">; //div container for the style purpose$pages->paginate (); //create the pagination linksecho $pages->display_pages (); //display the pagination links//jump menuecho $pages->display_jump_menu () . $pages->display_items_per_page ();// displaying current page of the total pageecho "<span class=paginate>";echo "Page $pages->current_page of $pages->num_pages</span>";echo </div>; 59
    • The output for the above piece of code is illustrated in Figure 6-2. Including moreoptions (i.e. the page drop-down provides page selection, and per page drop-downprovides flexibility of customizing number of records on the page etc).Figure ‎ -2, Pagination Example 2 66.2.8 PERSIAN DATESince there is no built-in method for using Persian calendar (Shamsi Date) in PHP, andin the meantime the proposed system is required to be internationalized and localized, itis required to provide a code for date conversion. The pdate.php makes it possible toconvert the Gregorian dates into Persian dates as follows: // Persian calendar format of today date <?php $d = date (Ymd); //assign today date to variable $d $jd = gregoriantojd ( substr ($d, 4 , 2 ), substr ( $d, -2 ), substr ($d, 0, 4 ) ); $pdate = jd_to_persian ($jd); //format numbers as it is Persian suitable like (3 => ۳) $today_date = FormatPersianDate ($pdate); echo $today_date; ?> 60
    • 6.3 CHALLENGESThere are many challenges for implementing the proposed system as fast and user-friendly as possible. The issues and challenges (i.e. immediate data validation, instantlychecking for duplication, adding new required data without delay, etc) are required to beimplemented in a powerful manner. There are as many ways to implement andovercome challenges as there are opinions about the best ways to do this.JQuery Framework is the best module, according to the research and investigation doneby the author, which is able to overcome all the mentioned challenges easily and withless coding. “JQuery is a new kind of JavaScript Library. JQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. JQuery is designed to change the way that you write JavaScript.” (jQuery, 2009)Some of the benefits of jQuery are as follows:  Cross-browser that is well-suited with Internet Explorer 6.0+, Firefox 2+, Opera 9.0+, Safari 3.0+ and last but not least Chrome (jQuery, 2009).  Few lines of jQuery code can perform tasks better than 30 or more lines of traditional JavaScript code, as the concept of jQuery is ―write less and do more‖.  A large community supports this project. That is why there is various numbers of plug-ins available.  It simplifies the Ajax Development. Call the Ajax just with writing 5 or 6 lines of code.6.3.1 FORM LIVE VALIDATIONJQuery validation is a small plug-in for the jQuery framework for making client-sidevalidation quick, easy, concise and powerful. It consists of two main parts. Firstly, itprovides developers with a rich set of core validation methods and rules, which can also 61
    • be used outside the context of forms. Secondly, it offers users and visitors of the projectwith immediate and real-time validation information as they fill out forms, helping themto get it right the first time, making the forms easier, quicker and less intimidating tocomplete.Validation of the data before submitting the form to the server – which is extremely fast,efficient and provides quick replies to the users in the event of any errors— is calledclient-side validation as illustrated in Figure 6-3, which is possible to be disabled on thebrowsers. However, it is advisable to also validate the data on the server-side beforeadding them into the database.Figure ‎ -3, Form Live Validation 66.3.2 SORT DATA INSTANTLYSorting of data is very useful, as it helps users to access the desired data as quickly aspossible without any problem. For instance, if there is hundreds and thousands of bookswhich is unordered it is very cumbersome to find the required book; However if thereexists a sort feature based on ascending or descending order, then user will sort the listof data (i.e. book title, book author, etc) to find the book easily.Sort feature can be provided with PHP but since the project is required to be as efficientas possible, using jQuery search plug-in provides quick sort without delay and withoutpage reloading.6.3.3 ADD DATA INSTANTLYSometimes it is required that new needed data are added into the database and appearimmediately without page refresh for better efficiency. For instance during bookregistration process some new data is required to be available in order to register the 62
    • book information successfully (i.e. author, category). Whenever book registration isrequired a list of authors and categories are available on the form, but in case new onesare required it is not efficient to leave the book registration page and go to author orcategory page to add related data respectively and then come back to book registrationpage. Using Ajax plug-in of jQuery framework will overcome the mentioned issue, andprovide a way for the user to add new required authors, categories, etc instantly.Figure ‎ -4, Add Required Data Instantly 66.3.4 SEARCH DATA WITHOUT DELAYOccasionally, data is required to be filtered as quickly as possible. For example whenlending a book, the data is needed to be filtered by selecting the borrower from the list,in order to know about his / her account conditions. Another example as that it is notpossible to include all book or user information in tabular format due to width limitationof the screen, so would be more usable to display the whole information of the book oruser on mouse over of the link. Using jQuery plug-in provides these facilities withoutmuch coding.See Figure 6-5 which illustrates how using Ajax in jQuery provides the requiredinformation for the users with mouse over. 63
    • Figure ‎ -5, User Details with Mouse Over 66.3.5 INTERNATIONALIZATION AND LOCALIZATION APPROACHTo adapt an application that can be used by users of different countries, cities speakingdifferent languages it is necessary to present the application messages and text in theidioms spoken in those countries and cities.In order to achieve this feature there are many solutions exist using database, gettextand plain text files. For the convenience and simplicity of the system the plain text filesselected; it means to load configuration files that contain the texts and messages foreach of the supported idioms.The challenge is with left-to-right and right-to-left as well as carrying font-styles, datesand times, numbers etc according to the language and culture. Thus, it is required tohave different style sheets for the left-to-right and right-to-left versions.For the language selection there are many ways to achieve this mechanism (i.e. to pass aparameter in the URL and then, according to that parameter decide which language andstyle should be assigned). Problems arise with passing parameters to the URL as it ispossible that some of the pages have their own additional parameters in the URL andsome do not.After investigation it was determined that the solution is to use cookies to overcomethese problems (cookies are a great way to remember settings or preferences or any 64
    • other type of information). In this example, we will set a cookie that determines whatCSS and language file are to be load in the project). Besides, the URL is kept intact. Allin all, the below piece of code will provide the achievement. <script type="text/javascript"> function change(lang) { // Set cookie "lang" var expiresdate=new Date(); expiresdate.setDate(expiresdate.getDate()+360); document.cookie = "lang=" + lang + ";expires=" + expiresdate.toGMTString(); } </script>6.3.6 401 ERROR PAGEThe most important responsibility of the 401.php script is to send an authorization errorto the browser and redirect the user back to the login page (the response code for anHTTP authorization error is 401). Because session_start () is called and $_SESSION[‗access’] is checked, the error is only sent if the user has not been authenticated.6.4 SUMMARYIn this chapter the importance of directory structure plan and the concept of codesharing described in details as well as the way of usage as the illustration in order tohelp ones who would like to work on this open source project in future to improve andexpand by including new features and functionalities. 65
    • 7 CONCLUSIONThe focus of this paper is to define the problems and challenges which currently exist inthe workflow of traditional libraries in general, and in that of Herat University librariesin particular; a solution is illustrated which may be carried out to overcome and reducethese problems by introducing automated and digital services in order to pave the wayfor users to enjoy the benefits of a highly up-to-date system.The current situation of Herat University libraries was described in detail covering theexisting issues, in the paper. One reason why Herat University libraries were chosen isbecause the author had a better opportunity and much facility to conduct the researchthere as being a lecturer in that university.The author came up with the idea that digital library system and automation would bethe solution to fill the gaps and overcome the existing challenges which ought to beaddressed in Herat University libraries, and likewise in other Afghanistan‘s educationaland university libraries. One of the chapters is dedicated to a detailed and step by stepoperational explanation of the digital and automation systems used in libraries. Thisincludes a description of nearly all the benefits and features of digital library systemsand automation which make these systems desirable and internationally accepted.The current implementation of the digital library management system covers the mostcrucial necessities of library workflow detailed as follows:User Management Module: Library staff can easily register new members, as well asupdate the existing members‘ information. Based on interviews, all sorts of datavalidation can be implemented and such a system will immediately update the librarystaff whenever wrong entry happens during the user registration or edition processes.Book Management Module: The implemented current library system provideslibrarians the ability to keep track of books information by providing the registrationand edition modules as well as validating data entry. 66
    • Authentication Module and Security: Most of the modules are secured and restrictedagainst unauthorized users. In order to access those modules it is required to log in thesystem with appropriate access level. When new secure module is required to be addedinto the library system, by using two lines of code it would be possible to keep it secureagainst unauthorized and evil users. The library system is smart enough to avoid SQLinjection and other sort of security vulnerabilities by validating the entry data.Search Module: Now library members can easily find their required and favorite booksby using the simple and advanced search. The search can be done based on multiplecriteria i.e. users can search for a book by its title, language, author, and category.Internationalization (I18N) and Localization (L10N): The library system isinternationalized and currently localized in Dari language and includes text messages,validation messages, dates, and logo. Also, it supports other languages by translation ofthe languages files without code manipulation.Template: The prototype interface blueprint includes the public navigation links,header; the left navigation area which carries out the administrative links, as well as thenews links the content includes the page title and contents and eventually the footerusing external css files for better usability. So, in order to use different layouts andstructures it is enough to manipulate the template files.Configuration and Customization: As mentioned I had better opportunity to thisresearch in Herat University libraries but the system introduced here is applicable andcan be used in other Afghanistan‘s educational libraries. Besides supporting text andvalidation messages and date localization, the system also provides navigation andcontent localization through the administration interface. For instance, home, policy,and services, news content etc can be easily localized through the user interface.Additionally, the common database credentials and some other configurations such astime period duration for lending can be updated by using the configuration files withoutcode manipulation. 67
    • Check in and Checkout Processes: The system is able to keep track of the borrowedresources and inform the librarian about the users with overdue books. In addition, thecheck in and checkout processes can be done within just one or two steps.Sustainability and Expandability: The system is coded in such a way as to accept newfeatures using the existing code as well as not to affect other available modules. Forinstance, whenever a photo gallery is required for the library, some of the availableclasses such as Thumbnail and Paginator etc can be reused.Statistics: The system provides useful summary and statistics of the library resourcesincluding user‘s information as well as book‘s information. For instance, total numberof existing users and more precisely such as total number of users by their gender, byfaculty, city and so on. The same concept will be applied for the book‘s information.Since we are at the beginning phases of implementation of this project and switchingfrom traditional and paper-based library system to a digital one and due to somecircumstances specific to Afghanistan context there are many challenges and obstacleswhich tend not to allow a complete implementation of a digital library system andhinder its being permanently available and remotely accessible (i.e. lack of electricitypower, lack of IT infrastructure and Internet access, lack of IT literacy). So, there areextra features required to be added into the system such as eBooks, other differentmedia types, online book reservation and extension, sharing of libraries resources inorder to provide interlibrary loan, newsletters in order to update users on new events,notifications, warnings for overdue books, account activation.A next major step in the implementation process which ought to be considered is to setup the system in the Herat University libraries on an intranet network. This should befollowed by training of users on the system in order to help them use the modulesefficiently and learn the customization process (i.e. user registration, book registration,check in and checkout processes, news section).The primary installation of the system will be for testing purpose in order to receivefeedback from the end users and apply the improvement step by step based on end usersfeedback and suggestions. Finally the system would be adaptable and usable. 68
    • APPENDIXThe user manual plus the source code is written on a CD will be appended with thepaper.The modeling and implementation chapters of this thesis can be considered as adeveloper manual for those who are eager to improve the system or adding newfeatures. 69
    • BibliographyArms, W. Y. (2000). Digital Libraries. London, United Kingdom: MIT Press.Ballad, J. V. (2008). PHP & MySQL Web Development All-in-One Desk Reference ForDummies. Indianapolis, Indiana: Wiley Publishing, Inc.Glass, E. N. (2005). Beginning PHP5, Apache, and MySQL Web Development.Indianapolis, Indiana: Wiley Publishing, Inc.Information, E. o. (2002). Library Automation. (A. Hry, Ed.) Tehran, Iran: IslamicRepublic of Iran Library.jQuery, J. R. (2009). Home. Retrieved from jQuery: http://www.jquery.com/Lavin, P. (2006). OBJECT-ORIENTED PHP: concepts, techniques, and code. SanFrancisco, United States of America: William Pollock.Mazinani, A. (2000). Library and Librarianship. Tehran, Iran: ‫سازمان مطالعه و تدوین کتب‬‫.علىم انسانی دانشگاهها‬Nabil, A. a. (1996). Digital Libraries: Research and Technology Advances. McLean:Springer.Navathe, R. E. (1999-2008). Fundamentals of Database Systems (Third ed.). Boston,United States of America: Addison Wesley Publishing Company.Powers, D. (2008). PHP Object-Oriented Solutions. Berkeley, United States ofAmerica: Apress.Psinas, T. B. (2008). PHP and MySQL: Create-Modify-Reuse. Indianapolis, Indiana:Wiley Publishing, Inc.Riaz, M. (1992). Library Automation. New Delhi, India: Atlantic Publishers &Distributors (p) Ltd.Roman, S. (1999). Access Database Design & Programming (Second Edition ed.).Sebastopol, United States of America: OReilly. 70
    • Shiflett, C. (2005). Essential PHP Security. Sebastopol, United States of America:OReilly.Team, H. U. (2009, August 10). info-university. Retrieved October 5, 2009, fromhu.edu.af: http://hu.edu.af/en/info-universityUllman, L. (2005). VISUAL QUICKPRO GUIDE PHP and MySQL FOR DYNAMICWEB SITES (Second Edition ed.). Berkeley, 2005, United States of America: PeachpitPress. 71
    • Eidesstattliche VersicherungDie selbständige und eigenhändige Ausfertigung versichert an Eides stattBerlin, denUnterschrift 72