You are on page 1of 38

Team: Paladins

Project: Numero
Uno

Final Report

Karthikeyan, S

Keerthivasan, M

Gopalakrishna, D

Sabarish, K
Contents
Title Page No.

Introduction 3

Situation 3

Solution 3

Benefits 4

Solution Overview 4

Features and Specifications 6

Assumptions/Risk assessment 6

Functional Specification 6

Roles 7

Architecture Diagram 9

Use Case Diagram 10

Class Diagram 11

Database Design 14

Workflow Diagram 15

Entity Relationship Diagram 18

Screenshots 19

Sample Code 33

Page | 2
Introduction

Situation
Gone are the days when the librarian had to have his library log updated
manually with help of his assistants. The tedious process of updating the log,
manually, after every transaction is dying out in most of the libraries. This is with
the advent of computerization in this field too.

Then came spreadsheets which used to run for pages. Even then it was the
duty of the librarian/administrator to enter all details manually in the
spreadsheet. She/he had to keep track of all items in the library and update the
corresponding records. The person borrowing the book had to get his verification
card and get it updated every time he borrows/returns an item from/to library.
Even this work of verifying the person and updating the card falls on the librarian
or his assistant. Every now and then the librarian has to keep track of all the
books and other items by checking the stocks (i.e. stocking).

Searching books have been a tough job for the users, as they have to spot it in
the library catalogue which runs for hundreds of pages. Accuracy of the librarians
also plays an important role. Users can request for books in person only. Libraries
are looking forward for a solution which is accurate and is highly powerful.

Solution
This solution is developed using .NET technology which improves the accuracy
of the information by leaps and bounds. This solution helps the administrator
accomplish his tasks at ease. This solution is an online library management
system which lets users sign-up to the library initially and then sign-in every time
they want to find some item in the library. The user can also maintain and edit
his profile details.

It also lets administrators manage the library from their desktop. They can
monitor any item, its stock and other related information. A user can sign-in and
search for items, borrow or reserve items if they are present in the library. If not,
user can request the librarian/administrator to get the book by furnishing all the
details. As soon as a user reserves a book the library database gets updated
automatically. This improves accuracy and leaves no user fooled about the status
of availability of an item. All details of the user are stored in the database which
eases pressure on the administrator about defaulters. Defaulters can be
blocked/removed from the library, by the administrator.

The user need not visit the library every time to find an item; instead he/she
can search items from his/her own PC/laptop. Reports can also be generated for
individual items or for number of defaulters and the number of transactions for
an item or by a user. They can also be generated in graphical form.

Page | 3
An advantage of this solution is that a web browser which supports .net
framework is enough to view the user interface. This interface can be seen in any
such system and hence makes it portable too.

Benefits

 Accurate Information around the clock

Information about the library database is accurate at any given point of


time since its all automatic and updated after every transaction.

 Ease of access

Users can find items, reserve book, change profile details, etc., from their
homes as the library’s transactions are online.

 Maintenance is easy

Managing the database is easy and so is its maintenance. It does not


require much of care and goes on until it isn’t affected due to heavy
trafficking.

 Sorting of data

Data is stored in different databases and sorted into different tables to


differentiate content and it can easily converted into reports for
presentations.

 Portable solution

A browser which supports .net framework is enough to view the user


interface. This does not require separate installation process in every
system hence making it portable.

Solution Overview
Vision Statement
The vision is to provide an efficient online library management system. Online
search enables users from all over the world to search for books in the library.
This allows members of the library to carry out transactions online. It also
enables administrator/librarians to monitor transactions in the library.

Scope
Scope for the library management system is an improvised search algorithm.
Real-time searching algorithms can also be implemented to improve the
functionality of the search. ISBN number can be used to search book details

Page | 4
online and retrieve it for the user. All these can be done to make the existing
solution better.

Objectives
Objective of the project is to create a library management system which sorts
the administrators, staffs and students separately. It empowers each with
different levels of privileges. Users and administrators are allowed to search and
lend/take books from the library. It also sorts the items in the library and lets
administrator to monitor items/members and also generate graphical reports for
them. Administrator can also send reminders to the defaulters or can even deny
membership to them.

Budget
Budget would include initial setup of the server that would include a system as a
server and one system for browsing/searching the library. Using many more
systems for browsing may affect the budget of the solution implementer.

Technologies Used
• C#
• ASP.NET 2.0
• Visual Web Developer Express Edition
• SQL Server 2005 Express edition
• Windows XP Professional Edition
All the above listed softwares are either freeware or trial version software.
Certain features which these lacks may be successfully executed using a
licensed version of the same set of softwares. Hence this affects the
budget of a solution developer.

