Project Report Format

Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

TABLE OF CONTENTS [ T O C ]

S. No. DESCRIPTION PAGE NO

01 OBJECTIVES OF THE PROJECT

02 HARDWARE AND SOFTWARE REQUIREMENTS.

03 INTRODUCTION

04 FRONT END & BACK END SOFTWARE USED

05 PROBLEM WITH EXISTING SYSTEM.

06 DESCRIPTION OF THE PROPOSED SYSTEM.

07 FEASIBILITY STUDY

08 INFORMATION GATHERING

09 SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)

10 LIST OF DATABASE AND TABLES USED

11 CODING AND TESTING

12 TESTING TECHNIQUES

13 USER MANUAL

14 SCOPE OF FUTURE ENHANCEMENT

15 CONCLUSION

16 BIBLIOGRAPHY

1
OBJECTIVES OF THE PROJECT

Objective of the project


The objective is to create application software which cans mange
all about the customers currently working in bank in order
relative them from their manual accounting system.

The various reasons which led to the conversion of the manual


system of the bank to the computerized system are as follows:-
 Entry of information in various registers was a very hectic
job for the customer.
 The entry of information causing error in entering details
of customer.
 Even the redundancy of the record was also found through
they had taken certain precautions like entering the
information with the pencil, leaving the space for making
the entry in future, if not possibly confirmed about the
details.
 The error prone details causing the making in the other
related registers, which might some problem while producing
reports.
 Even a lot of times begin spent on the entering of details
after crosschecking details from various registers.
 Then the security of these registers being a major problem.
Even a single page should not be teased. The n it should
not get into the hand of some unauthorized person.
 And last but not least, because it is vary calculation
oriented and computerized system can be used for given
current result always.
The proposed bank Account system will make current manual system
easy to monitor, efficient and almost error free.

2
HARDWARE & SOFTWARE REQUIREMENT

(A) HARDWARE REQUIREMENT-


An Intel based central processing unit capable of running any
sort of windows operating system such as Pentium based
workstation.
 PROCESSOR :
PENTIUM 3 / 4 / CORE 2 DUO / DUAL CORE / PENTIUM / I3 /
I5 / I7
 MOTHERBOARD :
1.845 OR 915,995 FOR PENTIUM 0R MSI K9MM-V VIA
8M800+8237R PLUS
CHIPSET FOR AMD ATHALON
 RAM : 512 MB+
 Hard disk : SATA 40 GB OR ABOVE
 CD / DVD r / w drive : (If back up required)
 FLOPPY DRIVE 1.44 MB : (If Backup required)
 MONITOR : 14.1 or 15 -17 inch
 Key board and mouse
 Printer : required

(B) SOFTWARE REQUIREMENT-


The software requirements are as follows.

 OPERATING SYSTEM : WINDOWS 7 AND ABOVE


 Python : Python 3.6 (32-bit) AND ABOVE
with related libraries used of Data Analysis
o Pandas
o Numpy
o Matplotlib
o MySQL
 MySQL : MySQL Server 5.1 AND ABOVE
 MS-Office : 7 AND ABOVE

3
INTRODUCTION

bank account system involves maintaining of account related

information. This requires grater accuracy, speed that is why the

proposed system is the computerization of the existing system.

The computerization system does the job monitoring the record in

easy and effective manner as stated below:

 Efficiently handles customer, account related data.

 Monitor transaction and makes related information.

 Keeps records of customer account detail and other

information.

 Generates reports.

Account system involved maintaining data related different

customer and his transaction. This required greater accuracy,

speed that is why the proposed system is the computerization of

the existing system. The computerized system does the job of the

monitoring the information easy and effective manner.

4
Front-End and Back-End Used

PYTHON MYSQL

Front End Back End


Interface visible to the user (Database)
Front-End: -

Front-End is the development environment where we write the

program code to develop the interface so that the user can

communicate with the system. I have taken Python to develop the

project. Using IDLE programs were developed and tested.

5
PYTHON

❖ WHAT IS PYTHON?

Python is an interpreted, object-oriented, high-level programming

language with dynamic semantics. Its high-level built in data

structures, combined with dynamic typing and dynamic binding;

make it very attractive for Rapid Application Development, as

well as for use as a scripting or glue language to connect

existing components together. Python's simple, easy to learn

syntax emphasizes readability and therefore reduces the cost of

program maintenance. Python supports modules and packages, which

encourages program modularity and code reuse. The Python

interpreter and the extensive standard library are available in

source or binary form without charge for all major platforms, and

can be freely distributed.

Often, programmers fall in love with Python because of the

increased productivity it provides. Debugging Python programs is

easy: a bug or bad input will never cause a segmentation fault.

Instead, when the interpreter discovers an error, it raises an

exception. A source level debugger allows inspection of local and

global variables, evaluation of arbitrary expressions, setting

6
breakpoints, stepping through the code a line at a time, and so

on. The debugger is written in Python itself, testifying to

Python's introspective power. On the other hand, often the

quickest way to debug a program is to add a few print statements

to the source: the fast edit-test-debug cycle makes this simple

approach very effective.

Why Python?

• Easy to read, learn and write ; it has English like syntax

• Improved productivity

• Interpreted language

• Dynamically typed

• Free and open source

• Vast libraries support, portability

7
Back-End: -

Back-End refers to the database which is working in behind

of front-end. It is used to store data. I have taken MYSQL as

Back-End to store my data of Bank.

Both software used for developing project work is specified

