“Online Library Management System” BY: Manoj Monga 07DDCS508 Faculty of Science and Technology, The ICFAI University, Dehradun April, 2011 1
Jan 19, 2016
“Online Library Management System”
BY:Manoj Monga07DDCS508
Faculty of Science and Technology,The ICFAI University,
Dehradun April, 2011
1
A
Project Report
On
“Online Library Management
System”
By
Manoj Monga
(07DDCS50b)
Under the guidance of
Dr. PRASANNA DIXIT,
Faculty member,
ICFAI UNIVESRITY, DEHRADUN
Submitted in partial fulfillment of the requirements for
Degree of Bachelor of Technology in Computer Science
At
Faculty of Science and Technology
The ICFAI University, Dehradun
April 2011
2
CERTIFICATE
This is to certify that Manoj Monga of final year ID NO. 07DDCS508, pursuing Computer
Science and Engineering Branch at FST, IUD has partially completed his Internship-III
under Dr. PRASANNA DIXIT on the topic “ONLINE LIBRARY SYSTEM” in the
academic year 2011.
IGNATURE OF THE FACULTY SIGNATURE OF THE IC
DATE: DATE:
3
ACKNOWLEDGEMENT
I would like to pay my sincere gratitude to Dr. G.P. Srivastava, the vice-chancellor of Icfai
University, Dehradun for introducing this internship program in the curriculum. I am
specially indebted to Dr. R.C.Ramola, the director of Faculty of Science and Technology,
Dehradun for providing the students the platform to prepare such project report while
pursuing the graduation itself. I would also like to thank, Internship-in-charge, Dr.
Prasanna Dixit, Icfai University, Dehradun, for providing me the source and allowing me to
pursue internship due to which I am able to work on this project. I am also indebted to Mr
Chinmoy Panda, CEO, Mindfire Solutions for assigning me such an interesting topic
which made me aware of the Technical Aspects of Web Development.
My heart owes a special thank to My Project Manager and My Lead, whose instructions
throughout the preparation of this midterm report were invincible to me and without whose
guidelines this report would never have been possible. I also thank him for his guidance and
supervision in making my work an authentic and dependable source of information to one
and all.
My deep thanks go to my parents whose continuous support resulted in my pursuit of
Computer Science and Engineering at FST, Icfai University Dehradun.
Indeed my friends are main source of inspiration, encouragement and energy and of course I
thank them.
4
PREFACE
This Project Report is meant to acquaint the readers with a technical in-depth on the
Concepts of Web applications and the various technologies used in designing it. This project
thereby is made using Ruby On Rails framework and Ruby in the code behind.
The project titled Library Management System is Library Management software for
monitoring and controlling the transactions in a library. It mainly focuses on basic operations
in a library like adding new books, and updating new information, searching books, issue
book and return book. Throughout the project the focus has been on presenting information
and comments in an easy and intelligible manner. The project is very useful for those who
want to know about Library Management System.
Thereby to make this application various other technologies were used. These were Ajax,
Jquery, Javascript, Html, Xml and CSS style sheets.
Using these mentioned technologies this application was henceforth designed.
The successful completion of the Project Report owes much to my project lead Mr. Amitabh
Pattnaik and my mentor Mr. Chittranjan Pattnaik who through his ideas, moral boost up
and healthy criticism enabled me to present this report in the form it is. I also thank him for
my internship-in-charge for his guidance and supervision in making my literature survey an
authentic and dependable source of information to one and all.
5
ABSTRACT
This project of “LIBRARY MANAGEMENT” of gives us the complete information about
the library. In this Library Management System there are three types of login (administrator,
Librarian, user) with different privileges. Administrator have all the privileges he can enter
the record of new books, retrieve the details of books available in the library, can add new
members and there information along with there login credentials, can send notification
emails to members. Librarian have less privileges as compare to administrator, he can't add
new members. Librarian has the privileges to add new books, add new subjects, can send
notification emails to members. Users can only see the books in the library according to the
subjects, can issue the books according to the availability. In this project we can maintain the
database that can store books issued by any member with details and date and time, we can
charge late fees accordingly.
6
Table of Contents
CERTIFICATION
ACKNOWLEDGEMENT
PREFACE
ABSTRACT
1. INTRODUCTION 9
1.1 Description of the Project 10
1.2 Motivation 10
1.3 Purpose 11
1.4 Scope 11
1.5 Implementation Technologies 12
1.6 System Requirements 14
2. SYSTEM ANALYSIS 16
2.1 System methodology 17
2.2 SDLC Objective 19
2.3 SDLC 22
2.4 Product Perspective 25
2.5 Product Features 25
2.6 Constraints 26
3. SYSTEM DESIGN 27
3.1 System Design 28
3.2 Steps in System Design 29
3.3 Architecture Diagram 31
3.4 Dataflow Diagram 32
3.5 E-R Diagram 32
7
4. BACK-END DATABASE 34
4.1 Books Table 36
4.2 Subjects Table 36
4.3 Users Table 37
4.4 Users_info Table 38
4.5 Privileges 38
4.6 Books_user_info Table 38
5. SYSTEM IMPLEMENTATION 39
5.1 Platform for the Project 40
5.2 Snapshots 46
6. TEST CASES 59
6.1 Testing 60
6.2 Device Application Testing 64
BIBLIOGRAPHY
8
9
1.1 Description of the Project
The project titled Library Management System is Library Management software for
monitoring and controlling the transactions in a library .The project “Library Management
System” is developed in Ruby on Rails, which mainly focuses on basic operations in a library
like adding new books, and updating new information, searching books, issue book and
return book.
This project of “LIBRARY MANAGEMENT” of gives us the complete information about
the library. In this Library Management System there are three types of login (administrator,
Librarian, user) with different privileges. Administrator have all the privileges he can enter
the record of new books, retrieve the details of books available in the library, can add new
members and there information along with there login credentials, can send notification
emails to members. Librarian have less privileges as compare to administrator, he can't add
new members. Librarian has the privileges to add new books, add new subjects, can send
notification emails to members. Users can only see the books in the library according to the
subjects, can issue the books according to the availability. In this project we can maintain the
database that can store books issued by any member with details and date and time, we can
charge late fees accordingly.
Internet has made life easier we can order thing just clicking on the botton and that thing will
be at our door step in no time time thats why this project is also made keeping in mind the
comfortness of members, they didn't have to do any work, whenever any member issue a
book a email notification is send to the librarian with the name of the member and book
details and librarian will make the book available to them on there desk.
1.2 Motivation
The credit behind this goes to the host company, Mindfire Solutions who motivated us to do
this project. The project was explained to us in simple terms, we have to make the projects in
2 steps, initially we have to make the simple application which will show the available books
subject wise, users can see the available books and issue them, there is no admin login in first
step. In the 2nd step we have to make the admin module and librarian module that can add
10
new books, new member, new subjects, can send email notification and other things
according to there privileges. The company ade it very easy for us to implement the project
and also helped in understanding the platform and in solving problems.
1.3 Purpose
The purpose of this application are as follows :
The software is for automation of library.
It provides following facilities to
Users :
Can see available books and there information in the library.
Can issue books according to the availability.
Librarian:
Can send notifications through mail to members.
Can add new book, new subject.
Can read and write information about books.
Admin :
Can read and write information about any member and assign them the privileges.
Can update, create, delete the record of membership as per requirement.
Can send notifications through mail to members.
Can add new book, new subject new members.
1.4 Scope
The different areas where we can use this application are :
Any education institute can make use of it for providing information about author,
content of the available books.
11
It can be used in offices and modifications can be easily done according to
requirements.
1.5 Implementation Technologies
This application would not have been possible had it not been for the technologies which is
used for its creation. These technologies includes
Ruby On Rails
My SQL
Hyper Text Markup Language(HTML).
Cascading Style Sheets (CSS).
Javascript.
1.5.1 Ruby On Rails
Ruby on Rails (RoR) is an extremely productive web application framework written in Ruby
by David Heinemeier Hansson. This is a open source Ruby framework for developing
database-backed web applications. Ruby on Rails is intended to emphasize Convention over
Configuration (CoC), and the rapid development principle of Don't Repeat Yourself (DRY).
1.5.2 My SQL
MySQL is a Relational Database Management System (RDBMS) that runs as a server
providing multi-user access to a number of databases. It is named after developer Michael
Widenius' daughter, My. This is an open source software available and is commonly used.
The SQL phrase stands for Structured Query Language. SQL statements are used to perform
tasks such as update data on a database, or retrieve data from a database.
1.5.3 Hyper Text Markup Language(HTML).
HTML, which stands for Hyper Text Markup Language, is the predominant markup language
for web pages. HTML is the basic building-blocks of web pages. The purpose of a web
browser is to read HTML documents and compose them into visual or audible web pages.
The browser does not display the HTML tags, but uses the tags to interpret the content of the
12
page. HTML elements form the building blocks of all websites. HTML allows images and
objects to be embedded and can be used to create interactive forms. It provides a means to
create structured documents by denoting structural semantics for text such as headings,
paragraphs, lists, links, quotes and other items. It can embed scripts in languages such as
JavaScript which affect the behavior of HTML web pages.
1.5.4 Cascading Style Sheets (CSS).
Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation
emamtics (the look and formatting) of a document written in a markup language. Its most
common application is to style web pages written in HTML and XHTML, but the language
can also be applied to any kind of XML document.
CSS is designed primarily to enable the separation of document content (written in HTML or
a similar markup language) from document presentation, including elements such as the
layout, colors, and fonts. This separation can improve content accessibility, provide more
flexibility and control in the specification of presentation characteristics, enable multiple
pages to share formatting, and reduce complexity and repetition in the structural content
(such as by allowing for tableless web design). CSS can also allow the same markup page to
be presented in different styles for different rendering methods, such as on-screen, in print,
by voice (when read out by a speech-based browser or screen reader ) and on Braille-based,
tactile devices. While the author of a document typically links that document to a CSS style
13
sheet, readers can use a different style sheet, perhaps one on their own computer, to override
the one the author has specified.
1.5.4 Javascript
JavaScript was first developed by Netscape as an open scripting language to create
interactive web pages. Script is nothing but a small program which is generally very easy to
learn and use. JavaScript as an open language implies that it can be used by anyone; no
license is required to use JavaScript. Microsoft created Jscript for its Internet Explorer similar
to Netscape JavaScript. JavaScript has the ability to function both as an object oriented
language as well as procedural language. Using JavaScript you can create objects, attach
methods and properties. Though JavaScript can run on both client-side and server-side, it is
very popular among client-side scripting languages. Client side means the script runs on
client browser. JavaScript are generally embedded in the header of web pages.
1.6 System Requirement
There are two types of system requirement
These are:-
1. Hardware requirement
2. Software requirement
These software and hardware requirements are needed for two purposes ,these are:
1. Developing
2. Deploying
1.6.1 Developing purposes: For developing purposes the software and hardware requirements are discussed below:-
1.6.1.1 Software requirements:
1. operating system- Any operating system with a javascript enabled web browser.
14
2. Back-end tool-Database system(MySql)
1.6.1.2 Hardware requirements:
1. Processor- PIII 700 MHZ and above
2. Input/Output Device-Keyword,Mouse,and monitor.
3. RAM- Atleast 256 Mb.
1.6.2 Deploying purpose:
Viewer only needs a browser and a net connection along with a valid credit card to make
transactions
15
16
2.1 System Development Methodology
1. Initiation Phase: The initiation of a system (or project) begins when a business
need or opportunity is identified. A Project Manager should be appointed to
manage the project. This business need is documented in a Concept Proposal.
After the Concept Proposal is approved, the System Concept Development Phase
begins.
2. System Concept Development Phase: Once a business need is approved, the
approaches for accomplishing the concept are reviewed for feasibility and
appropriateness. The Systems Boundary Document identifies the scope of the
system and requires Senior Official approval and funding before beginning the
Planning Phase.
3. Planning Phase: The concept is further developed to describe how the business
will operate once the approved system is implemented, and to assess how the
system will impact employee and customer privacy. To ensure the products and
/or services provide the required capability on-time and within budget, project
resources, activities, schedules, tools, and reviews are defined. Additionally,
security certification and accreditation activities begin with the identification of
system security requirements and the completion of a high level vulnerability
assessment.
4. Requirements Analysis Phase: Functional user requirements are formally
defined and delineate the requirements in terms of data, system performance,
security, and maintainability requirements for the system. All requirements are
defined to a level of detail sufficient for systems design to proceed. All
requirements need to be measurable and testable and relate to the business need or
opportunity identified in the Initiation Phase.
17
5. Design Phase: The physical characteristics of the system are designed during this
phase. The operating environment is established, major subsystems and their
inputs and outputs are defined, and processes are allocated to resources.
Everything requiring user input or approval must be documented and reviewed by
the user. The physical characteristics of the system are specified and a detailed
design is prepared. Subsystems identified during design are used to create a
detailed structure of the system. Each subsystem is partitioned into one or more
design units or modules. Detailed logic specifications are prepared for each
software module.
6. Development Phase: The detailed specifications produced during the design
phase are translated into hardware, communications, and executable software.
Software shall be unit tested, integrated, and retested in a systematic manner.
Hardware is assembled and tested.
7. Integration and Test Phase: The various components of the system are
integrated and systematically tested. The user tests the system to ensure that the
functional requirements, as defined in the functional requirements document, are
satisfied by the developed or modified system. Prior to installing and operating
the system in a production environment, the system must undergo certification
and accreditation activities.
8. Implementation Phase: The system or system modifications are installed and
made operational in a production environment. The phase is initiated after the
system has been tested and accepted by the user. This phase continues until the
system is operating in production in accordance with the defined user
requirements.
18
9. Operations and Maintenance Phase: The system operation is ongoing. The
system is monitored for continued performance in accordance with user
requirements, and needed system modifications are incorporated. The operational
system is periodically assessed through In-Process Reviews to determine how the
system can be made more efficient and effective. Operations continue as long as
the system can be effectively adapted to respond to an organization’s needs. When
modifications or changes are identified as necessary, the system may reenter the
planning phase.
10. Disposition Phase: The disposition activities ensure the orderly termination of
the system and preserve the vital information about the system so that some or all
of the information may be reactivated in the future if necessary. Particular
emphasis is given to proper preservation of the data processed by the system, so
that the data is effectively migrated to another system or archived in accordance
with applicable records management regulations and policies, for potential future
access.
2.2 SDLC Objectives
This guide was developed to disseminate proven practices to system developers, project
managers, program/account analysts and system owners/users throughout the DOJ. The
specific objectives expected include the following:
To reduce the risk of project failure
To consider system and data requirements throughout the entire life of the system
To identify technical and management issues early
To disclose all life cycle costs to guide business decisions
To foster realistic expectations of what the systems will and will not provide
To provide information to better balance programmatic, technical, management, and
cost aspects of proposed system development or modification
To encourage periodic evaluations to identify systems that are no longer effective
To measure progress and status for effective corrective action
19
To support effective resource management and budget planning
To consider meeting current and future business requirements
Key Principles
This guidance document refines traditional information system life cycle management
approaches to reflect the principles outlined in the following subsections. These are the
foundations for life cycle management.
Life Cycle Management Should be used to Ensure a Structured Approach to
Information Systems Development, Maintenance, and Operation: This SDLC
describes an overall structured approach to information management. Primary
emphasis is placed on the information and systems decisions to be made and the
proper timing of decisions. The manual provides a flexible framework for
approaching a variety of systems projects. The framework enables system developers,
project managers, program/account analysts, and system owners/users to combine
activities, processes, and products, as appropriate, and to select the tools and
methodologies best suited to the unique needs of each project.
Support the use of an Integrated Product Team: The establishment of an
Integrated Product Team (IPT) can aid in the success of a project. An IPT is a
multidisciplinary group of people who support the Project Manager in the planning,
execution, delivery and implementation of life cycle decisions for the project. The
IPT is composed of qualified empowered individuals from all appropriate functional
disciplines that have a stake in the success of the project. Working together in a
proactive, open communication, team oriented environment can aid in building a
successful project and providing decision makers with the necessary information to
make the right decisions at the right time.
Each System Project must have a Program Sponsor: To help ensure effective
planning, management, and commitment to information systems, each project must
have a clearly identified program sponsor. The program sponsor serves in a
leadership role, providing guidance to the project team and securing, from senior
management, the required reviews and approvals at specific points in the life cycle.
20
An approval from senior management is required after the completion of the first
seven of the SDLC phases, annually during Operations and Maintenance Phase and
six-months after the Disposition Phase. Senior management approval authority may
be varied based on dollar value, visibility level, congressional interests or a
combination of these. The program sponsor is responsible for identifying who will be
responsible for formally accepting the delivered system at the end of the
Implementation Phase.
A Single Project Manager must be Selected for Each System Project: The Project
Manager has responsibility for the success of the project and works through a project
team and other supporting organization structures, such as working groups or user
groups, to accomplish the objectives of the project. Regardless of organizational
affiliation, the Project Manager is accountable and responsible for ensuring that
project activities and decisions consider the needs of all organizations that will be
affected by the system. The Project Manager develops a project charter to define and
clearly identify the lines of authority between and within the agency’s executive
management, program sponsor, (user/customer), and developer for purposes of
management and oversight.
A Comprehensive Project Management Plan is Required for Each System
Project: The project management plan is a pivotal element in the successful solution
of an information management requirement. The project management plan must
describe how each life cycle phase will be accomplished to suit the specific
characteristics of the project. The project management plan is a vehicle for
documenting the project scope, tasks, schedule, allocated resources, and
interrelationships with other projects. The plan is used to provide direction to the
many activities of the life cycle and must be refined and expanded throughout the life
cycle.
Specific Individuals Must be Assigned to Perform Key Roles Throughout the
Life Cycle: Certain roles are considered vital to a successful system project and at
least one individual must be designated as responsible for each key role. Assignments
may be made on a full- or part-time basis as appropriate. Key roles include
program/functional management, quality assurance, security, telecommunications
21
management, data administration, database administration, logistics, financial,
systems engineering, test and evaluation, contracts management, and configuration
management. For most projects, more than one individual should represent the actual
or potential users of the system (that is, program staff) and should be designated by
the Program Manager of the program and organization.
2.3 Process Engineering of Application Software (Software
Development Life cycle)
Fig 2.1 Software Development Life Cycle
22
Identification of the need: Since the world is growing for globalization, every organization
wants to beat its competitors and want to grow. Enterprise Resourceful Planning (ERP) is the
need of today’s organization. Survival on manual system is difficult so, that’s why
organization of the corporate world wants to computerize their departments. The modules
should be complete database driven and interactive that should provide the proper
information about the Placement and Training Organization.
Success of a system depends largely on how accurately a problem is defined, thoroughly
investigated and properly carried out to the choice of solution. Analysis is a phase in which
the requirements for the new system are identified. System analysis is a detailed study of the
various operations performed by a system and their relationship within and outside of the
system. The question is: what must be done to solve the problem? One aspect of analysis is
defining the boundaries of the system and determining whether or not a candidate system
should consider other related system. During analysis data are collected on the available files,
decision points and transactions handled by the parent system. Data flow diagram,
interviews, onsite observations, questionnaires are used as a logical system model and tools
to perform the analysis.Tasks, which are performed as analyst:
Gathered all facts about the present system from the employees.
Studied strength and weakness of the current system.
Determined “what” must be done to solve the problem.
Prepared a functional specifications document.
In order to reduce the time, there is a need for computerized system that cans retrieve data,
insert data, update existing data or delete existing data. These modules are developed wit the
aim of reducing time, reducing manpower, reducing cost so that the records can be easily
maintained. The volume of work and complexity are increasing year by year. This system
reduces complexity and workload.
Preliminary Investigation:
A request to take assistance from information system can be made for many reasons, but in
each case some one in the organization initiate the request. When the request is made, the
first system activity the preliminary investigation begins. This activity has three parts:
23
Request clarification
Feasible Study
Request approval
Many requests from employees and users in the organization are not clearly defined.
Therefore, it becomes necessary that project request must be examined and clarified properly
before considering systems investigation.
The feasibility study is carried out by a small group of people who are familiar with
information system techniques, understand the parts of the business or organization that will
be involved or affected by the project, and are skilled in the system analysis and design
process.
Request Approval: It is not necessary that all request projects are desirable or feasible. Some
organizations receive so many projects request from employees that only a few of them can
be purchased. However, those projects that are feasible and desirable should be put into a
schedule. In some cases, development can start immediately, although usually system staff
members are busy on other ongoing projects. When such situation arises, management
decides which projects are more urgent and schedule them accordingly. After a project
request is approved, its cost, priority, completion time and personal requirements are
estimated and used to determine where to add it to any existing project list. Later on, when
the other projects have been completed, the proposed application development can be
initiated.
Analysis is a process of studying a problem and to find the best solution to that problem.
System analysis gives us the target for the design and the implementation. Analysis is one
phase, which is important phase for system development lie cycle. System development is a
problem solving techniques. Analysis involves interviewing the client and the user. Thee
people and the existing documents about the current mode of operation are the basic source
of information for the analyst.
Analysis is the process of studying a problem to find the best solution to that problem.
System analysis gives us the target for the design and the implementation. Analysis is one
phase of the very important phase of the system development life cycle. System development
is a problem solving techniques. Analyses involve interviewing the client and the user. These
24
people and the existing document about the current mode of operation are the basic source of
information for the analyst.
2.4 Product perspective
The proposed Library Management System will provide a search functionality to facilitate
the search of resources. This search will be based on various categories viz. book name or the
ISBN. Also Advanced Search feature is provided in order to search various categories
simultaneously. Further the library staff personnel can add/update/remove the resources and
the resource users from the system.
The University of Ballarat has various campuses distributed across Australia. Further each
branch is managed individually and locally by that branch library staff. The System should
reflect and support this decentralized structure. A provision should further be allowed to add
a branch. The System will also have an ADMIN who has full-fledged rights with regards to
managing resources across branches – such as transferring books across these branches. The
users can know the number of available books, information about their account etc.
2.5 Product Features
There are three different users who will be using this product:
Administrator who will be managing the data of Online Library.
Librarian who will be managing the things related to books only.
Users who will be accessing the Library online.
The features that are available to the Administrator are:
Can view the different categories of books available in the Library.
Can add new categories of books.
Can add new member and there privileges.
Can view the List of current users and edit there information.
Can view the List of books available in each category
Add books and their information of the books to the database
Edit the information of the existing books.
25
Can check the report of the issued Books.
Can send E-mail notifications to all the members.
The features that are available to the Librarian are:
Can view the different categories of books available in the Library.
Can add new categories of books.
Can view the List of books available in each category
Add books and their information of the books to the database
Edit the information of the existing books.
Can check the report of the issued Books.
Can send E-mail notifications to all the members.
The features available to the Users are:
Can view The different categories of books available in the Library
Can view the List of books available in each category.
Can own an account in the Library.
Can view the books issued to him .
Can issue a new book.
Can search for a book.
2.6 Constraints
Some of the problems being faced in manual system are as follows:
1. Fast report generation is not possible.
2. Tracing a book is difficult.
3. Information about issue/return of the books are not properly maintained.
4. No central database can be created as information is not available in database.
26
27
3.1 SYSTEM DESIGN
The most creative and challenging phase of the system life cycle is system design. The term
design describes a final system and the process by which it is developed. It refers to the
technical specifications that will be applied in implementing the candidate system.
The first step is to determine how the output is to be produced and in what format. Samples
for the output (and input) are also presented.
The second step is input data and master files (data base) have to be designed to meet the
requirements of the proposed output. The operational (processing) phases are handled
through program construction and testing including a list of the programs needed to meet the
system’s objective and complete documentation. Finally, details related to justification of the
system on the user and the organization are documented and evaluated by management as a
step toward implementation. To design the system we must note the following points:
To identify the Software Components which satisfy the System Design.
To design and document the Software Components and their linkage.
In this component the software components and relevant interfaces such as, interactions with
existing internal and external systems, network connections, standard input an output formats
are to be identified.
Identify Relevant Interfaces
Interaction with existing internal systems.
Interaction with external systems.
Network Connections.
Standard Input Formats
Standard Output Formats.
Program Specification
Elements of Specifications required are
How it is being accessed.
Function called.
Program Security.
Field Details.
28
Program Functions.
3.2 STEPS IN SYSTEM DESIGN
Databases and database technology are having a major impact on the growing use of
computers. It is fair to say that databases will play critical role: in almost all areas where
computers are used. Including business, engineering, medicine, law, education and library,
science to name a few. A database is a collection of related data. By data we mean known
facts that can be recorded and that have implicit meaning for example, consider, the names,
telephone numbers and addresses of the people you know. You may have recorded this data
in an indexed address, book, or you may have stored it on a diskette. Using a personal
computer and software such as DBASE IV or V, PARADOX, MS EXCEL OR MS
ACCESS. This is a collection of related data with an implicit meaning and hence is a
database.
A database is a logically coherent of with some inherent meaning.
A database represents some aspects of the real world. Sometimes called the mini-world or the
universe of discourse (UOD). Changes to the mini-world are reflected in the database.
A database is designed, built and populated with data for the specific people. It has an
intended group of users and some preconceived applications in which the users are interested.
A database can be of any size and of varying complexity. For example, the list of names and
addresses referred to earlier may consist of only a few hundred records, each with simple
structure. On the other hand the card catalog of a large library may contain half a million
cards stored under different categories by primary author’s last name, by subject, by book
title with each category organized in alphabetic order.
A database may be generated and maintained or by machine. The library card catalog is an
example of a database that may be created and maintained either by a group of application
programs written specially for that task or by a database management system.
A database management system (DBMS) is a collection of programs that enables users to
create and maintained a database. The DBMS is hence a general-purpose software system
that facilities tile processed of defining, constructing and manipulating database for various
applications. Defining a database involves specifying the data types, structures and
constraints for the data to be stored in the database. Constructing the database is the process
29
of storing the data itself on some storage medium that is controlled by the DBMS.
Manipulating a database includes such functions as querying the database to reflect changes
in the mini-world, and generating reports form the data.
With the advent of the graphical operating system like windows, the world of imputing went
through a dramatic change. It opened up a whole new world of graphics. Interfaces that use
graphics came to known so graphical user interface (GUI). These became very popular
because the users could identify with images than words. Mention tile word print to a person
and it invokes the image of a printer. The primary requirements for an interface are that it is
easy to use. We must be able react intuitively to an interface presented to us. This is possible
if the interface presented is such that is it emulates real life.
30
1
Output Design
Input Design
FileDesign
Processing Design
Detailed System
Documentation
TestPrograms
Design submitted to management for approval
Design accepted
2
Abandon project
Cost Justification
and Candidate
design
From Analysis
Yes
No
Fig-3.1 Steps in System Design
3.3 Architecture Diagram
Fig-3.2 Architecture Diagram
31
3.4 Dataflow Diagram
3.4 E-R Diagram
It is clear that the physical objects from the previous section – the member,
books and library – correspond to entities in the Entity-Relationship model, and
the operations to be done on those entities – holds, checkouts, and so on –
correspond to relationships. However, a good design will minimize redundancy
and attempt to store all the required information in as small a space as possible.
32
33
34
35
4.1 Books Table
Books table is used to store the books in the online library it has a field 'subject_id' which
work as a foreign key and relate it to the subject table.
4.2 Subjects Table
Subject table is used to store the subjects in the online library it has a reference in books
table.
36
4.3 Users Table
Users table is used to store the user’s login credential. It has 2 foreign keys which relate it to
privilege table and user_info table.
37
4.4 User_info Table
User info table is used to store the information about the user, his address, email etc. This
table also store no. of book issued by the user.
4.5 Privileges
Privileges table store is the privileges of different groups. It has a refence I user table that
connects both the table.
4.6 Books_user_info Table.
This table is used to connect books and user_info table as there is many-to-many relations in
these 2 tables so we have to make another table to connect them.
38
39
5.1 PLATFORM FOR THE PROJECT
ABOUT RUBY ON RAILS
History
Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a
project management tool by 37signals (now a web applicatio company). Hansson first
released Ruby on Rails as open source in July 2004, but did not share commit rights to the
project until February 2005. .
Ruby on Rails version 2.3 was released on March 15, 2009. Major new developments in
Ruby on Rails include templates, engines, Rack and nested model forms.
Templates enable the developer to generate a skeleton application with custom gems
and configurations.
Engines let one reuse application pieces complete with routes, view paths and models.
The Rack web server interface and Metal allow one to write optimized pieces of code
that route around ActionController.
On December 23, 2008, Merb, another web application framework was launched, and Ruby
on Rails announced a commitment to work together. The Ruby on Rails team announced
they would work with the Merb project to bring "the best ideas of Merb" into Ruby on Rails
3, ending the "unnecessary duplication" across both communities. Merb was merged with
Rails as part of the Rails 3.0 release.
Technical overview
Like many web frameworks, Ruby on Rails uses the Model-ViewController (MVC)
architecture pattern to organize application programming.
Ruby on Rails includes tools that make common development tasks easier "out of the box",
such as scaffolding that can automatically construct some of the models and views needed for
a basic website. Also included are Webrick, a simple Ruby web server that is distributed with
40
Ruby, andRake, a build system, distributed as a gem. Together with Ruby on Rails these
tools provide a basic development environment.
Ruby on Rails relies on a web server to run it. Mongrel was generally preferred over
WEBrick at the time of writing, but it can also be run by Apache and many others. From
2008 onwards, the Passenger web server replaced Mongrel as the most used web server for
Ruby on Rails.
Ruby on Rails is also noteworthy for its extensive use of theJavaScript libraries for Ajax.
Ruby on Rails initially utilized lightweight SOAP for web services.
Since version 2.0, Ruby on Rails by default offers both HTML and XML as output formats.
The latter is the facility for RESTful web services.
Framework structure
Ruby on Rails is separated into various packages, namely ActiveRecord, ActiveResource
(provides web services), ActionPack, ActiveSupport and ActionMailer. Prior to version 2.0,
Ruby on Rails also included the Action Web Service package that is now replaced by Active
Resource. Apart from standard packages, developers can make plugins to extend existing
packages.
Deployment
Ruby on Rails is often installed using RubyGems, a package manager which is included with
current versions of Ruby. Many Linux distributions also support installation of Ruby on Rails
and its dependencies through their native package management system, however, these
packages can often be outdated and unmaintained.
ABOUT My-SQL
MySQL is a Relational Database Management System (RDBMS) that runs as a server
providing multi-user access to a number of databases. It is named after developer
Michael Widenius' daughter, My. This is an open source software available and is
commonly used. The SQL phrase stands for Structured Query Language. SQL
41
statements are used to perform tasks such as update data on a database, or retrieve
data from a database.
SQL – Structured Query Language
Tables
In relational database systems data are represented using tables. A query
issued against the DBS also results in a table. A table has the following structure:
Column 1 Column 2 . . . Column n
A table is uniquely identified by its name and consists of rows that contain the stored
information,each row containing exactly one tuple (or record). A table can have one
or more columns.
A column is made up of a column name and a data type, and it describes an attribute
of the tuples. The structure of a table, also called relation schema, thus is defined by
its attributes.
The type of information to be stored in a table is defined by the data types of the
attributes
At table creation time. SQL uses the terms table, row, and column for relation, tuple,
and attribute, respectively.
A table can have up to 254 columns which may have different or same data types and
sets of values respectively. Possible domains are alphanumeric data , numbers and
date formats.
Oracle offers the following basic data types
42
char(n): Fixed-length character data , n characters long. The maximum size
for n is 255 bytes.
Example: char(40)
varchar2(n): Variable-length character string. The maximum size for n is
2000 . Only the bytes used for a string require storage.
Example: varchar2(80)
number(o, d): Numeric data type for integers and reals. o = overall number of
digits, d = number of digits to the right of the decimal point.
date: Date data type for storing date and time.
The default format for a date is: DD-MMM-YY.
Examples: ’13-OCT-94’
long: Character data up to a length of 2GB. Only one long column is allowed per
table.
Further properties of tables are:
the order in which tuples appear in a table is not relevant
.
a table has no duplicate tuples .
A database schema is a set of relation schemas. The extension of a database schema at
database run-time is called a database instance or database, for short.
43
Queries
In order to retrieve the information stored in the database, the SQL query language is used.
In SQL a query has the following form
select [distinct] <column(s)>
from <table>
[ where <condition> ]
[ order by <column(s) [asc|desc]> ]
Data Definition in SQL
Creating Tables
The SQL command for creating an empty table has the following form:
create table <table> (
<column 1> <data type> [not null] [unique] [<column constraint>],
. . . . . . . . .
<column n> <data type> [not null] [unique] [<column constraint>],
[<table constraint(s)>]
);
For each column, a name and a data type must be specified and the column name must be
unique within the table definition. Column definitions are separated by comma. There is no
difference between names in lower case letters and names in upper case letters. In fact, the
only place where upper and lower case letters matter are strings comparisons. A not null
constraint is directly specified after the data type of the column and the constraint requires
defined attribute values for that column, different from null.
The keyword unique specifies that no two tuples can have the same attribute value for
thiscolumn. Unless the condition not null is also specified for this column, the attribute value
null is allowed and two tuples having the attribute value null for this column do not violate
the constraint.
44
Example: The create table statement for our EMP table has the form
create table EMP (
EMPNO number(4) not null,
ENAME varchar2(30) not null,
JOB varchar2(10),
MGR number(4),
HIREDATE date,
SAL number(7,2),
DEPTNO number(2)
);
CONSTRAINTS
The definition of a table may include the specification of integrity constraints. Basically two
types of constraints are provided: column constraints are associated with a single column
whereas table constraints are typically associated with more than one column. However, any
column constraint can also be formulated as a table constraint.
The specification of a (simple) constraint has the following form:
[constraint <name>] primary key | unique | not null
A constraint can be named. It is advisable to name a constraint in order to get more
meaningful information when this constraint is violate.
Probably the most important type of integrity constraints in a database are primary key
constraints.
A primary key constraint enables a unique identification of each tuple in a table.
Based on a primary key, the database system ensures that no duplicates appear in a table.
the start date and end date of the project. Furthermore, we have the following conditions:
- a project is identified by its project number,
45
- the name of a project must be unique,
- the manager and the budget must be defined.
5.2 SNAPSHOTS
5.2.1 Index Page (Login)
46
5.2.2 Home Page
End-user:
47
Librarian:
Librarian has an extra-menu item ‘Library Task’ in Upper menu bar.
48
Admin:
Admin has an extra menu-item ‘Admin Task’ in the Upper menu bar.
49
5.2.3 Navigation Bar
There is a navigation bar at both right and left side of every page.
Lower navigation bar shows subject list.
Upper navigation bar shows the menus like home and different tasks for different users-levels etc.
Admin:
Admin is the highest level, thus have highest and every privileges. He can perform admin tasks, library task and account tasks as well. Home is linked to the Homepage.
Under Admin Task menu there are sub-menus.
Add User: Admin can add new users with all privileges. Users can only be added by admin. There is no signup stuff.
User List: Admin can view the user list. He can add or remove them as well.
Librarian:
Librarian is a user level that manages the books stuff. He can add books and remove them. He can add subjects list as well. These tasks can be performed by Admin as well as he is the highest privileged.
50
Under the librarian tasks, there are email facility, subject list and receive back the issued book sub-menus. He can send emails to the users regarding availability, return date and all.
End-User:
End-Users are lowest privileged users. They can just view the books and subjects, request for issuing a book. They can change their password and can do account related stuff. All the tasks those an end-user can perform, can be performed by librarian as well as admin.
Under the Account menu, we can change personal information, change password. And there is a link to logout from current account. Other menu item is Help. This is linked to the help page.
51
5.2.4 Book Details page
On clicking the name of the book it will redirect to book detail page.
Details of a particular book are displayed here. There are four links name of subject (will redirect to subject details page), Back (return to book-list), Edit and Delete.
5.2.5 Issued Book listing page
Content of the Issued Book listing page is as below.
52
5.2.6 Pagination
There is the facility for pagination if the content is more than the page, the pagination link
will show up.
5.2.7 Search facility
There is the search facility in every listing page. So that user can search bu name of book or
subjects.
Result of the above search
53
5.2.8 List of books in a subject
This page displays the available books under a particular subject. In the following figure the books under Ruby On Rails subjects are listed with appropriate actions.
5.2.9 List of Subjects
Displays the list of available subjects in the library.
54
5.2.10 Add or Edit a book
55
5.2.11 Add new Subject
5.2.12 Add User Form
56
5.2.13 Change Password
5.2.14 Edit Personal Info
57
5.2.15 Send Email
58
59
6.1 Testing
“Testing is the process of executing a program with the intent of finding errors.”
Who should Do the Testing ?
Testing requires the developers to find errors from their software.
It is difficult for software developer to point out errors from own creations.
Many organizations have made a distinction between development and testing phase by
making different people responsible for each phase.
Testing Tools
One way to improve the quality & quantity of testing is to make the process as pleasant
as possible for the tester. This means that tools should be as concise, powerful & natural
as possible.
The two broad categories of software testing tools are:
Static
Dynamic
60
Information Flow of Data for Testing
Fig-5.1 Flow of Data for Testing
Testing Methods
61
Testing
Debug
Reliability
Model
EvaluationTest Results
Software Configuration
Test Configuration
Expected Results
Correction
s
Error RateData
Predicted Reliabil i ty
The box approach: Software testing methods are traditionally divided into white- and
black-box testing. These two approaches are used to describe the point of view that a test
engineer takes when designing test cases.
White box testing
White box testing is when the tester has access to the internal data structures and
algorithms including the code that implement these.
Types of white box testing
The following types of white box testing exist:
API testing (application programming interface) - testing of the application
using public and private APIs
Code coverage - creating tests to satisfy some criteria of code coverage (e.g.,
the test designer can create tests to cause all statements in the program to be
executed at least once)
Fault injection methods - improving the coverage of a test by introducing
faults to test code paths
Mutation testing methods
Static testing - White box testing includes all static testing
Test coverage
White box testing methods can also be used to evaluate the completeness of a test
suite that was created with black box testing methods. This allows the software team
to examine parts of a system that are rarely tested and ensures that the most important
function points have been tested.
Two common forms of code coverage are:
Function coverage, which reports on functions executed
62
Statement coverage, which reports on the number of lines executed to
complete the test
They both return a code coverage metric, measured as a percentage.
Black box testing
Black box testing treats the software as a "black box"—without any knowledge of internal
implementation. Black box testing methods include: equivalence partitioning, boundary
value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix,
exploratory testing and specification-based testing.
Specification-based testing: Specification-based testing aims to test the functionality of
software according to the applicable requirements.Thus, the tester inputs data into, and only
sees the output from, the test object. This level of testing usually requires thorough test cases
to be provided to the tester, who then can simply verify that for a given input, the output
value (or behavior), either "is" or "is not" the same as the expected value specified in the test
case.
Specification-based testing is necessary, but it is insufficient to guard against certain risks.
Advantages and disadvantages: The black box tester has no "bonds" with the code, and a
tester's perception is very simple: a code must have bugs. Using the principle, "Ask and you
shall receive," black box testers find bugs where programmers do not. On the other hand,
black box testing has been said to be "like a walk in a dark labyrinth without a flashlight,"
because the tester doesn't know how the software being tested was actually constructed. As a
result, there are situations when (1) a tester writes many test cases to check something that
could have been tested by only one test case, and/or (2) some parts of the back-end are not
tested at all.
Therefore, black box testing has the advantage of "an unaffiliated opinion", on the one hand,
and the disadvantage of "blind exploring", on the other.
63
Grey box testing
Grey box testing involves having knowledge of internal data structures and algorithms for
purposes of designing the test cases, but testing at the user, or black-box level. Manipulating
input data and formatting output do not qualify as grey box, because the input and output are
clearly outside of the "black-box" that we are calling the system under test. This distinction is
particularly important when conducting integration testing between two modules of code
written by two different developers, where only the interfaces are exposed for test. However,
modifying a data repository does qualify as grey box, as the user would not normally be able
to change the data outside of the system under test. Grey box testing may also include reverse
engineering to determine, for instance, boundary values or error messages.
6.2 Device Application Testing
Device application (DevApp) testing is a collection of related activities with a single goal: to
uncover errors in DevApp content, function, usability, navigability, performance, capacity,
and security. To accomplish this, a testing strategy that encompasses both reviews and
executable testing is applied throughout the Web engineering process. If end users encounter
errors that shake their faith in the DevApp, they will go elsewhere for the content and
function they need, and the DevApp will fail. For this reason as many errors as possible must
be eliminated before the DevApp goes online.
The DevApp testing process begins by focusing on user-visible aspects of the
DevApp and proceeds to tests that exercise technology and infrastructure. In some instances
a DevApp test plan is produced. In every instance, a suite of test cases is developed for every
testing step and an archive of test results is maintained for future use.
Quality is incorporated into a web application as a consequence of good design. In our
project as well, the following quality dimensions have always been the cap stones in the
development process:
Content is evaluated at both the syntactic and semantic level.
64
Function is tested to uncover errors that indicate lack of conformance to customer
requirements.
Structure is assessed to ensure that it properly delivers content and function, that it is
extensible, and that it can be supported as new content or functionality is added.
Usability is tested to ensure that each category of user is supported by the interface.
Navigability is tested to ensure that all navigational syntax and semantics are
exercised to uncover any navigational errors.
Performance is tested under a variety of operating conditions to ensure that the
system is responsive to user interaction and operates without unacceptable
operational degradation in contingency situations.
Compatibility is tested by executing the web application in a variety of different hosts
on both the client and server sides.
Interoperability is tested to ensure that the DevApp properly interfaces with other
applications and/or databases.
Security is tested by assessing potential vulnerabilities and attempting to exploit
each.
65
BIBLIOGRAPHY
Books
ROR up and running by Curt Hibbs
Agile web development by Rails by David Heinimeire Hansson.
Simply Rails 2 by David Heinimeire Hansson.
Beginning with ROR by Peter Cooper
References
www.w3schools.com
www.tutorialspoint.com
66