Overview of Solution
The users and administrators can create their accounts based on different
privileges. They can lend borrow books and CDs in library based on their
privileges. Users can also reserve books and CDs present in the library and also
request for those not present. Administrator sorts, edits the items in the library.
By using this solution, managing/maintaining the server becomes easy. The
interface provides more information and saves time. This is much more accurate
than a librarian updating the fields manually. The database is updated after
every transaction and leaves no user fooled about the status of availability of an
item.

Milestones
• Analysing solutions and finding possible entities.

• Designing the user interface.

• Prototyping the project.

• Creating data base tables and establishing relationships with the user
interface.
Page | 5
• Code the user authentications, search algorithms and other special
features.

• Testing the solution and bettering it.

• Implementing the solution and also documenting it.

Features and Services


Features of the library management are as follows

Registration - Allows users to sign up for accessing the library.

Managing the library – Allows administrators to update view/edit/delete


book/CD details and also categorise them into different categories based on
type.

Search facility – Users including the administrators can search books and CDs
using different types of search like simple and advanced search. Administrator
can also search members.

Request for books – Users can request for books/CDs if they do not get proper
search results. If they are not present in the library they can request the
administrator to get one.

Transactions – Users can carry out transactions online like reserving, borrowing,
returning items. Users can also request for extension of time.

Notifications – Administrator can send e-mail notifications to defaulters.

Report Generation – Administrator can generate reports on items and their


history of transactions. A report on defaulters can also be generated. Graphical
representation is possible.

Monitor members – Administrator can monitor members too and also view
details or can even deny membership to defaulters.

Assumptions/Risk Assessment
Assumptions support the base of the solution. Assumptions include

 Library houses a certain minimum number of copies of the same book for
sake of many borrowers.

 Library uses original books/CDs.

 Library does not advise users to copy CDs/DVDs onto their computers.

 Library restricts the maximum number of borrowable items for different


users.

 Library server runs a version of Windows operating system.

Page | 6
 Client systems support .NET Framework.

 User has basic computer knowledge and knows how to search/find


information in the internet.

 User has a decent internet speed to run the online solution.

Functional Specification
Initially when the solution is host in the server, administrator accounts are setup.
These administrators manage the server. First time users can carry on with
simple search but those who want to borrow books need to sign-up for this
facility. They can then sign-in anytime for searching, borrowing or returning
books. They can also view their profile pages, history of their transactions

Infrastructure
Infrastructure plays an important role in this type of server-client computing.
Both server and client require a minimum amount of configuration to run the
implementation.

• Server/Solution Platform
Server must run a WINDOWS OS which supports IIS so that the website can be
deployed. The server must also be capable of running Visual web developer and
SQL Server for database management.

• Client Platform
Client system must run a windows operating system. It must run browsers which
support .NET framework like Internet Explorer or Mozilla Firefox.

Roles
New user

• A new user can be any person from the institution willing to be a member
of the library.

• New user can have a tour of the library before enrolling his/her name in
the library.

• New user can then sign up for using the facility.

• New user is expected to be a member of the institution before joining the


institution’s library.

• New user has to fill all the required fields in the sign-up process.

• A confirmation is sent from the administrator after which the user can
sign-in to view or borrow items.

Page | 7
Member

• Member is a person who has signed-up and has received confirmation mail
from the administrator.

• Member has to sign-in every time to access the library.

• Member can view the new arrivals from every branch of study.

• Member can browse the library based on the different sections.

• Member can borrow items if they are available in the shelves.

• Member can reserve items which have been issued to others.

• Member can also look at the item details.

• Member can request for items which aren’t present in the library.

• Member can view his/her profile and change password if necessary.

• Member can view his transaction details and fines he/she has to pay.

• Member can search items using either simple search or using advanced
search technique.

• Member can retrieve his/her password anytime in case he/she forgets it.

• The security question feature increases security for an individual’s


account. This is used for password retrieval.

• Member can post his comments either good or bad to the administrator.

• Member can cancel membership anytime by deleting their account from


the profile page but the user is prompted for confirmation.

Administrator

• Administrator is a person who manages and supervises the functioning of


the library.

• Administrator creates his/her account during the initial setup of the


solution.

• Administrator has to sign in like the user to access the library.

• Administrator can search for items or even members.

• He/she can view the item and member details.

• He/she can view the profile and make changes to it if necessary.

• He/she can change the password by entering the answer for the security
question.

Page | 8
• Administrator can add/delete members.

• Administrator can generate reports for defaulters, items etc.