by CBSE and freely available as free and open source.

MYSQL

❖ WHAT IS MySQL?

MySQL is a relational DBMS that can run virtually all platforms,

including Linux, Unix and Windows. Popular for web-based

applications and online publishing, MySQL is a part of open-

source enterprise stack LAMP (Linux, Apache, MySQL, PHP).

MySQL is a freely available open source RDBMS that uses

Structured Query Language (SQL). It is down-loadable from site

www.mysql.org MySQL is fast, reliable, scalable alternative to

many of the commercial RDBMs available today. MySQL provides you

with a rich set of features that support a secure environment for

storing, maintaining, and accessing data. MySQL was created and

8
supported by MySQL AB, a company based in Sweden. This company is

now a subsidiary of Sun Microsystems, which holds the copyright

to most of the codebase. On April 20th, 2009 Oracle Corp., which

develops and sells the proprietary Oracle database, announced a

deal to acquire Sun Microsystems.

SQL provides many different types of commands used for different

purposes. SQL commands can be divided into following categories:

 Data Definition Language (DDL)

 Data Manipulation Language (DML)

 Transaction Control Language (TCL)

 Session Control Commands

 System Control Commands

Why MYSQL?

 Data security

 On-Demand Scalability

 High Performance

 Round the clock uptime

 Comprehensive transactional support

 Complete workflow control

 Reduced total cost of ownership

 The flexibility of open source

9
PROBLEMS WITH EXISTING SYSTEM

1. As the work is carried out manually so the requirement of

the maintenance of record.

2. The system is handled manually so it requires a lot of time

to maintain the records.

3. The current system is not reliable as manually recording

often leads to mistakes and no accurate result are found.

4. No feasibility

5. As huge data is to be maintaining, so it‟s not easy to

maintain the huge data without any error, which in turn

makes the less efficient.

10
DISCRIPTION OF PROPOSED SYSTEM

To avoid the limitation of current system it‟s necessary to


design and develop a new system which have the following benefit
and the existing system.

(a)Everything is automated which reduce the risk factor.

(b)Flexibility in generating of information.

(c)Quick retrieved and maintenance of data.

(d)Highly accurate.

(e)User satisfaction.

11
Feasibility Study

A study was undertaken to compare the existing manual


system with the new proposed system to be developed.

Economic Feasibility

The bank Account System will considerably reduce the


manpower and to time necessary to manage the process and generate
the report for the following imperative action to be taken place
on the basis of the reports. The proposed system will require
only the Person to manage the Contacts. The new system will
generate the reports automatically optimizing the efforts and
time required.
Thus proposed system is economically feasible because it
is being developed with out having to incur the heavy development
costs and it will considerably reduce time and effort required
managing the present system.

Technical Feasibility

The proposed system, which is to be developed, will be


installed at Personal Computer. Since we have to also install the
computer systems with the configuration given below:-
System Configuration
 One PC with any version above Windows98
 Turbo C editor
 Switches to connect the computer‟s Together
So we have necessary Hardware and Software supporting the
implementation of the proposed system. There is however a need of
the one technical person to effectively manage the resource in
the computer. Since there are no technical constraints the
project is technically feasible.

12
Behavioral Feasibility

Since the new system is going to solve the difficulties


that come in the manual system of the procurement, reports in
handwritten. So proposed system is completely feasible is terms
of the behavior.

Project Plan
The Objective of the software project planning is to
provide a framework that enables an owner to make reasonable
estimate of the resources, cost and schedule. The project leader
is responsible for designing the system precisely according the
requirement specified by the customer. He is also responsible for
maintenance of the system for certain period of time. Since cost
of maintenance is much higher than cost of developing system.
Thus to reduce developing and maintenance cost, to provide the
system in predefine time proper planning of system is necessary.
For this project, we used the Waterfall Model. The methodology
has the following phases:
 Initial Investigation
The most crucial phase of managing system projects
is planning to launch a system investigation, we need a master
plan detailing the steps to be taken, the people to be
questioned, and outcome expected. The initial investigation
has the objective of determining whether the user‟s request
has potential merits the major steps are defining user
requirements, studying the present system and defining the
performance expected by the candidate system to meet user
requirements. The first step in the system development life
cycle is the identification of need. There may be a user
request to change, improve or enhance an existing system. The
initial investigation is one way of handling these needs. The
objective is to determine whether the request is valid and
feasible before a recommendation is reached to do nothing,
improve or modify the existing system, are to build a new one.
13
Thus for an effective maintenance, paper
follow-up and handling of the data resulting from different
information in records, it felt necessary to develop a bank
account System so that monitoring and maintenance of record
data could be done.

INFORMATION GATHERING

A key parts of the system analysis is gathering information about


the present system. The developer must know that information to
gather, where to find it, how to collect it, and what to make of
it.
The proper use of tools for gathering information is the
key to successful analysis. The tools are

 The Traditional Interview


 Questionnaires
 On-site Observation

The major objective of on-site observation is to get as close as


possible to the real system. In the interest to get more
potential information we personally approached the senior
officials of the concerned department.
Required data are collected as forms.

 Analysis phase

It includes the study of the problem and creation of the


System Requirement Specification (SRS) Document. The most crucial
phase of the managing system projects is analysis. It requires
the people to be questioned, study of manual system if it exits,
and on the site observations. Analysis is necessary to understand
the problem, the software system is to solve

