Professional Documents
Culture Documents
Masters Thesis
Supervisors:
Berlin, 18.02.2010
ABSTRACT
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 countrys 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.
ACKNOWLEDGMENT
First of all, I would like to express many thanks to the World Bank, Ministry of Higher Education of Afghanistan, TU-Berlin, and other staff and organizations that were involved in providing me with the opportunity to study for a Masters Degree. In particular, I would like to extend many thanks to Dipl.-Inf. Rene Herlitz, my supervisor at TU-Berlin, for continuous provision of many useful suggestions and constructive 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 possible without their support and inspiration.
ii
TABLE OF CONTENTS
ABSTRACT ....................................................................................................................... i ACKNOWLEDGMENT ................................................................................................... ii 1 Introduction ............................................................................................................... 1 1.1 1.2 1.3 2 Motivation .......................................................................................................... 2 Goal .................................................................................................................... 3 Thesis Structure .................................................................................................. 4
Background ............................................................................................................... 6 2.1 2.2 2.3 2.4 Herat University ................................................................................................. 6 Herat University Main Library ........................................................................... 6 Herat University Abu Abdullah Rudaki Library ................................................ 7 Overview of Current Situation ........................................................................... 8 Book-Registration ....................................................................................... 8 Book Labeling in the Main Library ............................................................ 9 Call Number System in the Main Library ................................................. 10 Book Lending ............................................................................................ 11 Redundancy Problem ................................................................................ 13
Summary .......................................................................................................... 15
Digital System and Automation .............................................................................. 16 3.1 Need for a Digital and Automated Library....................................................... 17 Availability of Information ....................................................................... 17 Manageability of Information Explosion .................................................. 18 iii
3.1.1 3.1.2
Accessibility of Various Media Types ...................................................... 19 Greater Efficiency ..................................................................................... 19 IT Based User Services ............................................................................. 20 Cooperation and Resource Sharing ........................................................... 20 Advent of ICT and WWW ........................................................................ 21
Summary .......................................................................................................... 22
Requirements........................................................................................................... 23 4.1 4.2 Functional Requirements .................................................................................. 24 Non-Functional Requirements ......................................................................... 25 Security ..................................................................................................... 25 Usability .................................................................................................... 28
Hardware Requirements ................................................................................... 29 Software Requirements .................................................................................... 30 Programming Language ............................................................................ 31 Database Management System ................................................................. 31 Web Server ................................................................................................ 32 Browser ..................................................................................................... 33
Summary .......................................................................................................... 34
Database Concept and Model.................................................................................. 35 5.1 Input Data ......................................................................................................... 35 Book Information ...................................................................................... 35 Member Information ................................................................................. 37 iv
5.1.1 5.1.2
5.2
System Model ................................................................................................... 38 Login Scenario .......................................................................................... 39 Add Member Scenario .............................................................................. 39 Add Book Scenario ................................................................................... 40 Checkout Scenario .................................................................................... 41 Check In Scenario ..................................................................................... 43
Relational Database Benefits ............................................................................ 43 Redundancy ............................................................................................... 44 Insertion Anomalies .................................................................................. 44 Deletion Anomalies................................................................................... 45 Update Anomalies ..................................................................................... 45 Multiple-Value .......................................................................................... 45 Avoiding Data Loss .................................................................................. 46
Implementation ....................................................................................................... 51 6.1 Application Structure ....................................................................................... 51 Public Directory ........................................................................................ 51 Other Directories ....................................................................................... 52
Shared Code Concept ....................................................................................... 53 Database Connectivity .............................................................................. 53 General Functions ..................................................................................... 54 v
6.2.1 6.2.2
Web Server Configuration ........................................................................ 54 Template.................................................................................................... 54 User Class ................................................................................................. 54 Thumbnail Class ....................................................................................... 56 Pagination Class ........................................................................................ 58 Persian Date .............................................................................................. 60
Challenges ........................................................................................................ 61 Form Live Validation ................................................................................ 61 Sort Data Instantly..................................................................................... 62 Add Data Instantly .................................................................................... 62 Search Data without Delay........................................................................ 63 Internationalization and Localization Approach ....................................... 64 401 Error Page........................................................................................... 65
Summary .......................................................................................................... 65
Conclusion .............................................................................................................. 66
vi
LIST OF FIGURES
Figure 2-1, User Searching for Book (Picture by Author) ................................................ 8 Figure 2-2, Separate Book for each Category (Picture by Author) ................................... 9 Figure 2-3, Books on Shelf with Labeling System (Picture by Author) ......................... 10 Figure 2-4, Letters Represent Subject of Study on LC System ...................................... 10 Figure 2-5, Book Catalogue Card (Picture by Author) ................................................... 11 Figure 2-6, Library Membership Card (Picture by Author) ............................................ 12 Figure 2-7, Separate Box for each Faculty (Picture by Author) ..................................... 12 Figure 5-1, User Entity.................................................................................................... 48 Figure 5-3, Library System Entity Relationship Diagram .............................................. 49 Figure 6-1, Pagination Example 1................................................................................... 59 Figure 6-2, Pagination Example 2................................................................................... 60 Figure 6-3, Form Live Validation ................................................................................... 62 Figure 6-4, Add Required Data Instantly ........................................................................ 63 Figure 6-5, User Details with Mouse Over ..................................................................... 64
vii
LIST OF TABLES
Table 2-1, Simple Library System using Book Registration .......................................... 14 Table 5-1, Book Information .......................................................................................... 37 Table 5-2, Member Information...................................................................................... 38 Table 5-3, Simple Library Database ............................................................................... 44 Table 5-4, Multiple-Value Using Multiple Rows ........................................................... 46 Table 5-5, Multiple-Value Using Multiple Columns ...................................................... 46 Table 5-6, Book Table..................................................................................................... 47 Table 5-7, Author Table .................................................................................................. 47 Table 5-8, Book-Author Table ........................................................................................ 47 Table 6-1, Thumbnail Result with Width and Height Specified ..................................... 57
viii
1 INTRODUCTION
Afghanistan has experienced three decades of civil war and almost all of its fundamental infrastructures have been affected or destroyed, including its educational system at all levels. The Afghan society feels the necessity for education more than ever, and it needs considerable time and effort to fill the gap, build the educational system concretely and pave the way for new generations to have a system in compliance with international standards. In order to reach the goal it is essential to take the first step, thus, in this paper a plan to kick-start the shift from a paper-based library system to digital has been detailed and the various implementation steps have been outlined, bearing in mind that expanding the access to libraries is pivotal to any effort to improve the educational system in the country. As a direct consequence of war, most Afghans are un-educated in computer sciences and are not familiar with modern technology, or dont have any access to education centers and computers due to financial problems, and because the digital system is a new system that is not used often in the country, people still prefer using paper-based information resources for their studies or research. The switch to digital library system is a major transitional step and certainly takes a sufficient amount of time before it is fully integrated as a regular practice of academic community and the public. Using a paper-based system has many constraints and limitations compared to a digital system as it is associated with wasting or consumption of (more) time, requires more personnel, and the service quality is much lower than that provided through the digital system. Having such libraries equipped with a digital system can facilitate and ease the research 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 exchange views with people who live thousands of kilometers away from them. Today, Information Technology (IT) has changed the world massively (examples include reading our emails and news online using neither paper nor pen, communicating with 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 the world without traveling, and as one of the more recent developments, some minor surgical procedures can be performed without the presence of doctors). All this motivated the author to play his own part in supporting the Herat University Libraries in their effort to improve efficiency and quality of their services and reduce the sort of problems and difficulties which accompany their old system. The aim is to provide a library system with higher speed, accuracy and efficiency. It should be mentioned that such a system would be replicable and could be easily implemented in other universities across 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 be smoother, more rapid, systematic and well-organized, and all sorts of maintenance jobs and information processing can be carried out with higher speed, correctness and efficiency.
1.1 MOTIVATION
In 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 which libraries 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 cant use it anymore.
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 cant 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 to locate, the above mentioned irregularities and problems in its libraries. Having that in mind I decided to do a research on development of a digital system in order to fill the gap in Afghanistans educational developments. This idea increasingly motivated me to work on, and think strategically about, replication and implementation of international system of education in Afghanistan. At the same time, being in Germany helped me obtain some good and significantly useful information about its university libraries, which helped me to implement the digital library system in Herat University.
1.2 GOAL
The main goal behind this thesis is to define some of the key issues related to library systems and develop a system to demonstrate several of these issues for management of library resources and users. It is intended to be used as a creative guide to motivate and educate 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 Herat University Library as an example, discovery of users needs, identify which parts of the library workflow is required to be automated and digitalized and to implement an automated 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 library system can become a standardized system, although gradually and step by step, which will help lecturers and students to find topics based on their studies and to perform educational projects which enable them to improve their capacity, skills, etc.
Chapter 5: Database Concept and Modeling There are a number of different aspects of the application that must be covered, including system model, benefits of using relational database management system, and entity relationship diagram of the whole library system. In this chapter, all features of the library management system, including workflow of the system in order to accomplish a task, will be looked at and introduced. Each specific feature will be broken down into its respective scenario. Here we will look at the library system as a whole and discuss various options that need to be considered. Chapter 6: Implementation In this chapter, implementation of the library system will be defined. This process begins by correctly setting up the environment and general application structure. There are a number of various types of files in our web application. By defining the application structure they will be kept as organized as possible. For example, one directory is required for the web server, which it uses as the base directory and from which it serves files. Another directory is supposed to hold custom and third-party PHP libraries, and last but not least is the one to hold web site templates. Besides all this, the most important features and challenges will be addressed and detailed. Chapter 7: Outlook and Conclusion This chapter will detail the challenges and issues which are automated and resolved by the implementation of the digital system as well as the sustainability and maintainability of the system itself. Next, the features and modules which are not yet covered by the current implementation of the system will be described and detailed.
2 BACKGROUND
2.1 HERAT UNIVERSITY
The University of Herat, established in 1988 with only a literature faculty, is one of the oldest universities in the country and is particularly rich in tradition. It now consists of 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 interviews with Majid Niya, head of Herat University libraries, other library staff and members as well as through the surveys done by the author in both libraries.
One of the major problems in the Herat University library is shortage of space and lack of IT infrastructure. It is hoped that the Ministry of Higher Education and other relevant government organizations and offices take the necessary measures in this regard. Currently, courses are offered based on credit system and students and lecturers are on campus full time. Therefore, building a library in the new Herat University campus stands out as a necessity. In spite of all the problems during the educational year of 1387 (2008), Herat University library distributed 2010 books, was visited on average by 40 people every day and received 396 members.
2.4.1 BOOK-REGISTRATION
Book-registration is one of the old methods for bookkeeping which is currently practiced in both libraries of Herat University. In this method, registration of book identifications and information is done manually by library staff. In this system, there is a separate book-registration for each subject (i.e. computer related books such as those on 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 bookregistrations and finding a book can take hours. Besides, after the book is found on the log, a librarian is required to look for its location (see Figure 2-1).
Today, it is the age of information and technology, and it is not efficient to keep book information on book-registration logs containing lists of books based on the subject (see Figure 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 on related Engineering and Computer subjects).
Thus, with the methods currently in use in Herat University libraries, it is impossible to edit book information and hard to track books which have been checked out. In addition, 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 the system is very tedious for both users and librarians.
10
Since LC arranges materials by subject, the first letter(s) represents the general subject area, and the number represents a specific subject, the third line represents the authors name and the last line is the year it was published. The Call Number can be considered like an address, exactly telling where a book or other media is located on the shelf in the library. As a standard system, it is not dependent only on a certain librarian but, instead, is understandable for everybody irrespective of where on the globe they are. Recently, Librarians were trained on putting the LC system in place, so now they generate call numbers using some algorithms and regulations and stick them on the spine of the books.
11
Users who do not have library membership card are not able to borrow any book, and users are required to be registered as a library member in order to obtain the membership card.
When a user requests to check out a specific book, the librarian will fill out his / her required information on the catalogue card with consideration of the due date for returning of the book, and will stick membership card with catalogue card together and keep them in a box as it is shown in Figure 2-7 (for better efficiency there is a separate box for each faculty).
12
When the user brings the borrowed book back, he / she will be asked for the faculty name. Then the librarian looks after the members card inside the related facultys box. When it is all ok (i.e. it is not past the due date for returning the book or book is not damaged) user will receive his / her membership card back and the catalogue card will be 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, so it is difficult to track borrowed books and users, and last but not least when the users bring back the borrowed books it is time-consuming to look inside the boxes.
13
McFarland and David info Krentz, Jayne Ann info Krentz, Jayne Ann info Krentz, Jayne Ann info Krentz, Jayne Ann info Powell, Thomas info
sss
08
ttt
02
After Dark
Jove
Jove Add
ttt
00
Trust Me
Location
ppp
04
Wildest Hearts
Location
ppp
04
AJAX
Powell, Thomas
New York US
xxx
08
AJAX Bible
Holzner, Steven
uuu
08
As Table 2-1 illustrates there are many books which have the same author information repeated in different pages of the registration-book log. In addition to this, publishers information appears more than once. Thus searching for a specific and desired book is very 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 process is a reason for some people to prefer not to use the books from Herat University libraries any longer.
14
2.5 SUMMARY
In the current era, with the advent of new branches of science and expanding existing branches and the growing number of students, lecturers and researchers, traditional libraries with manual and paper-based workflow activities cannot maintain and manage the huge number of existing books and other resources, and also cannot respond to the applicants requests efficiently. One of the usages and benefits of Information and Communication Technology (ICT) is introducing of digital and automated library systems, which can play an important role in development and be a convenient means for sharing of resources and information. Additionally, most manual activities will be reduced and the workflow in the library may be carried out faster, and in a more organized and efficient way. All types of housekeeping jobs and information work can be done with higher speed, accuracy and greater efficiency. The next chapter will introduce the digital and automated library systems including their benefits in more details.
15
16
In traditional libraries danger of loss of documents and resources due to negligence or mistake 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 a secure way. Lack of Physical Boundary: Visitors who use the digital library do not need to physically visit the library as long as Internet connection is available, people around the world 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 can access information and the librarys resources any time, day or night; unless there is no Internet connection. This is in contrast with traditional libraries which are only open and accessible 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 difference how many users are using it; while traditional libraries are limited to the number copies which exist. Structured Access Method: Digital libraries provide more organized access to content in much richer ways. This means that it is easily possible to move from a list of books to a 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 use resources through interface.
The fact that information explosion is growing at a tremendously fast pace is the main reason for people to rely more and more on using library automation. Although library automation seems to be the only solution to this, there remains a main challenge as how to organize such libraries systematically and how to provide services with documents which are available in different formats, thus library automation is the only solution.
19
20
Through automation process cooperation and sharing of resources among the libraries and other organizations is possible without consideration of geographically dispersed areas within the country and the world. The remarkable enhancements and benefits of resource sharing comprises of: (a) Access to more documents and information sources due to coordination and cooperation of many libraries and institutions in a system. (b) Being inexpensive, because the total cost is shared by a number of libraries in the system. It can happen that due to lack of budget a particular library or institution cant afford all the required documents and resources, and (c) helps avoid duplication of resources.
21
3.2 SUMMARY
In physical or traditional libraries, access to books is only possible as much as the number of existing copies allow, and next visitors cannot use them until they are brought back; in contrast access to resources of a digital library are available for unlimited number of users. Using of traditional libraries is restricted to certain days of week and certain hours of day, but in digital libraries there is no time limitation and at any time the system can be used. Physical access to the library for people in remote areas could not be accomplished and this makes it difficult for anybody who lives away from physical libraries to use them for educational, research and study purposes but in digital libraries distance has no meaning, 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 or mistake exists and sometimes it may even be impossible to compensate such losses, but this concern does not exist in digital libraries and the documents can be kept in a secure way. The aforementioned benefits also apply to the digital index and not only to digital library. For instance in traditional libraries the book-registration log can be used by one user 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 of computerized systems, it is decided to implement such a system to overcome some of the 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 proposed library management system for the Herat University libraries will be covered in the next chapter.
22
4 REQUIREMENTS
In System Development Life Cycle (SDLC) of software engineering, the word requirement can be defined as an introduction of what a system or a product does, if it is a must, referred to as a functional requirement. This type of requirement specifies something that the delivered system must be capable to do. Another type of requirement specifies something about the system itself, and how well it performs its functions. Such requirements are often called non-functional requirements. Examples of such requirements include accessibility, usability, reliability, maintainability and in a word ease of use. To sum up, a requirement is defined as a condition and criteria the system must meet for the customer to find the system satisfactory. Requirements serve as an agreement between the system developers and the customers for whom the system is being developed. The system developers agree to provide the capabilities and functionalities specified. The customers or clients agree to find the system satisfactory if it provides the mentioned capabilities. As a result of the investigations and surveys performed by the author, and the interviews done with library and academic staffs, the following components are found as the most essential ones for the system to provide. It shall overcome problems related to manual and 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 the members. Book Management: The library management system shall allow authorized users to review, add, update and delete books information. User Management: The library management system shall permit authorized users to review, add, update and delete users information. Search: The library management system shall allow users including either library or academic staffs to review, and search resources.
23
Check in and Checkout: The library management system shall allow authoritative users to review and search checked out books in order to extend the due date or inform users to bring back the book. Report Generation: The library management system shall automate most calculation in order to provide useful statistical data. News and Announcements: The library management system shall let users, either library or academic staffs, to review and search for recent news and announcements with regards to the library.
simultaneously (i.e. book title, language, subject, author information etc with regards to books and the same concept can be applied for the users information). Check in and Checkout The library management system shall allow authorized users (i.e. library staff with right access level) to do check in and checkout processes; besides, it can review list of checked out resources in order to either inform users to bring them back by email or extend the due date. The proposed library management system is supposed to overcome difficult processes of resource check in and checkout (distribute books to the users and update the books returned by the users), and instead provide ease of use on mentioned processes; in addition, the library management system shall calculate and display the list of users with overdue borrowed books.
4.2.1 SECURITY
For the purpose of security issues and resolving of problems such as abuse of the available system information and sabotage and manipulation of resources and data by unauthorized 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 as follows:
4.2.1.1 ACCESS LEVEL SCHEME
Access to various system components including documents or other management parts of the system is based on role. In other words, each user in the system will have access to different parts and components of the system based on the permissions and privileges defined. 25
There are different categories of users namely administrator, library staff, lecturers and students. Depending upon the category of user the access rights and permissions are decided. This means if the user is an administrator then he / she can be able to modify the data, delete, append, etc. All users other than library staff such as students and lecturers only have the rights to retrieve the permitted information. 4.2.1.2 ENCRYPTION OF STORED PASSWORDS Most 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 the times use the same password. Thus, passwords of system users in the database are stored encrypted with using Secure Hash Algorithm (SHA), even if unauthorized users achieve access to the database, the passwords are unusable since they are encrypted.
4.2.1.3 PASSWORD RECOVERY
Password recovery is usually a useful and significant feature and component of the system. It can be counted as an automated feature of the system which decides and operates by itself, and there is no need to ask library staff for lost / forgotten password.
4.2.1.4 SECURITY IMAGE / CAPTCHA
CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans Apart) keep spam programs out of systems. Right now the most popular social networking sites (i.e. Facebook, MySpace, etc) and other application systems use CAPTCHAs in their registration form since screen readers are not able to read the text in CAPTCHAs. Therefore by using CAPTCHA also known as security image, system is able to differentiate between human and computer or screen readers.
4.2.1.5 DATA SANITIZATION AND V ALIDATION
Validation of data is a very essential and vital part of working with forms. Not only can invalid submitted data lead to security problems (i.e. SQL injection, XSS, session fixation, 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, it's 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 who design databases, developers who develop applications, programmers and clients similarly.
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 ACKUP
In an age when the use of computers increases day by day, data backup and storage is more significant than ever. However, today's data backup and storage solutions have evolved into much more characteristic services that let one share and access your data easier and from pretty much anywhere. There is no warranty of avoiding data loss due to issues such as system crush, corruption, virus, or power failure. In such situations backup would be the only solution.
27
4.2.2 USABILITY
If 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 communication path between users and the created system. If system usability is difficult, if it causes numerous errors, or if the system does not lead 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 of system, because the users only work with the interface and that is why the interface is known for them as the system.
4.2.2.1 WEB B ASED
Since proposed library management system is dynamic and on the other hand library staffs are not technical / programmers, it is useful and more user friendly to consider all components and parts of the system completely web based and dynamic. For example home page, library rules and policies, library services, contact us, and contents of other pages can be updated and modified through the interface easily without code accessing and manipulation by the application programmer. Thus, all contents of the components can be easily customized and modified via the interface by the library staff without specific technical knowledge whenever it is required.
4.2.2.2 SMART DATA VALIDATION
Since the system is supposed to handle users and books registration into the database for the purpose of maintenance and tracking, immediate evaluation and validation of user input during the registration process would be helpful and provide ease for the library staff. Validation of user input after registration is complete and checking on the server side and comparing of data against the database based on some criteria like username and email duplication would be tedious as the library staff is required to correct the errors and reenter everything from the scratch.
28
4.2.2.3
Based on the survey and interviews carried out by the author, accessing the required information and favorite resources are one of the most essential modules mostly used by the library staff during book management (edition of information, deletion of unneeded books, check in and checkout transactions), and members while looking for their favorite books. Thus, including smart sort feature handles sorting of data based on multi-column and parses text, integers, currency, floats, and dates data types without page refreshes and will apply applicants requests more efficiently.
4.2.2.4 PAGINATION
Pagination is basically the concept and process of taking a set of huge records of data and spreading them out over many pages to make them much easier and more flexible to be viewed by users. The concept behind pagination is, if there is hundreds and thousands of records of information displaying only on a single page; not only it would be a headache for users to try and read through the long page, but it will also be a cause for reducing system performance as it takes much time to display them.
29
Server requirements Operating System: Windows XP / Vista2 Processor: Pentium 2.x GHz or higher RAM: 1 GB or more Hard Drive: 80 GB or more Mouse, Keyboard, LAN Card, Monitor, Printer and some other devices Client requirements Operating System: Windows XP / Vista Processor: Pentium III or 2.0 GHz or higher RAM: 516 Mb or higher Hard Drive: 20 GB or higher Mouse, Keyboard, LAN Card and Monitor
Selection Windows Operating System is due to users familiarity with it, on the side the proposed system should be cross plat-form
30
http://www.php.net/downloads.php
31
In order to manage resources such as users and books details and so on a (DBMS) is required. As an analogy database can be considered as the library, while DBMS can be counted 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 authors investigations, MySQL 5.1.36 was chosen as the DBMS, since it 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. This feature has been successfully implemented at levels of 60,000 tables and 5,000,000,000 rows (version 5.x, currently in development, will allow 64 indexes), and is relational database management system where data can be split into many separate tables in order to reduce redundancy and database anomalies, and last but not least is that it is compatible with PHP (Glass, 2005).
http://dev.mysql.com/downloads/
32
server according to surveys and investigations at news.netcraft.com 5and securityspace.com6. This wouldnt be true if it didnt work well. Also, this means that Apache carries on correctness, reliability, scalability, stability, speed and last but not least there is a large group of users who can support and provide help (Ballad, 2008).
4.4.4 BROWSER
A 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 web page runs through it. Installing web browsers is free but the latest version is preferable and there are plenty of web browsers such as Firefox 3.5.5, Internet Explorer 7.0, Safari, Opera, and Google Chrome 3.0.195.33 etc. Java Script is required to be enabled on the browser for the proposed system in order to provide smart and useful, mostly non-functional, requirements (i.e. Smart data validation, quick sorting of data, etc).
5 6
http://news.netcraft.com/archives/web_server_survey.html www.securityspace.com/s_survey/data/
33
4.5 SUMMARY
Based on the authors investigations and surveys in Herat University libraries, Herat Public Library, some online library management systems, and interviews with library staff, the proposed system requirements and specifications have been discovered and categorized as functional and non-functional. In order to fulfill the listed requirements and specifications, it is essential to analyze and divide them into multiple tables in order to reduce and overcome repetition of unneeded data. Additionally, elimination of database anomalies (insertion, deletion, and update anomalies) is important. In order to create communications and negotiation space between the system developers (database designers and application programmers) and customers (library staff), it is necessary 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 more details.
34
35
Attribute Signatory
Description
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 easily
Title Language
Title of the book; useful for the search purpose 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 languages
Edition Category
Edition of the book (i.e. 1st, 2nd, 3rd, 4th, . 8th) 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 category
Publisher Name Published Location Published Year Authors First Name Authors Last Name Authors Birth Year Authors Death Year Status
Name of publisher, valuable for the search purpose City where the book was published, as address of the book Only year Book Authors First Name; useful for the search purpose Book Authors Last Name; helpful for the search purpose Only Year Only Year 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 library
No of Copies Description
Table -1, Book Information 5
Number of copies which are available for the book Other book information such as ISBN, sub-title, etc
Faculty
Useful for statistics purposes to know number of users according to each faculty, useful for data filtering
Semester
Useful for statistics purposes to know number of users according to each semester, useful for the search module to filter based on semester
Useful in future, in order to notify users about new books, account activation, and warning users to bring the borrowed books back, etc
Contact No
37
ID No Registration No Page No Original Residence Current Residence Username Password User Category
Users IDENTIFICATION NO Registration Number of IDENTIFICATION NO Page Number of IDENTIFICATION NO Original address of user (city) Current address of user (city) Unique, this is the user account to login Password in order to login into the system 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 active
Signature Photo
May the user want to have a word, or a signature Stores a random key as user photo name, why random, because of security issue
38
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 and confirm password elements must be matched). When members information is typed correctly successful feedback appears, stating that member added into the database successfully. Otherwise, if there is something wrong with data entry, warning feedback appears displaying the missing and incorrect typed information. Besides client side data validation; it is essential to check and validate data on the server side too; since Java Script can be disabled on browsers.
40
During book registration process in addition to data validation there are some issues and challenges, 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 challenge is to make the system smart enough to be able to add as many new authors as required in place which is not available in the list. Category for the Book: More than one category may be applied for a book, for example a book with the title of PHP and MySQL in 21 Days is related to database and programming categories, so the system should be smart enough to add as many new categories as required in place which is not listed. Publisher: System must be able to handle adding of new publishers which do not exist in the database already. Book Copies: Books are donated or purchased in the library, sometimes carrying more than one copies. The problem is that the number of copies are not clear so there maybe one, two ten, fifteen, more or less. System must be smart to add as many numbers of copies as required without refreshing the page, and without removing the already typed information. When book information is typed correctly, successful feedback appears stating that book information is saved in the database successfully. Otherwise, if any required field is missing or typed incorrectly; warning feedback appears while describing the missing and incorrect parts.
41
Certain conditions are required to be evaluated in terms of checkout book. These conditions 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, lets consider a book which meets all the checkout conditions, the following 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 members 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, the checkout process is done and the book will be marked as deposited; and the action link checkout becomes inactive.
42
43
flat-file database programs (i.e. Microsoft Word or Excel) or book-registration logs due to the following reasons:
5.3.1 REDUNDANCY
A worthy and long-standing goal and ideal in software development is to keep away from duplication and redundancy of data as much as possible. Duplication and redundancy cause increasing the size of the data hugely since there is growth of documents and resources; and this makes the system and the many code variants hard to understand, and causes maintenance headaches (Navathe, 1999-2008). Redundancy can be defined as unnecessary information which is repeated several times on same or different places. Redundancy can be counted as one of the most serious problems and issues linked with using flat-file databases; where there is no solution to eliminate or at least to reduce it; that is why relational database becomes handy; since by splitting data into multiple relations (tables) much of the redundancy problems will be reduced.
DB-0002 WEB-0001
SQL-Server HTML
Germany Canada
44
5.3.5 MULTIPLE-VALUE
It is clear that there can be more than one author for a book as it is illustrated in Table 5-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 multiplerows 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 DB-0001 DB-0001 DB-0001 DB-0002 Book Title MySQL in 21 Days MySQL in 21 Days MySQL in 21 Days SQL-Server Author Info Tom Logan Cristina Silva Bob Logan Cristina Silva Publisher Mercury Mercury Mercury Neptune Publisher Address Canada Canada Canada Germany
45
WEB-0001 WEB-0001
HTML HTML
Mercury Mercury
Canada Canada
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 1 DB-0001 MySQL in 21 Days DB-0002 SQLServer WEB-0001 HTML Tom Logan Cristin a Silva Ana Nava
Table -5, Multiple-Value Using Multiple Columns 5
Publisher Publisher_Add
3 Mercury Canada
Neptune
Germany
Gloria Rivera
Mercury
Canada
46
sole purpose of Table 5-8 is to keep consistency and not to lose the book / author relationship. Book_ID 1 2 3
Table -6, Book Table 5
Author_ID 1 2 3 4 5
Table -7, Author Table 5
Address
ID 1 2 3 4 5 6
Table -8, Book-Author Table 5
Book_ID 1 1 1 2 3 3
Author_ID 1 2 3 2 4 5
47
48
Library System ERD Figure 5-2 is the complete ERD for the library management system. It presents an abstract, theoretical view of the major entities and relationships needed for management of libraries resources.
49
5.5 SUMMARY
To sum up, to keep away from redundancy problems as much as possible and different unpleasant database anomalies, a database is required to contain multiple tables, with relationships defined among tables as necessary. On the other hand, this raises some issues 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 data back together from multiple tables to create different views. Scenarios make clear the activity of actors with the system and state what happens when users interact with the system; in addition, the database model acts as a bridge between the developers and clients and provides a way of communication between both parties. In this chapter the requirement definitions and specifications of the proposed library database management system was analyzed and detailed by using scenarios and database model and finally the ERD was achieved. Thus, the application programmers can start their work by planning the overall structure of the application and coding concept. In the coming chapter the implementation part will be introduced in more details.
50
6 IMPLEMENTATION
Based on the system development life cycle, the prerequisites of library management system were covered and described in details in previous chapters. The next step is the implementation part which will be described in detail throughout this chapter.
PUBLIC DIRECTORY
The directory name is explanatory; all files in this directory will be publicly accessible by the web server. Although PHP will be able to reference files from anywhere in your setup, the web server should only serve files from the public directory, since keeping all other support directories and files outside of the publicly accessible directory increases security issues. In a word, this directory is the root for the web server. The only files accessible from the Internet and local network are the ones located in this directory. There are many other subdirectories inside public directory for better organization and structure describe as follows: 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 the web designer to completely differentiate between content (HTML) and design (CSS). Java Script Subdirectory Separation of Java Script from HTML is useful since there is no mix between Java Script and HTML coding. Additionally, it makes the system more consistent to be extendable and maintainable. This will conveniently keep the HTML file small, and prevent non-Java Script browsers from mistakenly displaying the Java Script source. Image Subdirectory It is useful to keep all images which will be used for design purpose of the application (i.e. HTML and CSS files) in a separate directory for better organization structure. Photo Subdirectory By storing members photo into a separate directory the application will be more structured and managed.
52
Lang Directory Lang directory contains files which will be used for the internationalization and localization of the library systemmostly interface translation files (i.e. labels, feedback, error messages, etc). Doc Directory Doc directory keeps the project documentation files, including documents and user manual as well as database diagrams.
53
6.2.4 TEMPLATE
Templates make it easier for developers to maintain a consistent blue print and prototype across many pages, they help keep the code well organized, and they move presentation 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 the templates directory.
54
There are other various static methods available for the purpose of user statistical calculation e.g. retrieving number of users by their faculty, gender. All thats necessary to create a new user account is to create a new instance of a user object, set the records fields, and calls save () method as follow:
<?php $u = new User (); $u-> $u-> ... $u-> $u-> $u-> ?> first_name = 'Abdul Rahman'; last_name = 'Sherzad'; username = 'Sherzad'; password = sha1 ('password'); email = 'a_20120@yahoo.com';
Its the same logic to update user information; first it is required to retrieve the existing user by calling the static method getByUsername () and passing the username of the user where modification is needed, make the changes, and again save it to the database with calling save () method as follows:
<?php $u = User::getByUsername ('Sherzad'); $u-> $u-> ... $u-> $u-> $u-> original_residence = 'Herat - Afg'; current residence = 'Berlin - Germany'; username = 'absherzad'; password = sha1 ('secret'); email = 'sherzad@cs.tu-berlin.de;
The other entities (BOOK, AUTHOR, CATEGORY etc) carry out the same concept and logic as User.php. 55
// 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 image will 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 the screen as it is demonstrated in Table 6-1.
oldImage.jpg
newImage.jpg
Table -1, Thumbnail Result with Width and Height Specified 6
57
$num_rows $pages =
mysql_num_rows(mysql_query($sql));
$pages->items_total
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.
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 links echo $pages->display_pages (); //jump menu echo $pages->display_jump_menu () . $pages->display_items_per_page (); // displaying current page of the total page echo "<span class='paginate'>"; echo "Page $pages->current_page of $pages->num_pages</span>"; echo '</div>'; //display the pagination links
59
The output for the above piece of code is illustrated in Figure 6-2. Including more options (i.e. the page drop-down provides page selection, and per page drop-down provides flexibility of customizing number of records on the page etc).
// 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 CHALLENGES
There are many challenges for implementing the proposed system as fast and userfriendly as possible. The issues and challenges (i.e. immediate data validation, instantly checking for duplication, adding new required data without delay, etc) are required to be implemented in a powerful manner. There are as many ways to implement and overcome challenges as there are opinions about the best ways to do this. JQuery Framework is the best module, according to the research and investigation done by the author, which is able to overcome all the mentioned challenges easily and with less 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.
be used outside the context of forms. Secondly, it offers users and visitors of the project with immediate and real-time validation information as they fill out forms, helping them to get it right the first time, making the forms easier, quicker and less intimidating to complete. 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 called client-side validation as illustrated in Figure 6-3, which is possible to be disabled on the browsers. However, it is advisable to also validate the data on the server-side before adding them into the database.
book information successfully (i.e. author, category). Whenever book registration is required a list of authors and categories are available on the form, but in case new ones are required it is not efficient to leave the book registration page and go to author or category page to add related data respectively and then come back to book registration page. Using Ajax plug-in of jQuery framework will overcome the mentioned issue, and provide a way for the user to add new required authors, categories, etc instantly.
63
other type of information). In this example, we will set a cookie that determines what CSS and language file are to be load in the project). Besides, the URL is kept intact. All in 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.4 SUMMARY
In this chapter the importance of directory structure plan and the concept of code sharing described in details as well as the way of usage as the illustration in order to help ones who would like to work on this open source project in future to improve and expand by including new features and functionalities.
65
7 CONCLUSION
The focus of this paper is to define the problems and challenges which currently exist in the workflow of traditional libraries in general, and in that of Herat University libraries in particular; a solution is illustrated which may be carried out to overcome and reduce these problems by introducing automated and digital services in order to pave the way for users to enjoy the benefits of a highly up-to-date system. The current situation of Herat University libraries was described in detail covering the existing issues, in the paper. One reason why Herat University libraries were chosen is because the author had a better opportunity and much facility to conduct the research there as being a lecturer in that university. The author came up with the idea that digital library system and automation would be the solution to fill the gaps and overcome the existing challenges which ought to be addressed in Herat University libraries, and likewise in other Afghanistans educational and university libraries. One of the chapters is dedicated to a detailed and step by step operational explanation of the digital and automation systems used in libraries. This includes a description of nearly all the benefits and features of digital library systems and automation which make these systems desirable and internationally accepted. The current implementation of the digital library management system covers the most crucial necessities of library workflow detailed as follows: User Management Module: Library staff can easily register new members, as well as update the existing members information. Based on interviews, all sorts of data validation can be implemented and such a system will immediately update the library staff whenever wrong entry happens during the user registration or edition processes. Book Management Module: The implemented current library system provides librarians the ability to keep track of books information by providing the registration and edition modules as well as validating data entry.
66
Authentication Module and Security: Most of the modules are secured and restricted against unauthorized users. In order to access those modules it is required to log in the system with appropriate access level. When new secure module is required to be added into the library system, by using two lines of code it would be possible to keep it secure against unauthorized and evil users. The library system is smart enough to avoid SQL injection and other sort of security vulnerabilities by validating the entry data. Search Module: Now library members can easily find their required and favorite books by using the simple and advanced search. The search can be done based on multiple criteria i.e. users can search for a book by its title, language, author, and category. Internationalization (I18N) and Localization (L10N): The library system is internationalized and currently localized in Dari language and includes text messages, validation messages, dates, and logo. Also, it supports other languages by translation of the 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 the news links the content includes the page title and contents and eventually the footer using external css files for better usability. So, in order to use different layouts and structures it is enough to manipulate the template files. Configuration and Customization: As mentioned I had better opportunity to this research in Herat University libraries but the system introduced here is applicable and can be used in other Afghanistans educational libraries. Besides supporting text and validation messages and date localization, the system also provides navigation and content 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 as time period duration for lending can be updated by using the configuration files without code manipulation.
67
Check in and Checkout Processes: The system is able to keep track of the borrowed resources and inform the librarian about the users with overdue books. In addition, the check 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 new features using the existing code as well as not to affect other available modules. For instance, whenever a photo gallery is required for the library, some of the available classes such as Thumbnail and Paginator etc can be reused. Statistics: The system provides useful summary and statistics of the library resources including users information as well as books information. For instance, total number of existing users and more precisely such as total number of users by their gender, by faculty, city and so on. The same concept will be applied for the books information. Since we are at the beginning phases of implementation of this project and switching from traditional and paper-based library system to a digital one and due to some circumstances specific to Afghanistan context there are many challenges and obstacles which tend not to allow a complete implementation of a digital library system and hinder its being permanently available and remotely accessible (i.e. lack of electricity power, lack of IT infrastructure and Internet access, lack of IT literacy). So, there are extra features required to be added into the system such as eBooks, other different media types, online book reservation and extension, sharing of libraries resources in order 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 set up the system in the Herat University libraries on an intranet network. This should be followed by training of users on the system in order to help them use the modules efficiently 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 receive feedback from the end users and apply the improvement step by step based on end users feedback and suggestions. Finally the system would be adaptable and usable. 68
APPENDIX
The user manual plus the source code is written on a CD will be appended with the paper. The modeling and implementation chapters of this thesis can be considered as a developer manual for those who are eager to improve the system or adding new features.
69
Bibliography
Arms, W. Y. (2000). Digital Libraries. London, United Kingdom: MIT Press. Ballad, J. V. (2008). PHP & MySQL Web Development All-in-One Desk Reference For Dummies. 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: Islamic Republic 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. San Francisco, 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 of America: 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: O'Reilly.
70
Shiflett, C. (2005). Essential PHP Security. Sebastopol, United States of America: O'Reilly. Team, H. U. (2009, August 10). info-university. Retrieved October 5, 2009, from hu.edu.af: http://hu.edu.af/en/info-university Ullman, L. (2005). VISUAL QUICKPRO GUIDE PHP and MySQL FOR DYNAMIC WEB SITES (Second Edition ed.). Berkeley, 2005, United States of America: Peachpit Press.
71
Eidesstattliche Versicherung
Die selbstndige und eigenhndige Ausfertigung versichert an Eides statt Berlin, den
Unterschrift
72