Library Management System

This web application is used to handle typical operations in a library system.

This application is developed for librarians. Issuing book, returning book, adding member, and searching for books are some of the major operations of this application.

Technologies and Products used

File Structure

The following is the directory structure of this application.
exam
 |- App_Data
 |    |-Database.mdf
 |- App_Code
 |    |-Database.cs
 |- App_Themes
 |    |-style.css
 |- all
 |    |-LibraryService.asmx
 |- photos (this directory contains .jpg files of members)
 |- default.aspx
 |- login.aspx
 |- addtitle.aspx
 |- addmember.aspx
 |- Masterpage.master
 |- memberinfo.aspx
 |- members.aspx
 |- changepassword.aspx
 |- deletemember.aspx
 |- issue.aspx
 |- returnbook.aspx
 |- memberslist.aspx
 |- searchbooks.aspx
 |- web.config
 |- web.sitemap
 |- updatemembers.aspx
 |- logout.aspx

Operations and related files

The following table lists operations and associated objects and files.

Operation Files
Login login.aspx
Logout logout.aspx
Delete Member deletemember.aspx
Master page of all Masterpage.master
Home Page Default.aspx
Change password changepassword.aspx
Add Title addtitle.aspx
Add Member addmember.aspx
Iseue of book issue.aspx
Return of book returnbook.aspx
Search books searchbooks.aspx
Update Members updatemembers.aspx
Member Information memberinfo.aspx
List of books books.aspx

Structure of Tables

USERS Table

uname - varchar(10)
pwd - varchar(10)
fullname - varchar(30)

SUBJECTS Table

subcode - varchar(10)
subname - varchar(30)
di - datetime

MEMBERS Table

mid - int
mname -	varchar(30)
depositamt - int
djoin - datetime
email -	varchar(40)
occupation - varchar(50)

TITLES Table


tid - int
title -	varchar(30)
subcode - varchar(10)
authors - varchar(50)
price -	int
dp - datetime
publishers - varchar(30)
status - char(1)

ISSUES Table

tid - int
mid - int
di - datetime
issuedby - varchar(10)

RETURNS Table

tid - int
mid - int
di - datetime
dr - datetime
issuedby - varchar(10)
returnedto - varchar(10)
fineamt - int

Steps to download, deploy and run this project

The following are the steps to related to be taken to run the existing part of the application :

  1. Download lm.zip and unzip it into any directory in your system. (For example if you extract to d:\ then it will create a directory lm in d:\.
  2. Open Visual Web Developer 2005 Express Edition.
  3. Open the project from the directory into which you extracted project.For example, d:\lm
  4. Add SQL Database file to your project and create necessary tables as shown above.
  5. Create issuebook and returnbook procedures as shown below.
    ALTER PROCEDURE IssueBook
    	(
    	@tid int,
    	@mid int,
    	@di  datetime,
    	@issuedby varchar(10)
    	)
    AS
    declare @nbooks int
    /* check titles availablity */
    
    if  not exists( select * from titles where tid = @tid and status  = 'a')
     begin
       raiserror('Title is not present or not available',15,1)
       return
     end
    
    /* check members availablity */
    if  not exists (select * from members where mid = @mid )
      begin
       raiserror('Invalid member id!',15,1)
       return
     end
    
    
    
    ALTER PROCEDURE ReturnBook
    	(
    	@tid int,
    	@dr datetime,
    	@user  varchar(10)
    	)
    AS
    declare @fine int
    declare @mid int
    declare @issuedby varchar(10)
    declare @di datetime
    
    
    /* check tid is valid */
    if not exists (select * from issues where tid = @tid)
      begin
        raiserror('Title is not in the issued titles!',15,1)
        return
      end
    
    /* calculate fine */
    select  @fine=case
              when datediff(dd,di,getdate()) > 15 then datediff(dd,di,getdate())-15
              else 0
             end
    from issues where tid = @tid;
    
    select @mid = mid, @di = di, @issuedby=issuedby
    from issues where tid = @tid;
    
    /* insert a row into returns */
    
    begin tran
    insert into returns
      values(@tid,@mid,@di,@dr,@issuedby,@user,@fine);
    
    delete from issues where tid = @tid;
    
    update titles set status ='a'
    where tid = @tid
    
    commit tran
    
    
  6. Goto Solution Explorer and make default.aspx the startup page.
  7. Run project from VWD 2005 Express Edition.
  8. You should see login.aspx page.