14
The analysis model is concise, precise abstraction of
what the desired system must do, not how it will done. Thus, main
emphasis in analysis phase is on identifying what is needed from
system. The objective is to determine whether the request is
valid and feasible before a recommendation is reach to do nothing
, improve or modify the existing system, or to building a new
one. Thus Bank Account System is automation of the existing
manual system.
An SRS establishes the basis for agreement between the
client and the developer on what the software will do. An SRS
provides references for validation of the final product. A high
quality SRS is prerequisite to high quality software, which
reduces overall development cost of system.

 Design Phase

It begins when the analysis phase and thus requirements


documents, for the software to be developed has been prepared.
The objective of the design process is to be to produce a model
or representation of the system, which is used to build the
system. The design of the system is essentially a blueprint or
plan for solution for system.
Design process for software system has two levels:
1. System Design
2. Object Design

The System Design is the high-level strategy for solving the


problem and building a solution. System design includes decisions
about the organization of the system into subsystem, the
allocation of the subsystem to hardware and software component
and major conceptual and policy decisions that for the detailed
design.

15
The Object Design phase determines the full definitions of the
classes and the association used in the implementations as well
as interfaces and algorithms of the methods used to implement
operations.
 Implementation of the project required the design of the
system developed in the design phase of the project to be
coded and implemented. The modules defines in the design
phase are coded in „C‟ language. Integration phase
requires the integration of the various modules developed
in the project implementation phases. In implementation, it
is important to follow good software engineering practice
so that tracing to the design is straightforward and so
that the implemented system remains flexible and
extensible, thus it reduce cost of maintenance and
enhancement of the system.

 Testing Phase includes the conformation of the acceptance


criteria set down in the system requirements specification
document. The development of the software system involved a
series of activities where opportunities for injection of
human fallibilities are enormous. Error may begin occur at
every stage of the system development where the objectives
may be erroneously or imperfectly specified as well as
later design and development stage. Software testing is
critical element of software quality assurance and
represents the review of specification, design and coding.
Testing can‟t show the absences of defects, it can only
show that software defects are present.

Packaging and Deployment phase comes after completion of the


software. Application packaging is the act of creating a package
that can install our application onto user‟s computer. A package
consists of the files that contain compressed project files and
16
any other necessary files the user needs to install and run the
application. These files may include setup programs secondary
files, or other needed files. The additional files vary based on
the type of packaging. One can create two kind of packaging –
standard package or internet packages. If we plan to distribute
on disk, floppy or via a network share, we should create a
standard package for our application. If we plan to distribute
via an internet or internet site, we should create an Internet
package

17
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)

The systems development life cycle is a project management


technique that divides complex projects into smaller, more easily
managed segments or phases. Segmenting projects allows managers
to verify the successful completion of project phases before
allocating resources to subsequent phases.
Software development projects typically include initiation,
planning, design, development, testing, implementation and
maintenance phases. However, the phases may be divided
differently depending on the organization involved.
For example, initial project activities might be designated as
request, requirements-definition, and planning phases, or
initiation, concept-development, and planning phases. End users
of the system under development should be involved in reviewing
the output of each phase to ensure the system is being built to
deliver the needed functionality.

18
PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE

INITIATION PHASE

The Initiation Phase begins when a business sponsor identifies a


need or an opportunity.

The purpose of the Initiation Phase is to:

 Identify and validate an opportunity to improve business


accomplishments of the organization or a deficiency related
to a business need.
 Identify significant assumptions and constraints on
solutions to that need.
 Recommend the exploration of alternative concepts and
methods to satisfy the need including questioning the need
for technology, i.e., will a change in the business process
offer a solution?
 Assure executive business and executive technical
sponsorship. The Sponsor designates a Project Manager and
the business need is documented in a Concept Proposal. The
Concept Proposal includes information about the business
process and the relationship to the Agency/Organization.
 Infrastructure and the Strategic Plan. A successful Concept
Proposal results in a Project Management Charter which
outlines the authority of the project manager to begin
the project.

Careful oversight is required to ensure projects support


strategic business objectives and resources are effectively
implemented into an organization's enterprise architecture. The
initiation phase begins when an opportunity to add, improve, or
correct a system is identified and formally requested through the
presentation of a business case. The business case should, at a

19
minimum, describe a proposal‟s purpose, identify expected
benefits, and explain how the proposed system supports one of the
organization‟s business strategies. The business case should also
identify alternative solutions and detail as many informational,
functional, and network requirements as possible.

SYSTEM CONCEPT DEVELOPMENT PHASE

The System Concept Development Phase begins after a business need


or opportunity is validated by the Agency/Organization Program
Leadership and the Agency/Organization CIO.

The purpose of the System Concept Development Phase is to:

 Determine the feasibility and appropriateness of the


alternatives.
 Identify system interfaces.
 Identify basic functional and data requirements to satisfy
the business need.
 Establish system boundaries; identify goals, objectives,
critical success factors, and performance measures.
 Evaluate costs and benefits of alternative approaches to
satisfy the basic functional requirements
 Assess project risks
 Identify and initiate risk mitigation actions, andDevelop
high-level technical architecture, process models, data
models, and a concept of operations. This phase explores
potential technical solutions within the context of the
business need.
 It may include several trade-off decisions such as the
decision to use COTS software products as opposed to
developing custom software or reusing software components,
or the decision to use an incremental delivery versus a
complete, onetime deployment.
20
 Construction of executable prototypes is encouraged to