• Administrator can mail reminders to defaulters and even block them for
not paying the dues on time.

• Administrator can view transaction details of individuals and items


separately.

• Administrator can add, update, and delete items in the library.

• Administrator can view user requests as well as comments posted by


them.

Page | 9
System Architecture

Page | 10
Page | 11
Page | 12
Page | 13
Page | 14
Page | 15
Page | 16
Page | 17
Page | 18
Screenshots
Page | 19
The following screenshots show the various process involved in this library management
solution. They include creation of account, sign-in process, profile views, transaction
details, and delete account.

Start Page:

Create Account:

Step 1:

Step 2:
Page | 20
Step 3:

Step 4:

Page | 21
Member Profile Page:

Member Profile Edit:

Page | 22
Member Change Password:

Step 1:

Step 2:

Page | 23
Step 3:

Step 4:

Page | 24
Step 5:

Forgot Password:

Page | 25
Steps 1, 2, 3 in Forgot password are similar to the first three in the Change Password
Procedure. Hence the pictures are not included.

Step 4:

Member Request:

Transaction Details:
Page | 26
Issued:

Reserved:

Returned:

Page | 27
Simple Search:

Advanced Search:

Page | 28
Contact US:

Step 1:

Step 2:

Page | 29
Step 3:

Step 4:

Page | 30
Member Delete Account:

Step 1:

Step 2:

Page | 31
Administrator
The administrator has to follow similar procedures for sign-up, sign-in, profile
view/edit and change password. Hence repetition is avoided.

Administrator has certain extra privileges for which screenshots are added.

Administrator Member Search:

Administrator Item Search:

Page | 32
Administrator Comments:

Sorry Page:

Page | 33
Sample Code:
Forgot Password:
using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using System.Net.Mail;

public partial class Forgotpassword : System.Web.UI.Page

string reg, firstname, lastname;

protected void Page_Load(object sender, EventArgs e)

if (IsPostBack)

val();

protected void val()

SqlConnection cnn;

Page | 34
SqlCommand cmd,cmd1,cmd2,cmd5;

ConnectionStringSettings set;

set = ConfigurationManager.ConnectionStrings["signupstudentConnectionString1"];

string cns = set.ConnectionString;

cnn = new SqlConnection(cns);

cmd = new SqlCommand(" SELECT firstname FROM [studentdetails] WHERE ([regnumb] = @regnumb)", cnn);

cmd.Parameters.AddWithValue("@regnumb", vregno.Text);

cmd1 = new SqlCommand(" SELECT lastname FROM [studentdetails] WHERE ([regnumb] = @regnumb)", cnn);

cmd1.Parameters.AddWithValue("@regnumb", vregno.Text);

cmd2 = new SqlCommand(" SELECT squestion FROM [studentdetails] WHERE ([regnumb] = @regnumb)", cnn);

cmd2.Parameters.AddWithValue("@regnumb", vregno.Text);

cmd5 = new SqlCommand(" SELECT sanswer FROM [studentdetails] WHERE ([regnumb] = @regnumb)", cnn);

cmd5.Parameters.AddWithValue("@regnumb", vregno.Text);

cnn.Open();

firstname = cmd.ExecuteScalar().ToString();

lastname = cmd1.ExecuteScalar().ToString();

string squestion = cmd2.ExecuteScalar().ToString();

string sanswr = cmd5.ExecuteScalar().ToString();

cnn.Close();

txtsanswercompare.Text = sanswr;

reg = lblregn.Text;

lblregn.Text = vregno.Text;

lblname.Text = firstname + " " + lastname;

lblsquestion.Text = squestion;

protected void Wizard1_FinishButtonClick1(object sender, WizardNavigationEventArgs e)

SqlConnection cnn;

SqlCommand cmd3, cmd4;

ConnectionStringSettings set;

set = ConfigurationManager.ConnectionStrings["signupstudentConnectionString1"];

string cns = set.ConnectionString;

cnn = new SqlConnection(cns);

cmd3 = new SqlCommand(" SELECT email FROM [studentdetails] WHERE ([regnumb] = @regnumb)", cnn);

cmd3.Parameters.AddWithValue("@regnumb", vregno.Text);

cmd4 = new SqlCommand(" SELECT password FROM [studentdetails] WHERE ([regnumb] = @regnumb)", cnn);

cmd4.Parameters.AddWithValue("@regnumb", vregno.Text);

cnn.Open();

string emailto = cmd3.ExecuteScalar().ToString();

string password = cmd4.ExecuteScalar().ToString();

cnn.Close();

