AbstractAt present, the level of library management way at the University of Science is still a manual operation.
This traditional manual operation is time-consuming and an inconvenience. This paper proposes a library management system is designed and implemented based on Spring MVC and Hibernate. In this system, the MVC architecture is employed, which is a multi-tier system that includes a presentation layer, business layer, data access layer and database layer. This architecture separates out the application logic promoting modularity and ease of collaboration and reuse. It also makes applications more flexible and welcoming to iterations. Keywords: Library Management System, Spring MVC, JSP, MySQL, Hibernate.CONTENTS TOC o "1-3" h z u HYPERLINK l "_Toc450789040" Abstract PAGEREF _Toc450789040 h I HYPERLINK l "_Toc450789041" Chapter 1 Introduction PAGEREF _Toc450789041 h 1 HYPERLINK l "_Toc450789042" 1.1 Background PAGEREF _Toc450789042 h 1 HYPERLINK l "_Toc450789043" 1.
2 Main Research PAGEREF _Toc450789043 h 1 HYPERLINK l "_Toc450789044" Chapter 2 Xxx System Analysis PAGEREF _Toc450789044 h 2 HYPERLINK l "_Toc450789045" 2.1 Xxx System Overview PAGEREF _Toc450789045 h 2 HYPERLINK l "_Toc450789046" 2.1.1 Definition PAGEREF _Toc450789046 h 2 HYPERLINK l "_Toc450789047" 2.1.
2 Tasks and Targets PAGEREF _Toc450789047 h 2 HYPERLINK l "_Toc450789048" 2.2 System Classification PAGEREF _Toc450789048 h 2 HYPERLINK l "_Toc450789049" 2.2.1 Xxx PAGEREF _Toc450789049 h 2 HYPERLINK l "_Toc450789050" 2.2.2 Xxx PAGEREF _Toc450789050 h 2 HYPERLINK l "_Toc450789051" 2.
2.3 Xxx PAGEREF _Toc450789051 h 2 HYPERLINK l "_Toc450789052" 2.3 System Examples PAGEREF _Toc450789052 h 3 HYPERLINK l "_Toc450789053" Chapter 3 Xxx System Design PAGEREF _Toc450789053 h 4 HYPERLINK l "_Toc450789054" 3.1 Requirements Analysis PAGEREF _Toc450789054 h 4 HYPERLINK l "_Toc450789055" 3.
2 System Architecture PAGEREF _Toc450789055 h 4 HYPERLINK l "_Toc450789056" 3.2.1 System Modules PAGEREF _Toc450789056 h 4 HYPERLINK l "_Toc450789057" 3.2.2 Relations among Modules PAGEREF _Toc450789057 h 4 HYPERLINK l "_Toc450789058" 3.
3 System Functions PAGEREF _Toc450789058 h 4 HYPERLINK l "_Toc450789059" 3.4 Database Design PAGEREF _Toc450789059 h 4 HYPERLINK l "_Toc450789060" 3.4.1 Data Schema PAGEREF _Toc450789060 h 4 HYPERLINK l "_Toc450789061" 3.
4.2 E-R diagrams PAGEREF _Toc450789061 h 5 HYPERLINK l "_Toc450789062" 3.5 UI Design PAGEREF _Toc450789062 h 5 HYPERLINK l "_Toc450789063" Chapter 4 Xxx System Implementation PAGEREF _Toc450789063 h 6 HYPERLINK l "_Toc450789064" 4.1 Algorithms Design PAGEREF _Toc450789064 h 6 HYPERLINK l "_Toc450789065" 4.1.1 Class Diagrams PAGEREF _Toc450789065 h 6 HYPERLINK l "_Toc450789066" 4.
1.2 Sequence Diagrams PAGEREF _Toc450789066 h 6 HYPERLINK l "_Toc450789067" 4.2 Coding PAGEREF _Toc450789067 h 6 HYPERLINK l "_Toc450789068" 4.2.1 Programming Language PAGEREF _Toc450789068 h 6 HYPERLINK l "_Toc450789069" 4.2.
2 Main Code Analysis PAGEREF _Toc450789069 h 6 HYPERLINK l "_Toc450789070" 4.3 Code debugging PAGEREF _Toc450789070 h 6 HYPERLINK l "_Toc450789071" Chapter 5 Xxx System Test PAGEREF _Toc450789071 h 7 HYPERLINK l "_Toc450789072" 5.1 White-box Testing PAGEREF _Toc450789072 h 7 HYPERLINK l "_Toc450789073" 5.2 Black-box Testing PAGEREF _Toc450789073 h 7 HYPERLINK l "_Toc450789074" Chapter 6 Conclusions PAGEREF _Toc450789074 h 8 HYPERLINK l "_Toc450789075" Acknowledgement PAGEREF _Toc450789075 h 9 HYPERLINK l "_Toc450789076" References PAGEREF _Toc450789076 h 10Chapter 1 Introduction1.1 BackgroundThe University of the Science is located at Borrowdale, Harare City and has its own library. The librarian of the University like the other librarians in the country faces several problems in their service because of the manual system they use in daily transactions.
They locate the availability of books through a library classification wherein there is a system of documents, ibrary materials or any information according to their subject and allocating a call number to that information resource.1.2 Main ResearchThe library book management system is a web-based widespread information management system which realizes information storage and query. Through the system requires preliminary design, detailed design, coding and testing, the developer could get a good experience of coordination and hands-on development capabilities.The book search and lending management system which were developed are an important part of the whole library management system, mainly for the retrieval, query and lending of the books in the library.
Those are the epitome of the main library book management system.Chapter 2 System Analysis2.1 System OverviewThe website was used to implement search and book lending management, therefore, the system had the following features:The reader could search the books according to the information they have.The result is fuzzy-matched when searching.The reader could borrow the books based on the searching result they got.The reader could check the current lending books and lending history.
The reader could return the book they are keeping.The system provided a simple interface for quick book searching, lending and returning. The interface was designed to be mainly used for the common browsers, making the system migration and usage easier2.1.1 DefinitionJAVA -> Java programming language was originally developed by Sun Microsystems which was initiated by James Gosling and released in 1995 as core component of Sun Microsystems’ Java platform (Java 1.0 J2SE).
SQL -; Structured query LanguageDFD -; Data Flow DiagramCFD -; Context Flow DiagramER -; Entity RelationshipIDE -; Integrated Development EnvironmentSRS -; Software Requirement Specification2.1.2 Tasks and Targets2.
2 System Classification2.2.1 Xxx2.
3 Xxx2.3 System ExamplesChapter 3 System Design3.1 Requirements AnalysisThe objective of this phase is to define in more detail the system inputs, processes, outputs and interfaces. At the end of this phase the system’s processes will be defined at the functional level, meaning the functions to be performed will be known, but not necessarily how they will be performed. Requirements Analysis will identify and consider the risks related to how the technology will be integrated into the standard operating procedures. Requirements Analysis will collect the functional and system requirements of the business process, the user requirements and the operational requirements (e.g., when operational what is necessary to keep the system up and running).
3.1.2 SYSTEM REQUIREMENTSNON FUNCTIONAL REQUIREMENTS Product Requirements EFFICIENCY REQUIREMENT -When a library management system will be implemented librarian and user will easily access library as searching and book transaction will be very faster. RELIABILITY REQUIREMENT -The system should accurately performs member registration, member validation, report generation, book transaction and search USABILITY REQUIREMENT -The system is designed for a user friendly environment so that student and staff of library can perform the various tasks easily and in an effective wayORGANIZATIONAL REQUIREMENT IMPLEMENTATION REQUIREMNTS In implementing whole system it uses html in front end with php as server side scripting language which will be used for database connectivity and the backend ie the database part is developed using mysql.IMPLEMENTATION REQUIREMNTS In implementing whole system it uses html in front end with php as server side scripting language which will be used for database connectivity and the backend ie the database part is developed using mysql.
3.1.3 FUNCTIONAL REQUIREMENTS 1. NORMAL USER 1.1 USER LOGIN Description of feature This feature used by the user to login into system. They are required to enter user id and password before they are allowed to enter the system .The user id and password will be verified and if invalid id is there user is not allowed to not enter the system.
Functional requirements -user id is provided when they register -The system must only allow user with valid id and password to enter the system -The system performs authorization process which decides what user level can acess to. -The user must be able to logout after they finished using system. 1.2 REGISTER NEW USER Description of feature This feature can be performed by all users to register new user to create account. Functional requirements -System must be able to verify information -System must be able to delete information if information is wrong 1.3 REGISTER NEW BOOK Description of feature This feature allows adding new books to the library.
Functional requirements -System must be able to verify information -System must be able to enter number of copies into table. – System must be able to not allow two books having same book id. Library Management System 1.
4 SEARCH BOOK DESCRIPTION OF FEATURE This feature is found in book maintenance part. We can search book based on book id , book name , publication or by author name. Functional requirements – System must be able to search the database based on select search type – System must be able to filter book based on keyword enterd – System must be able to show the filtered book in table view 1.
5 ISSUE BOOKS AND RETURN BOOKS DESCRIPTION OF FEATURE This feature allows to issue and return books and also view reports of book issued. Functional requirements -System must be able to enter issue information in database. -System must be able to update number of books.
– System must be able to search if book is available or not before issuing books -System should be able to enter issue and return date information3.1.4 SOFTWARE AND HARDWARE REQUIREMENTS This section describes the software and hardware requirements of the system SOFTWARE REQUIREMENTS Operating system- Ubuntu is used as the operating system as it is stable and supports more features and is more user friendly Database MYSQL- MYSQL is used as database as it easy to maintain and retrieve records by simple queries which are in English language which are easy to understand and easy to write. Development tools and Programming language- Java is used to write the whole code and JSP to develop webpages with css for styling work and J2EE for sever side scripting. HARDWARE REQUIREMENTS ? Intel core i5 4th generation is used as a processor because it is fast than other processors an provide reliable and stable and we can run our pc for longtime. By using this processor we can keep on developing our project without any worries.
CSSStands for "Cascading Style Sheet." Cascading style sheets are used to format the layout of Web pages. They can be used to define text styles, table sizes, and other aspects of Web pages that previously could only be defined in a page’s HTML.CSS helps Web developers create a uniform look across several pages of a Web site. Instead of defining the style of each table and each block of text within a page’s HTML, commonly used styles need to be defined only once in a CSS document.
Once the style is defined in cascading style sheet, it can be used by any page that references the CSS file. Plus, CSS makes it easy to change styles across several pages at once. For example, a Web developer may want to increase the default text size from 10pt to 12pt for fifty pages of a Web site. If the pages all reference the same style sheet, the text size only needs to be changed on the style sheet and all the pages will show the larger text.
Back endThe backendis designed using mysql which is used to design the databases.MySQLMySQL, the most popular Open Source SQL database management system, is developed, distributed, and supported by Oracle Corporation.MySQL is a database management system.A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL Server. Since computers are very good at handling large amounts of data, database management systems play a central role in computing, as standalone utilities, or as parts of other applications.MySQL databases are relational.
A relational database stores data in separate tables rather than putting all the data in one big storeroom. The database structures are organized into physical files optimized for speed. The logical model, with objects such as databases, tables, views, rows, and columns, offers a flexible programming environment. You set up rules governing the relationships between different data fields, such as one-to-one, one-to-many, unique, required or optional, and “pointers” between different tables. The database enforces these rules, so that with a well-designed database, your application never sees inconsistent, duplicate, orphan, out-of-date, or missing data.
The SQL part of “MySQL” stands for “Structured Query Language”. SQL is the most common standardized language used to access databases. Depending on your programming environment, you might enter SQL directly (for example, to generate reports), embed SQL statements into code written in another language, or use a language-specific API that hides the SQL syntax.
3.2 System ArchitectureThe system architecture is based on a three-tier client-server model where clients (web browsers) communicate with a web server (through the Internet), which in turn communicates with a database server. Each tier (client, web server, and database server) resides on separate computers.In addition, the architecture of the system code running on the web server is based on the Model-View-Controller (MVC) framework popularized by applications written for the Java 2 Enterprise Edition (J2EE).
A description of the MVC architecture follows.Model The model represents the state (data) and business logic of the application.View The view module is responsible to display data i.e. it represents the presentation.Controller Controllers provide access to the application behavior that you typically define through a service interface. Controllers interpret user input and transform it into a model that is represented to the user by the view.
1. Layered Architecture Diagram3.2.1 System ModulesThe system after careful analysis has been identified to be presented with the following modules and roles.The modules involved are:? Administrator? Members3.
2.1.1 Administrator:The administrator is the super user of this application. Only adminhave access into this admin page. Admin may be the librarian in the system. The administrator has all the information about all the users and about all books.This module is divided into different sub-modules.Manage MembersManage Books Manage AuthorsManage Loaned BooksFigure 3.
2. Admin ModuleManage AuthorsFigure 3.3. Manage Authors sub-systemAdd new AuthorAdmin has the priviledge to add a new author into the systemRemove Author Admin can also delete an author from the system if necessary Edit AuthorThe details of an author can only be edited by an adminAssign BooksAdmin can also assign new books to a specific authorManage MembersFigure 3.4.
Manage Members sub-systemView MembersThe admin can access the list of library mebersSend MessageAdmin can also send messages to members regarding any issuesChange StatusThe admin can also change the current status of a registered member from active to blockedManage BooksFigure 3.5. Manage Books sub-systemAdd BookThe admin has the authority to add new books to the systemEdit BookAdmin can also edit the details of a book Show book commentsThe admin can view the comments made about a book which was borrowed by a patronDelete book Admin can also delete book ecords from the system3.2.
1.2 Members:Figure 3.6. Members Module RegistrationA new user will have to register in the system by providing essential details in order to access the system.LoginA user must login with his user name and password to the system after registration.
View BooksUsers can view the book list, view book details, rate books, comment on a bookEdit Profile and PasswordThe user can edit their profile and are also able to change their passwordSearch BooksUsers can also search for a particular book in the systemBorrow BooksA facility for borrowing available books is also available to the usersView Book HistoryUsers are also able to view the history of books they have borrowedView AuthorsUsers can also view the list of authors who are available in the system3.2.2 Relations among ModulesFigure 3.7.
Context Diagram for Library Book Management SystemIn the context diagram above, users login the system. They are either accepted or rejected. A member can, borrow a book, return a book, display books, search books, send messages, and receive feedback from the system. A librarian can search a member, search a book, display reports, view members, view books, and respond to messgaes.Figure 3.8. DFD Diagram for Library Book Management System3.3 System FunctionsCirculationSearchLoginRegistrationCatalogouing3.
4 Database Design3.4.1 Data SchemaSchema for creating the databaseDROP DATABASE IF EXISTS `library`;CREATE DATABASE `library` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;USE `library`;Output:Figure 3.11. Library Database Schema OutputSchema for Authors TableCREATE TABLE `authors` (`author_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,`name` VARCHAR(50) NOT NULL,`country` VARCHAR(50) NOT NULL) ENGINE = InnoDB CHARSET=utf8;Output:Figure 3.12.
Authors Table Schema OutputSchema for Author Books TableCREATE TABLE `author_books` (`book_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,`author_id` BIGINT UNSIGNED NOT NULL,`title` VARCHAR(50) NOT NULL,`status` VARCHAR(30) NOT NULL,`image` LONGBLOB,`pages` INT(6) NOT NULL,`book_description` TEXT NOT NULL,CONSTRAINT `author_books_author` FOREIGN KEY (`author_id`)REFERENCES `authors`(`author_id`) ON DELETE CASCADE) ENGINE = InnoDB CHARSET=utf8;Output:Figure 3.12. Authors Books Table Schema OutputSchema for Users Tablecreate table `users` ( `user_id` varbinary(36) NOT NULL PRIMARY KEY, `username` VARCHAR(30) NOT NULL, `password` VARCHAR(60) NOT NULL, `first_name` VARCHAR(30) NOT NULL, `last_name` VARCHAR(30) NOT NULL, `email` VARCHAR(30) NOT NULL, `role` VARCHAR(30) NOT NULL, `status` VARCHAR(30) NOT NULL, UNIQUE (username)) ENGINE = InnoDB CHARSET=utf8;Output:Figure 3.13. Users Table Schema OutputSchema for Book_Ratings TableCREATE TABLE `book_ratings` (`rating_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,`rating` BIGINT UNSIGNED NOT NULL,`book_id` BIGINT UNSIGNED NOT NULL,`user_id` varbinary(36) NOT NULL,CONSTRAINT `book_ratings_author_books` FOREIGN KEY (`book_id`) REFERENCES `author_books`(`book_id`) ON DELETE CASCADE,CONSTRAINT `book_ratings_users` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) ON DELETE CASCADE) ENGINE = InnoDB CHARSET=utf8; Schema for Messages TableCREATE TABLE `comments` (`comment_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,`book_id` BIGINT UNSIGNED NOT NULL,`user_id` varbinary(36) NOT NULL,`comment` VARCHAR(200) NOT NULL,CONSTRAINT `fk_book_comments` FOREIGN KEY (`book_id`) REFERENCES `author_books` (`book_id`) ON DELETE CASCADE,CONSTRAINT `fk_comments_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE) ENGINE = InnoDB CHARACTER SET=utf8;Schema for Comments TableCREATE table `books_history`(`book_history_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,`book_id` BIGINT UNSIGNED NOT NULL,`user_id` varbinary(36) NOT NULL,`get_date` DATETIME NOT NULL DEFAULT NOW(),`return_date` DATETIME NOT NULL,`is_returned` TINYINT(1) NOT NULL,CONSTRAINT `fk_book_id` FOREIGN KEY (`book_id`) REFERENCES `author_books`(`book_id`) ON DELETE CASCADE,CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) ON DELETE CASCADE) ENGINE = InnoDB CHARACTER SET=utf8;3.
4.2 E-R diagramsThe ERD model diagram below will be used to show the various entities in this system and how they relate to each other.Description of CardinalityAn identifying relationship is shown using a dotted line; a non-identifying relationship is shown using a solid line.
Identifying relationship means that the primary key of the parent entity is also included as the primary key of the child entity forming a compound key. A non-identifying relationship means that the primary key of the parent entity is included in the child entity this time not as part of the primary key but as a foreign key. The following is an illustration of Identifying and Non-identifying relationship with regard to the figure 3.14 below.Figure 3.14.
ERD for LBMS3.5 UI Design3.5.1 Overview of the User InterfaceThe user interface of the system will be created using JavaServer Pages 8, JavaBeans, and Java custom tag libraries (JSTL). Spring framework 5 9 and JSTL 10 both provide custom tag libraries that will be used.
The JSTL will be used for iteration and conditionals in JSPs as well as formatting data such as dates for display. The Spring tags will be used for generating HTML form elements such as text fields, collecting form data that is submitted to the server, redisplaying the form data to the user, displaying error messages, and componentizing JSP pages into reusable parts.3.5.2 JSP Best PracticesA JSP page is basically a web page with traditional HTML and bits of Java code.
The file extension of a JSP page is .jsp rather than .html or .
htm, which tells the server that this page requires special handling that will be accomplished by a server extension or a plug-in. Industry standards for JSP best practices recommend separating the Java logic from HTML by using Java custom tag libraries. The JSP best practices found in the following articles 11, 12, 13 will be used when developing the user interface for LBMS, as necessary to improve the design of the system.
The following practices from the articles referenced above shall be used.Separate HTML from JavaPlace business logic in JavaBeansFactor general behavior out of custom tag handler classesFavor HTML in Java handler classes over Java in JSPsUse an appropriate inclusion mechanismUse a JSP template mechanismUse style sheetsUse the MVC patternUse available custom tag librariesUse JSP comments in most casesFollow HTML best practicesUtilize the JSP exception mechanismPrecompile JSP pagesIn reference to number 11 above, the XHTML standard shall be used, such that the final HTML that is produced conforms to this standard. Following the XHTML standard leads to HTML that is easier to read, understand, and maintain. In addition, the XHTML standard provides the opportunity to mix XML with HTML and utilize XML tools to produce web content.
This design does not make use of XML tools to produce web content, but future maintenance may require this. Refer to 14 for detailed information on the XHTML standard.3.5.3 Page ComponentsSpring provides integration support with apache tiles framework 15. So we can simply manage the layout of the spring mvc application by the help of spring tiles support.
Advantage of Tiles support in Spring MVC Reusability: We can reuse a single component in multiple pages like header and footer components.Centralized control: We can control the layout of the page by a single template page only.Easy to change the layout: By the help of single template page, we can change the layout of the page anytime. So your website can easily adapt new technologies such as bootstrap, jquery etc.A layout will be defined for the web pages of LBMS using tiles that will allow the menu component to be included on every page except for the login and register page. The layout that this will provide is illustrated below.Figure 3.15.
Page Layout22.214.171.124 Navigation Menu3.5.3.
2 Look and Feel126.96.36.199.
2.2 Colors188.8.131.52.3 Icons3.5.
3.2.4 Errors and Messages3.
6 System Pages3.6.1 Login Page3.6.
2 Registration Page3.6.3 Authors Page3.6.4 Messages Page3.
6.5 Profile Page3.6.6 Books PageChapter 4 System Implementation4.
1 Algorithms DesignThe following sections contain UML diagrams that describe the important classes of the system.Domain objects are implemented throughout the system. Business Service objects contain most of the business logic and they make calls to the Model objects to retrieve Domain objects populated with data from the database. The Model objects contain logic for caching database data and validating data to be committed to the database.
The Data Access Objects (DAO) contain all of the JDBC SQL logic.This model involving Domain objects, Business Service objects, Model objects, and DAOs was chosen because it provides a clean separation of responsibilities. Separating the responsibilities in this fashion reduces the amount of effort required to add/modify/remove functionality from the system, migrate the system to a different database, or migrate the system to a different user interface.4.
1.1 Class DiagramsA class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of asystem by showing the system’s classes, their attributes, and the relationships between the classes.4.1.2 Sequence Diagrams4.1.3 Activity Diagrams4.2 Coding4.
2.1 Programming Language4.2.2 Main Code Analysis4.3 Code debuggingChapter 5 System Test5.1 White-box Testing5.2 Black-box TestingChapter 6 ConclusionsAcknowledgementReferences1 Microsoft Corporation.
Active Server Pages TutorialDB/OL. http://msdn.microsoft.com2 Christian Nagel, Bill Evjen, Jay Glynn, Karli Watson and Morgan Skinner. Professional C# 2012 and .NET 4.
5M. John Wiley ; Sons, Inc., 20133 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN. Available at: http://download.
mysql.com/doc/refman/5.7/en/what-is-mysql.html8 JSP (http://java.sun.com/products/jsp/)9 Spring Framework 5. Available at: HYPERLINK ;https://spring.
io/; https://spring.io/10 JSTL. Available at: HYPERLINK ;http://java.
sun.com/products/jsp/jstl; http://java.sun.com/products/jsp/jstl11 Servlets and JSP Pages Best Practices.
Available at: HYPERLINK ;http://www.oracle.com/technetwork/articles/java/servlets-jsp-140445.html; http://www.oracle.com/technetwork/articles/java/servlets-jsp-140445.
html12 WebSphere Commerce JSP programming best practices. Available at: HYPERLINK ;https://www.ibm.com/support/knowledgecenter/SSZLC2_7.0.0/com.
htm13 JSP best practices. Available at: HYPERLINK ;http://www.dsc.ufcg.
ufcg.edu.br/~jacques/cursos/j2ee/recursos/JSP%20best%20practices14 XHTML™ 1.0 The Extensible HyperText Markup Language (SecondEdition). Available at: HYPERLINK ;https://www.w3.org/TR/xhtml1/; https://www.w3.org/TR/xhtml1/15 Spring MVC Tiles Example. Available at: HYPERLINK ;https://www.javatpoint.com/spring-mvc-tiles-example; https://www.javatpoint.com/spring-mvc-tiles-example16