evaluate technology to support the business process. The
System Boundary Document serves as an important reference
document to support the Information Technology Project
Request (ITPR) process.
 The ITPR must be approved by the State CIO before the
project can move forward.

PICTORIAL REPRESENTATION OF SDLC:

PLANNING PHASE

The planning phase is the most critical step in completing


development, acquisition, and maintenance projects. Careful
planning, particularly in the early stages of a project, is
necessary to coordinate activities and manage project risks
effectively. The depth and formality of project plans should be
commensurate with the characteristics and risks of a given
project. Project plans refine the information gathered during the

21
initiation phase by further identifying the specific activities
and resources required to complete a project.

A critical part of a project manager‟s job is to coordinate


discussions between user, audit, security, design, development,
and network personnel to identify and document as many
functional, security, and network requirements as possible.
During this phase, a plan is developed that documents the
approach to be used and includes a discussion of methods, tools,
tasks, resources, project schedules, and user input. Personnel
assignments, costs, project schedule, and target dates are
established.
A Project Management Plan is created with components
related to acquisition planning, configuration management
planning, quality assurance planning, concept of operations,
system security, verification and validation, and systems
engineering management planning.

REQUIREMENTSANALYSIS PHASE

This phase formally defines the detailed functional user


requirements using high-level requirements identified in the
Initiation, System Concept, and Planning phases. It also
delineates the requirements in terms of data, system performance,
security, and maintainability requirements for the system. The
requirements are defined in this phase to a level of detail
sufficient for systems design to proceed. They need to be
measurable, testable, and relate to the business need or
opportunity identified in the Initiation Phase. The requirements
that will be used to determine acceptance of the system are
captured in the Test and Evaluation Master Plan.

22
The purposes of this phase are to:

 Further define and refine the functional and data


requirements and document them in the Requirements
Document,
 Complete business process reengineering of the functions to