string body = " Below is the details of your account with the password you requested.\n" + "\n Name :" + firstname + " " +

lastname + "\nRegister No: " + reg + "\n password :" + password;

SendMail(emailto, password);

private void SendMail(string to, string body)

Page | 35
string mailServerName = "SMTP.google.com";

MailMessage message = new MailMessage("makk.ripper@gmail.com", to, "password recovery", body);

SmtpClient mailClient = new SmtpClient();

mailClient.Host = mailServerName;

mailClient.Send(message);

message.Dispose();

Signup :

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class signup : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{

}
protected void question_TextChanged(object sender, EventArgs e)
{

protected void RadioButton2_CheckedChanged(object sender, EventArgs e)


{

}
protected void btncancel_Click(object sender, EventArgs e)
{

}
protected void TextBox2_TextChanged(object sender, EventArgs e)
{

}
protected void dpt1_SelectedIndexChanged(object sender, EventArgs e)
{
if (coursetxt.SelectedValue.ToString() == "mba" || coursetxt.SelectedValue.ToString() ==
"mca" || coursetxt.SelectedValue.ToString() == "mtech" )
{
ugyear.Items.Clear();
ugyear.Items.Add("I Year");
ugyear.Items.Add("II Year");
branchddl.SelectedIndex = 15;

}
else

Page | 36
{
ugyear.Items.Clear();
ugyear.Items.Add("Freshman(I)");
ugyear.Items.Add("Sophomore(II)");
ugyear.Items.Add("Junior(III)");
ugyear.Items.Add("Senior(IV)");

}
}
protected void btnsubmit_Click(object sender, EventArgs e)
{
//SqlDataSource signupstudent = new SqlDataSource();
// signupstudent.ConnectionString =
ConfigurationManager.ConnectionStrings["signupstudentConnectionString1"].ToString();
//dashDataSource.InsertCommandType = SqlDataSourceCommandType.Text;
//dashDataSource.InsertCommand = "INSERT INTO
Email(EmailAddress,IPAddress,DateTimeStamp) VALUES(@EmailAddress,
@IPAddress,@DateTimeStamp)";

SqlDataSource studentdetails = new SqlDataSource();


studentdetails.ConnectionString =
ConfigurationManager.ConnectionStrings["signupstudentConnectionString1"].ToString();

// signupstudent.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
// signupstudent.InsertCommand = "signupstudents2";

studentdetails.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
studentdetails.InsertCommand = "studentdetails2";

studentdetails.InsertParameters.Add("regnumb", regno.Text);
studentdetails.InsertParameters.Add("password", password.Text);
studentdetails.InsertParameters.Add("email", Emailtxt.Text);
studentdetails.InsertParameters.Add("squestion", squestion.Text);
studentdetails.InsertParameters.Add("sanswer", sanswer.Text);

// studentdetails.InsertParameters.Add("regno", regno.Text);
studentdetails.InsertParameters.Add("firstname", firstnametxt.Text);
studentdetails.InsertParameters.Add("lastname", lastnametxt.Text);
studentdetails.InsertParameters.Add("dob", DOBtextbox.Text);
studentdetails.InsertParameters.Add("sex", sexrdbn.SelectedValue);
studentdetails.InsertParameters.Add("course", coursetxt.SelectedValue);
studentdetails.InsertParameters.Add("yearr", ugyear.SelectedValue);
//studentdetails.InsertParameters.Add("yearr", pgyear.SelectedItem.Value);
studentdetails.InsertParameters.Add("branch", branchddl.SelectedValue);
studentdetails.InsertParameters.Add("address", addresstxt.Text);
studentdetails.InsertParameters.Add("pincode", pincodetxt.Text);
studentdetails.InsertParameters.Add("contactno", ctnotextbox.Text);

//dashDataSource.InsertParameters.Add("DateTimeStamp", System.DateTime.Now()); int


rowsAffected = 0;
int rowsAffected = 0;//,rowsAffected2 = 0;
try
{

// rowsAffected2 = signupstudent.Insert();
rowsAffected = studentdetails.Insert();
Page | 37
}
catch (Exception ex)
{
//TODO: Probably would want to write to the Window error log
Server.Transfer("problem.aspx");
}
finally
{
studentdetails = null;
}
if (rowsAffected != 1 )//&& rowsAffected2 != 1 )
{

Server.Transfer("~/problem.aspx");
}
else
{
Session["logged"] = "in";
Session["firstname"] = firstnametxt.Text;
Server.Transfer("~/Signupsuccess.aspx");
}

//Response.Redirect("~/Signupsuccess.aspx");

}
}

Page | 38