be supported (i.e., verify what information drives the
business process, what information is generated, who
generates it, where does the information go, and who
processes it),
 Develop detailed data and process models (system inputs,
outputs, and the process.
 Develop the test and evaluation requirements that will be
used to determine acceptable system performance.

DESIGN PHASE

 The design phase involves converting the informational,


functional, and network requirements identified during the
initiation and planning phases into unified design
specifications that developers use to script programs
during the development phase. Program designs are
constructed in various ways. Using a top-down approach,
designers first identify and link major program components
and interfaces, then expand design layouts as they identify
and link smaller subsystems and connections. Using a
bottom-up approach, designers first identify and link minor
program components and interfaces, then expand design
layouts as they identify and link larger systems and
connections. Contemporary design techniques often use
prototyping tools that build mock-up designs of items such
as application screens, database layouts, and system
architectures. End users, designers, developers, database
managers, and network administrators should review and

23
refine the prototyped designs in an iterative process until
they agree on an acceptable design. Audit, security, and
quality assurance personnel should be involved in the
review and approval process. During this phase, the system
is designed to satisfy the functional requirements
identified in the previous phase. Since problems in the
design phase could be very expensive to solve in the later
stage of the software development, a variety of elements
are considered in the design to mitigate risk. These
include:

 Identifying potential risks and defining mitigating design


features.
 Performing a security risk assessment.
 Developing a conversion plan to migrate current data to the
new system.
 Determining the operating environment.
 Defining major subsystems and their inputs and outputs.
 Allocating processes to resources.
 Preparing detailed logic specifications for each software
module. The result is a draft System Design Document which
captures the preliminary design for the system.
 Everything requiring user input or approval is documented
and reviewed by the user. Once these documents have been
approved by the Agency CIO and Business Sponsor, the final
System Design Document is created to serve as the
Critical/Detailed Design for the system.
 This document receives a rigorous review by Agency
technical and functional representatives to ensure that it
satisfies the business requirements. Concurrent with the
development of the system design, the Agency Project
Manager begins development of the Implementation Plan,
Operations and Maintenance Manual, and the Training Plan.

24
DEVELOPMENT PHASE

The development phase involves converting design


specifications into executable programs. Effective development
standards include requirements that programmers and other
project participants discuss design specifications before
programming begins. The procedures help ensure programmers
clearly understand program designs and functional
requirements. Programmers use various techniques to develop
computer programs. The large transaction oriented programs
associated with financial institutions have traditionally been
developed using procedural programming techniques. Procedural
programming involves the line-by-line scripting of logical
instructions that are combined to form a program. Effective
completion of the previous stages is a key factor in the
success of the Development phase. The Development phase
consists of:

 Translating the detailed requirements and design into


system components.
 Testing individual elements (units) for usability.
 Preparing for integration and testing of the IT system.

INTEGRATION AND TEST PHASE

 Subsystem integration, system, security, and user


acceptance testing is conducted during the integration and
test phase. The user, with those responsible for quality
assurance, validates that the functional requirements, as
defined in the functional requirements document, are
satisfied by the developed or modified system. OIT Security
staff assesses the system security and issue a security
certification and accreditation prior to
installation/implementation.

25
Multiple levels of testing are performed, including:

 Testing at the development facility by the contractor and


possibly supported by end users

 Testing as a deployed system with end users working


together with contract personnel

 Operational testing by the end user alone performing all


functions. Requirements are traced throughout testing, a
final Independent Verification & Validation evaluation is
performed and all documentation is reviewed and accepted
prior to acceptance of the system.

IMPLEMENTATION PHASE

This phase is initiated after the system has been tested


and accepted by the user. In this phase, the system is installed
to support the intended business functions. System performance is
compared to performance objectives established during the
planning phase. Implementation includes user notification, user
training, installation of hardware, installation of software onto
production computers, and integration of the system into daily
work processes. This phase continues until the system is
operating in production in accordance with the defined user
requirements.

OPERATIONS AND MAINTENANCE PHASE

The system operation is on-going. The system is monitored


for continued performance in accordance with user requirements
and needed system modifications are incorporated. Operations
continue as long as the system can be effectively adapted to
respond to the organization‟s needs. When modifications or

26
changes are identified, the system may re-enter the planning
phase.

The purpose of this phase is to:

 Operate, maintain, and enhance the system.


 Certify that the system can process sensitive information.
 Conduct periodic assessments of the system to ensure the
functional requirements continue to be satisfied.
 Determine when the system needs to be modernized, replaced,
or retired.

27
LIST OF DATABASE AND TABLES USED
I have created the following database and tables:
Database: _____________________
Table(s):________________________
Structure of Table: Student
REGN INT(5) NOT NULL PRIMARY KEY
NAME CHAR(20)
CLASS INT(3)
GENDER CHAR(2)

1. Guest Table:

2. Staff Table:

28
29
30
CODING:-
ans="y"
def guest():
print("\n1. show all the records of guest \n2. add records of guest \n3.
search records \n4. delete records of guest \n5. Graphical representation \n6.
update the records")
x=int(input("Enter the choice of no:"))
if x==1:
showallrecords()
elif x==2:
addrecords()
elif x==3:
search()
elif x==4:
delete()
elif x==5:
guestgr()
elif x==6:
changerecord()
elif x!=[1,2,3,4,5,6]:
print("\t\tINVAILD INPUT")
def guestgr():
print("1. Rooms booked \n2. Source of booking")
x=int(input("enter the no:"))
if x==1:
roomgraph()
elif x==2:
sobgraph()
elif x!=[1,2]:
print("INVAILD INPUT")
def roomgraph():
import mysql
import matplotlib.pyplot as plt

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
quer='''select count(*) from guest where type_of_room="single";'''
31
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer='''select count(*) from guest where type_of_room="double";'''
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
quer='''select count(*) from guest where type_of_room="triple";'''
c1.execute(quer)
z=c1.fetchone()
lst2=list(z)
quer='''select count(*) from guest where type_of_room="quad";'''
c1.execute(quer)
a=c1.fetchone()
lst3=list(a)
lstt=lst+lst1+lst2+lst3
y=["single","double","triple","quad"]
plt.bar(y,lstt,width=0.50)
plt.xlabel("types of rooms")
plt.ylabel("no.ofrooms")
plt.show()
def sobgraph():
import mysql
import matplotlib.pyplot as plt

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
quer='select count(*) from guest where source_of_booking="online";'
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer="select count(*) from guest where source_of_booking='offline';"
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
lstt=lst+lst1
y=["online","offline"]
plt.bar(y,lstt,width=0.50)
plt.xlabel("source of booking")
32
plt.ylabel("no.ofrooms")
plt.show()
def showallrecords():
import mysql
import pandas as pd
pd.set_option('display.expand_frame_repr',False)

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
query="select * from guest;"
df=pd.read_sql(query,d1)

df=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"type
of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
print(df)
def addrecords():
import mysql
import pandas as pd

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
ans1="yes"
while ans1=="yes":
for i in range(1,201):
x=i
quer2="select * from guest where guestid=%d" %x
c1.execute(quer2)
if c1.rowcount==0:
ans1="no"
break
y=input("Enter the guest name:")
an="yes"
while an=="yes":
v=input("enter the type of room:")
if v=="single":
an="no"
33
elif v=="double":
an="no"
elif v=="triple":
an="no"
elif v=="quad":
an="no"
else:
print("invaild input")
r=int(input("enter the no. of days:"))
ci=input("enter the check in date:")
co=input("entr the check out date:")
ans3="yes"
while ans3=="yes":
a=input("Enter the source of booking:")
if a=="offline":
ans3="nooo"
elif a=="online":
ans3="nooo"
else:
print("invaild input")
ans2="ye"
if v=="single":
while ans2=="ye":
for i in range(1,51):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif v=="double":
while ans2=="ye":
for i in range(51,101):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif v=="triple":
34
while ans2=="ye":
for i in range(101,151):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif v=="quad":
while ans2=="ye":
for i in range(151,201):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
if v=="single":
b=2000*r+(2000*r*9/50)
elif v=="double":
b=4000*r+(4000*r*9/50)
elif v=="triple":
b=6000*r+(6000*r*9/50)
elif v=="quad":
b=8000*r+(8000*r*9/50)
quer="Insert into guest values(%d,'%s','%s',%d,'%s','%s',%d,'%s',%d);"
%(x,y,v,r,ci,co,c,a,b)
c1.execute(quer)
d1.commit()
print("Record Added")
f=input("Want to see the added record:")
if f=="y":
pd.set_option('display.expand_frame_repr',False)
quer="select * from guest where guestid=%d;"%x
df=pd.read_sql(quer,d1)

df1=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"typ
e of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
35
print(df1)
else:
print("Thank You")
def search():
import mysql
import pandas as pd

d1=mysql.connect(user="root",host="localhost",passwd="",database="hotel
")
c1=d1.cursor()
print("1. Id \n2. Name \n3. Source of booking \n4. Room no. \n5. date \n6.
Type of room")
cho=int(input("enter the no."))
if cho==1:
pd.set_option('display.expand_frame_repr',False)
x=int(input("enter the id:"))
quer="select * from guest where guestid='%d';" %x
df=pd.read_sql(quer,d1)

df1=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"typ
e of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
print(df1)
elif cho==2:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the name:")
quer="select * from guest where nameofguest='%s';" %x
df=pd.read_sql(quer,d1)

df1=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"typ
e of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
print(df1)
elif cho==3:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the source of booking:")
quer="select * from guest where source_of_booking='%s';" %x
df=pd.read_sql(quer,d1)
36
df1=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"typ
e of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
print(df1)
elif cho==4:
pd.set_option('display.expand_frame_repr',False)
x=int(input("enter the room no:"))
quer="select * from guest where room_no='%d';" %x
df=pd.read_sql(quer,d1)

df1=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"typ
e of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
print(df1)
elif cho==5:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the date:")
quer="select * from guest where cidate='%s';" %x
df=pd.read_sql(quer,d1)

df1=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"typ
e of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
print(df1)
elif cho==6:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the type of room:")
quer="select * from guest where type_of_room='%s'" %x
df=pd.read_sql(quer,d1)

df1=df.rename({"guestid":"id","nameofguest":"name","type_of_room":"typ
e of room","noofdays":"days","cidate":"check in","codate":"check
out","room_no":"room","source_of_booking":"source of
booking","netpay":"net payment"},axis=1)
print(df1)
def delete():
37
import mysql

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
x=int(input("enter the id:"))
quer="delete from guest where guestid=%d;" %x
rowcount=c1.execute(quer)
if rowcount>0:
d1.commit()
print("Record Deleted")
else:
print("NO RECORD FOUND")
def changerecord():
import mysql
import pandas as pd
pd.set_option('display.expand_frame_repr',False)

d1=mysql.connect(user="root",host="localhost",passwd="",database="hotel
")
c1=d1.cursor()
guid=int(input("enter the id:"))
quer="select * from guest where guestid=%d" % guid
c1.execute(quer)
if c1.rowcount>0:
row=list(c1.fetchone())
df=pd.read_sql(quer,d1)
print(df)
print("\n1. nameofguest \n2. source of booking \n3. date \n4. type of
room")
cr=int(input("enter the no:"))
if cr==1:
y=input("enter the new name of guest:")
quer="update guest set nameofguest='%s' where guestid=%d"
%(y,guid)
c1.execute(quer)
d1.commit()
print("RECORD CHANGED")
elif cr==2:
y=input("enter the new source guest:")
38
quer="update guest set source_of_booking='%s' where guestid=%d"
%(y,guid)
c1.execute(quer)
d1.commit()
print("RECORD CHANGED")
elif cr==3:
y=input("enter the new date:")
quer="update guest set cidate='%s' where guestid=%d" %(y,guid)
c1.execute(quer)
d1.commit()
print("RECORD CHANGED")
elif cr==4:
y=input("enter the new type of room:")
quer="update guest set type_of_room='%s' where guestid=%d"
%(y,guid)
c1.execute(quer)
d1.commit()
quer4="select nofdays from guest where guestid=%d" %(guid)
c1.execute(quer4)
r=list(c1.fetchone())
ans2="ye"
if y=="single":
while ans2=="ye":
for i in range(1,51):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif y=="double":
while ans2=="ye":
for i in range(51,101):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif y=="triple":
39
while ans2=="ye":
for i in range(101,151):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif y=="quad":
while ans2=="ye":
for i in range(151,201):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
quer1="update guest set room_no='%d' where guestid=%d"
%(c,guid)
c1.execute(quer1)
d1.commit()
if y=="single":
b=2000*r[0]+(2000*r[0]*9/50)
elif y=="double":
b=4000*r[0]+(4000*r[0]*9/50)
elif y=="triple":
b=6000*r[0]+(6000*r[0]*9/50)
elif y=="quad":
b=8000+r[0]+(8000*r[0]*9/50)
quer2="update guest set netpay=%d where guestid=%d" %(b,guid)
c1.execute(quer2)
d1.commit()
print("RECORD CHANGED")
elif cr!=[1,2,3,4,5,6,7]:
print("INVAILD INPUT")
elif c1.rowcount==0:
print("NO RECORD FOUND TO CHANGE")
def staff():

40
print("\n1. show all the records of staff \n2. add records of staff\n3. search
records of staff \n4. delete records of staff \n5. Graphical representation \n6.
update the records")
x=int(input("Enter the choice of no."))
if x==1:
allrecords()
elif x==2:
addrecordss()
elif x==3:
searchrec()
elif x==4:
deleterec()
elif x==5:
staffgr()
elif x==6:
changerec()
elif x!=[1,2,3,4,5,6]:
print("\t\tINVAILD INPUT")
def staffgr():
print("1. Department \n2. Salary")
x=int(input("enter the no:"))
if x==1:
deptgraph()
elif x==2:
salgraph()
def deptgraph():
import mysql
import matplotlib.pyplot as plt

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
quer="select count(*) from staff where dept='managment';"
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer="select count(*) from staff where dept='cleaning';"
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
41
quer="select count(*) from staff where dept='food and beverages';"
c1.execute(quer)
z=c1.fetchone()
lst2=list(z)
lstt=lst+lst1+lst2
y=["managment","cleaning","food & beverages"]
plt.bar(y,lstt)
plt.xlabel("department")
plt.ylabel("no.ofstaff")
plt.show()
def salgraph():
import mysql
import matplotlib.pyplot as plt

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
quer="select count(*) from staff where sal=2000;"
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer="select count(*) from staff where sal=4000;"
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
quer="select count(*) from staff where sal=6000;"
c1.execute(quer)
z=c1.fetchone()
lst2=list(z)
lstt=lst+lst1+lst2
y=["2000","4000","6000"]
plt.bar(y,lstt)
plt.xlabel("salary")
plt.ylabel("no.ofstaff")
plt.show()
def addrecordss():
import mysql

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
42
c1=d1.cursor()
print("\n1. cleaning \n2. food and beverages \n3. managment")
print("")
ans1="yes"
while ans1=="yes":
for i in range(1,201):
x=i
quer2="select * from staff where id=%d" %x
c1.execute(quer2)
if c1.rowcount==0:
ans1="no"
break
y=input("Enter the name:")
a=input("Enter the department:")
if a=="cleaning":
j=2000
elif a=="food and beverages":
j=4000
elif a=="managment":
j=6000
z=input("Enter the hiredate:")
quer="Insert into staff values(%d,'%s','%s',%d,'%s');" %(x,y,a,j,z)
c1.execute(quer)
d1.commit()
print("Record Added")
f=input("Want to see the added record:")
if f=="y":
quer="select * from staff where id=%d;"%x
c1.execute(quer)
rec=c1.fetchone()
sid,sname,dept,sal,Hdate=rec
print("staff id= %d"%sid,"staff name= %s"%sname,"depatment=
%s"%dept,"salary= %d"%sal,"hireDate= %s"%Hdate,sep="\n")
else:
print("THANK YOU")
def deleterec():
import mysql

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
43
c1=d1.cursor()
x=int(input("enter the id:"))
quer="delete from staff where id=%d;" %x
rowcount=c1.execute(quer)
if rowcount>0:
d1.commit()
print("Record Deleted")
else:
print("NO RECORD FOUND")
def searchrec():
import mysql
import pandas as pd

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
print("\n1. id \n2. name \n3. dept \n4. salary \n5. hiredate")
cho=int(input("enter the no."))
if cho==1:
pd.set_option('display.expand_frame_repr',False)
x=int(input("enter the id:"))
quer="select * from staff where id='%d';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==2:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the name:")
quer="select * from staff where name='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==3:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the dept:")
quer="select * from staff where dept='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==4:
pd.set_option('display.expand_frame_repr',False)
x=int(input("enter the salary:"))
quer="select * from staff where sal=%d;" %x
44
df=pd.read_sql(quer,d1)
print(df)
elif cho==5:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the hire date:")
quer="select * from staff where hiredate='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho!=[1,2,3,4,5]:
print("invaild input")
def changerec():
import mysql
import pandas as pd

d1=mysql.connect(user="root",host="localhost",passwd="",database="hotel
")
c1=d1.cursor()
sid=int(input("enter the id:"))
quer="select * from staff where id=%d" % sid
dfgg=pd.read_sql(quer,d1)
print(dfgg)
c1.execute(quer)
if c1.rowcount>0:
print("1. id \n2. name \n3. department \n4. hire date")
cr=int(input("enter the no:"))
if cr==1:
ans1="yes"
while ans1=="yes":
y=int(input("enter the id:"))
quer1="select * from staff where id=%d" %y
c1.execute(quer1)
if c1.rowcount>0:
print("DUPLICATE INPUT")
elif c1.rowcount==0:
ans1="no"
quer="update staff set id=%d where id=%d" %(y,sid)
c1.execute(quer)
d1.commit()
print("RECORD UPDATED")
elif cr==2:
45
y=input("enter the name:")
quer="update staff set name='%s' where id=%d" %(y,sid)
c1.execute(quer)
d1.commit()
print("RECORD UPDATED")
elif cr==3:
y=input("enter the deparment:")
quer="update staff set dept='%s' where id=%d" %(y,sid)
c1.execute(quer)
d1.commit()
if y=="cleaning":
j=2000
elif y=="food and beverages":
j=4000
elif y=="managment":
j=6000
quer1="update staff set sal='%d' where id=%d" %(j,sid)
c1.execute(quer1)
d1.commit()
print("RECORD UPDATED")
elif cr==4:
y=input("enter the hiredate:")
quer="update staff set hiredate='%s' where id=%d" %(y,sid)
c1.execute(quer)
d1.commit()
print("RECORD UPDATED")
elif c1.rowcount==0:
print("invalid input")
def allrecords():
import mysql
import pandas as pd

d1=mysql.connect(host="localhost",user="root",passwd="",database="hotel
")
c1=d1.cursor()
quer="select * from staff;"
df=pd.read_sql(quer,d1)
print(df)
while ans=="y":
print("* * * * ******* **** * *")
46
print("* * * * * * * * * *")
print("******* * * * * * * * *")
print("* * * * * * * * * *")
print("* * * ****** * **** * *")
print("1.Guest records \n2.Staff records \n3.Exit")
x=int(input("enter the no:"))
if x==1:
guest()
elif x==2:
staff()
elif x==3:
quit()
elif x!=[1,2,3]:
print("\t\tINVAILD INPUT")
ans=input("want to continue:")

Output Screens:

Guest Data handling


1. Show all the records:

2. Add record of guest:


47
3. Search records:

1. ID:

2. Name:

48
3. Source of Booking:

4. Room no:

5. Date:

49
6. Type of Room:

4. Delete records:

5. Graphical Representation:
1. Rooms booked
Input:
50
Output:

2. Source of Booking:
Input:

Output:

51
6. Update the records:
1. Name of guest:

52
2. Source of booking:

3. Date:

4. Type of Room:

53
Staff Data Handling
1. Show all records:

54
2. Add records:

3. Search the records:


1. ID:

2. Name:

3. Department:

55
4. Salary:

5. Hire Date:

4. Delete record:

56
5. Graphical Representation:
Input:

57
Output:

Input:

58
Output:

6. Update the records:


1. ID:

2. Name:
59
3. Department:

4. Hire Date:

7. Exit:

60
TESTING TECHNIQUES

The development of software systems involves a series of


production activities where opportunities for injection of human
fallibilities are enormous. Errors may begin to occur at every
inception of the process where the objectives may be erroneously
or imperfectly specified as well as later design and development
stages. Because of human inability to perform and communicate
with perfection, software development is accompanied by quality
assurance activity.
Software testing is a critical element of software quality
assurance and represents the ultimate review of specification,
design and coding.
The increasing visibility of software as a system element and
attendant “costs” associated with a software failure is
motivating forces for well planned, through testing.

Software Testing Fundamentals


During earlier definition and development phases,
the engineer attempts to build software from a concept to
tangible implementations. Now comes the testing. The engineer
creates a series of test cases that are intended to demolish
the software has been built. In fact testing is the one step in
the software engineering process that could be viewed as
destructive rather than constructive.
Testing required that the developer discard preconceived notion
of the “correctness “of the software just developed and overcome
a conflict of the interest that occurs when error are uncovered.

61
62
TESTING OBJECTIVES

A numbers of rules that can serve well as testing objectives:

1. Testing is a process of executing a program with the


intent of finding an error.
2. A good test case is one that has high probabilities of
finding an as yet undiscovered error.
3. A successful test is one that uncovers an as yet
undiscovered error.

Our objective is to design test systematically uncover different


classes of errors and do so with minimum amount of time and
effort. Data collected as testing is conducted provide a good
indication of software reliability and some indication of
software quality as a whole. But there is one thing that testing
can not do.
Testing can not show the absence of defects, it can only show
that software defects are present.

63
Test information flow

Information flow for testing follows the pattern described in the


figure:
Two classes of input are provided:
1. A software configuration that includes a software requirement
specification, a design specification, and Source code
2. A test configuration that include a Test Plane and Procedure,
any testing tools that are to be used, and test cases and
there expected results.

Software
Configuration

Test Results Evolution

Errors
Expected
Testing Results
Debug
Model

Error Data Rate


Corrections
Test Configuration
Reliability Predicted

Reliability

64
USER MANUAL

There is no use of mouse to handle the software .The keyboard is


meant for providing any sort of inputs. There is only vertical
menu with key access.

Vertical menu includes the following under their respective


headings.

1. ADD ACCOUNT: the personal directory file.

2. DELETE ACCOUNT: Delete Customer Account details.

3. MODIFY ACCOUNT: This modifies the details of


Account holder.

4. DISPLAY ACCOUNT INFORMATION: This displays the


customer Debit & Credit Account

5. SEARCH: find the customer information.

6. EXIT: close Bank account system.

65
SCOPE OF FUTURE ENHANCEMENT

The application certainly has same striking advantage over manual

system. There will be no paper work as possible and the

information will be updated as it changes.

 It is automation of Telephone directory system.

 With this system one can generate the report of the

address.

 It secures the database of Telephone directory system from

the unauthorized person.

 The operator does not require any previous training because

of its user friendliness the operator is free from any

technicality of the backend processing, that is how

database is maintained.

 If the process of the working changes in future then the

alteration in the system will be done easily and will not

cause in the mismanaging of data.

 Furthermore with its implementation very large amount of

data will be secure and editing and addition or deletion of

data is done very easily.

 In future according to the user‟s requirement it can be

updated so that to reach the user specification.

66
67
CONCLUSION
The application certainly has some striking feature over manual
system. User queries have become quite accurate and efficient.
Lot of paper work has been eliminated. Future modification and
enhancements have become quite easier now in comparison to the
previous manual system.
Last but one of the most important advantages of the banking
system is that, through this system the whole procedure will take
too less time in comparison of the manual system.
No doubt BAS will be helpful for institutes in all procedure,
which will be monitoring through Account. At the first step BAS
will only be installed in the bank .The main advantage of BAS is
that, it will become a powerful tool in establishment of better
system in comparison of the existing system. It helps to protect
the system from the corruption. After installation of BAS in the
bank, there is a greater possibility of stabilization a clear and
fair system, which will be accurate, update and fast.
There is no doubt that there always remains some scope of
improvement. The important thing is that the system developed
should be flexible to accommodate any future enhancements. This
system can be used to provide some enhancement without rewriting
of existing code.

68
BIBLIOGRAPHY
We have used the following reference to complete my project work.

 Classes by the teacher

 Class Notes.

 Books Referred:-

o Informatics Practices With Python - Class XI By : Sumita Arora

o Informatics Practices With Python - Class XII By : Sumita Arora

 Website:

o https://www.python.org

o https://www.youtube.com

o https://www.w3resource.com

o www.google.com/Python project

o www.wikipedia.com/Python

69

You might also like