SlideShare a Scribd company logo
1 of 60
Download to read offline
A Project on
QUICK BILL
Submitted
In partial fulfillment of the requirements for the
Award of the degree of
BACHELOR OF TECHONOLOGY
IN
COMPUTER SCIENCE & ENGINEERING
Submitted by
SAMEER ALAM (1352510045)
PRACHI PANDEY (1352510034)
ARVIND AGRAHARI (1352510016)
NEELAM SINGH (1452510905)
Under the guidance of
MS. SWETA
(Asst. Professor)
BUDDHA INSTITUTE OF TECHNOLOGY
CL-1, SECTOR-7 GIDA (GORAKHPUR), UP (INDIA) - 273209
(AFFILIATED TO Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY),
LUCKNOW, UP (INDIA)
APRIL, 2017
A Project on
QUICK BILL
Submitted
In partial fulfillment of the requirements for the
Award of the degree of
BACHELOR OF TECHONOLOGY
IN
COMPUTER SCIENCE & ENGINEERING
Submitted by
SAMEER ALAM (1352510045)
PRACHI PANDEY (1352510034)
ARVIND AGRAHARI (1352510016)
NEELAM SINGH (1452510905)
Under the guidance of
MS. SWETA
(Asst. Professor)
BUDDHA INSTITUTE OF TECHNOLOGY
CL-1, SECTOR-7 GIDA (GORAKHPUR), UP (INDIA) - 273209
(AFFILIATED TO Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY),
LUCKNOW, UP (INDIA)
APRIL, 2017
ii
DECLARATION
I hereby declare that the project entitled “Quick bill” submitted for the B.Tech. (CSE)
degree is my original work and the project has not formed the basis for the award of any
other degree, diploma, fellowship or any other similar titles.
Place:
Date:
Signature of the Student
iii
CERTIFICATE
This is to certify that Sameer Alam, Arvind Agrahari, Prachi Pandey and Neelam
Singh, a student of B Tech (CSE) of BUDDHA INSTITUE OF TECHNOLOGY,
(Gorakhpur) have completed the project work entitled “Quick Bill” in partial fulfillment
of the requirements for the award of Bachelor of Technology in Computer Science and
Engineering affiliated to Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY,
(Lucknow) under my guidance during the academic year 2016-17.
Place:
Date:
Ms. Sweta Mr. Sachidanand Chaturvedi
(Asst. Professor) (Head Of Department)
Department of CS & Engg. Department of CS & Engg.
iv
ACKNOWLEDGEMENT
It gives us great pleasure in presenting this project report titled “Quick bill”. On this
momentous occasion, we wish to express our immense gratitude to the range of people
who provided invaluable support in the completion of this project. Their guidance and
encouragement has helped in making this project a great success. Many thanks to our
project guide Assistant Professor Ms. Sweta. Without her guidance and motivation this
report would not have been completed. We express many thanks to our HOD Mr.
Sachidanand Chaturvedi, he has given us the opportunity to write the report and without
missing to acknowledge those references with the help of which this report work has been
properly done
Sameer Alam (1352510045)
Prachi Pandey (1352510034)
Arvind Agrahari (1352510016)
Neelam Singh (1452510905)
v
ABSTRACT
This software project is a supermarket billing system with some added functionality. This
system is built for fast data processing and bill generation for supermarket customers.
The billing system consists of mysql database and effective front end designed. The
billing database is a vast collection of product name, price and other product specific
data. A product when billed is searched from the database and its price is added to the
bill based upon the product quantity.
The billing server simultaneously starts billing for the particular cart. In case the
customer removes an item from the cart, the server immediately recognizes it and aligns
the billing accordingly. Once the customer acknowledges the server to provide the bill,
the server provides the gross amount. The customer on paying the bill is provided an
acknowledgement by the server and the goods are dispatched to the customer by the time.
The advantages of using such a system is that the time taken for billing huge amount of
items is reduced greatly and it is very useful and secured in big shopping complexes
The system also contains discounts on various products so that the product is offered at
discounted price while billing. The supermarket billing system is built to help
supermarkets calculate and display bills and serve the customer in a faster and efficient
manner. This software project consists of an effective and easy Guide to help the
employee in easy bill calculation and providing an efficient customer service
vi
TABLE OF CONTENTS
Declaration ii
Certificate iii
Acknowledgement iv
Abstract v
Table of Content vi
List of Figures viii
List of Tables ix
CHAPTER 1 INTRODUCTION 1
1.1 Overview 1
1.2 Objective 1
1.3 Future Scope 1
CHAPTER 2 LITERATURE REVIEW 2
2.1 Analysis of Present Software 2
2.2 Existing System facing problems 2
2.3 Characteristics of Proposed System 2
CHAPTER 3 FEASIBILITY ANALYSIS 3
3.1 Need for Feasibility Study 4
CHAPTER 4 METHODOLOGY 6
4.1 Waterfall Life Cycle Model 6
CHAPTER 5 TECHNOLOGY USED 8
5.1 MySQL 8
5.2 JDBC 8
vii
5.3 JDBC Architecture 9
5.4 Netbeans 10
5.4.1 Application 11
CHAPTER 6 SOFTWARE DESIGN DESCRIPTION 12
6.1 Input Design 12
6.2 Output Design 14
6.3 UML Diagram 14
6.4 Data Flow Diagrams 16
6.5 Database Design 18
CHAPTER 7 SAMPLE CODE AND SCREENSHOTS 20
7.1 Quickbill Home 20
7.2 Admin Login 22
7. 2.1 Admin Home 25
7.2.2 Add Cashier 27
7.2.3 Update Stock 34
7.3 Cashier Login 34
7.3.1 Cashier Home 35
7.3.2 Create Bill 35
7.3.3 Product Information 45
7.3.4 Search Bill 45
CHAPTER 8 TESTING 46
CHAPTER 9 CONCLUSION 49
REFERENCES 50
viii
LIST OF FIGURES
S.No FIGURE NAME PAGE NO
4.1 Waterfall Life Cycle Model 6
5.3 JDBC Architecture 9
6.4.1 Cashier Registration 16
6.4.2 Maintain Stock Details 17
6.4.3 Billing 17
6.4.4 Product Search 17
6.4.5 Search Bill 18
7.1 Quick Bill 21
7.2 Admin Login 24
7.2.1 Admin Home 27
7.2.2 Add Cashier 33
7.2.3 Update Stock 34
7.3 Cashier Login 34
7.3.1 Cashier Home 35
7.3.2 Create Bill 44
7.3.3 Product Information 45
7.3.4 Search Bill 45
8.1 Various Level of Testing 47
ix
LIST OF TABLES
S.No TABLE NAME PAGE NO
6.5.1 Admin details 18
6.5.2 Cashier details 18
6.5.3 Stock details 19
6.5.4 Bill details 19
1
CHAPTER 1
INTRODUCTION
1.1 Overview
The project is on Supermarket Billing. Supermarket is the place where customers come
to purchase their daily using products and pay for that. So there is a need to calculate
how many products are sold and to generate the bill for the customer. The aim is to
automate its existing manual system by the help of computerized equipment and full-
fledged computer software, fulfilling the requirements, so that their valuable
data/information can be stored for a longer period with easy accessing and manipulation
of the same.
For easy and convenient processing we need to develop software, which work as per our
requirements. While preparing this software we got to remember few things i.e. this
software must have a friendly environment, in other words it should not be much
complicated to handle, it should have option for future modification in the database i.e.
in the goods list, new items and workers list. For smooth functioning we had to prepare
a database by which we could enter the required data in their respective locations. In
this database all the record of daily entry made are stored, so that we can use them in
future whenever allotted to their caretaker. Other than that no one could use this and on
entering an illegal password or login name an error message get displayed.
1.2 Objective
This project will serve the following objectives:-
1 Add and maintain records of available products.
2 Add and maintain customer details.
3 Add and maintain description of new products.
4 Add and maintain new entered category of products.
5 Provides economic/financial reports to the owner monthly or weekly and yearly.
6 Provides a convenient solution of billing pattern.
7 Make an easy to use environment for users and customers.
1.3 Future Scope
1 This project will help the store keeper in fast billing
2 This project enable store keeper to maintain a great database of all customers visited
and purchase product from store.
3 Project will enable to see report regarding product and category.
4 Easy to maintain in future prospect.
2
CHAPTER 2
LITERATURE REVIEW
2.1 Analysis of Present System
Before we begin a new system it is important to study the system that will be improved
or replaced (if there is one). We need to analyze how this system uses hardware,
software, network and the people resources to convert data resources, such as
transaction data, into information products, such as reports and displays. Thus we
should document how the information system activities of input, processing, output,
storage and control are accomplished.
2.2 Existing System facing some problems
1. Inability of modification of data: The managing of huge data effectively and
efficiently for efficient results, storing the details of the consumers etc. in such a
way that the database can be modified as not possible in the current system.
2. Not user friendly: The existing system is not user friendly because the retrieval
and storing of data is slow and data is not maintained efficiently.
3. Difficulty in reports generating: Either no reports generating in a current
system or they are generated with great difficulty reports take time to generate
in the current system.
4. Manual operator control: Manual operator control is there and lead to a lot of
chaos and errors.
5. Lot of paperwork: Existing system requires lot of paper work and even a small
transaction require many papers fill. Moreover any unnatural cause (such as fire
in the organization) can destroy all data of the organization. Loss of even a
single paper led to difficult situation because all the papers are interrelated.
6. Inability of sharing the data: Data cannot be shared in the existing system.
This means that no two persons can use the same data in existing system. Also
the two departments in an organization cannot interact with each other without
the actual movement of data.
7. No support in decision-making: Existing system does not support managerial
decision-making.
8. No support in strategic competitive advantage: Existing system do not
support strategic competitive advantages.
2.3 Characteristics of Proposed System
1. Easiness in modification of data: The proposed system provides managing of
huge data effectively and efficiently for efficient results, storing the details of
the customers, employees etc. in such a way that the database can be modified.
3
2. User friendly: The proposed system is user friendly because the retrieval and
storing of data is fast and data is maintained efficiently. Moreover the graphical
user interface is provided in the proposed system, which provides user to deal
with the system very easily.
3. Reports are easily generated: Reports can be easily generated in a proposed
system. So any type of reports can be generated in a proposed system, which
helps the managers in a decisions-making activity.
4. Sharing the data is possible: Data can be shared in proposed system. This
means that two or more persons can use the same data in existing system
provided that they have right to access that data. Also the two or more
departments in an organization can easily interact with each other without the
actual movement of data.
5. No or very few paperwork: The proposed system either does not require paper
work or very few paper works is required. All the data is feted into the computer
immediately and various bills and reports can be generated through computers.
Since all the data is kept in a database no data of the organization can be
destroyed. Moreover work becomes very easy because there is no need to keep
data on papers.
6. Support strategic competitive advantage: Proposed system support strategic
competitive advantages. Since the proposed systems provide easiness in reports
generating it will provide strategic advantages among competitors.
7. Computer operator control: Computer operator control will be there no errors.
Moreover storing and retrieving of information is easy. So work can be done
speedily and in time.
4
CHAPTER 3
FEASIBILITY ANALYSIS
Title: Feasibility report for the computerization of the various activities of the company.
Background: The Company facing the problem of inconsistent and out of time
information in its activities. Very much time is consuming for report generation, which
is not very helpful for decision making. So we want a system, which provide immediate
information.
Method of study: The analysis procedure comprised of field trips in the various
departments of the company. The following documents and sources were looked up:
 The purchase order that contain items to be purchased.
 The accounts register.
 Purchase order issues to vendors.
 Bills receive from vendors.
 Bills give to the customers.
 Purchase return forms (if any) give to vendors.
3.1 Need for Feasibility study
The feasibility study is carried out to test whether the proposed system is worth being
implemented. Feasibility study is a test of system proposed regarding its work ability,
its impact on the organization ability to meet user needs and effective use of resources.
It is usually carried out by a small number of people who are familiar with the
information system techniques, understand the part of the business or organization that
will be involved or effected by the project and are skilled in the system analysis and
design
process.
The key consideration involve in the feasibility study are:
1. Technical
2. Behavioral
3. Economic
1. Technical Feasibility
Technical feasibility centers on the existing computer system (hardware, software etc)
and to what extent it can support the proposed system addition. For example, if the
current system is operating at 70% capacity (an arbitrary value), then another
application could overload the system or require additional hardware. If the budget is
serious constrain then the project is judged not feasible.
2. Behavioral Feasibility
An evaluation of the behavior of the end users, which may effect the envelopment of the
system. People are inherently resistant to change and computers have to know to
facilitate changes and computers have to known to facilitate changes. An estimate
should be made of how strong a reaction the user staff is likely to have towards the
5
development of a computerized system. It is a common knowledge that a computer
installation has something to do with turnover, transfer, retraining and changes in
employee job status, therefore the introduction of a candidate system requires special
effort to educate, sell and train the staff on new ways of conducting business. The
personal of the user organization will be affected by the proposed system. As the aim of
the system is only to satisfy the information needs, no employees will lose their position
by the proposed system. In fact the proposed system will help the organization in
reducing the voluminous work involved. Also the involvement of users in every stage of
the project is going to increase the success factor. The staff in not well educated for
running a computerized system. They are adamant in perceiving a mechanical process
of working as they have long been used to the manual entry system. This aspect needs
considerable amount of attention. Our system is also feasible for organization because it
supports of the organization and its strategic plan.
3. Economic Feasibility
The procedure is to determine the benefits and savings that are expected from a
candidate system and compare it with the costs. If a benefit outweighs costs, then the
decision is made to design and implement the system.
Otherwise further alterations are made in the proposed system
1. Manpower cost
2. Hardware and software cost.
6
CHAPTER 4
METHODOLOGY
4.1 Waterfall Life Cycle Model
Waterfall model states that the phases (analysis, design, and coding, testing, support)
are systematized in a linear order and each phase should accomplished entirely earlier
of the next phase begins. In this way the step by step phase initially analyzing phase is
completed and that output takes place at the end of analyze phase after that output will
be given as input for the design phase, depending on the inputs it generates all design
steps, like ways all phases processed and produced all successful outputs, And will to
find out whether the project is pursuing on the exact path or not. If not the project may
be discard or any other action takes place to continue. The model is the most
commonly used and also known as linear sequential lifecycle model.
Fig 4.1 Waterfall Life Cycle Model
7
Advantages:
1. This model is very easy to use and implement.
2. Each phase is completed at a time and processed.
3. This model better works for smaller projects if only the requirements are well
understood.
4. In each phase have deliverables and that must be reviewed.
Disadvantages:
1 If the requirements are gathered are inaccurate then the final product is inaccurate and
the error is known in the final phase of the model. Any sort of errors that cannot be
detected in any previous phase.
2 For long, object-oriented, complex and ongoing projects it’s a poor model.
3 This model has high risks.
8
CHAPTER 5
TECHNOLOGIES
5.1 MySQL
MySQL is a fast, easy-to-use RDBMS being used for many small and big businesses.
MySQL is developed, marketed, and supported by MySQL AB, which is a Swedish
company. MySQL is becoming so popular because of many good reasons:
1 MySQL is released under an open-source license. So you have nothing to pay to
use it.
2 MySQL is a very powerful program in its own right. It handles a large subset of
the functionality of the most expensive and powerful database packages.
3 MySQL uses a standard form of the well-known SQL data language.
4 MySQL works on many operating systems and with many languages including
PHP, PERL, C, C++, JAVA, etc.
5 MySQL works very quickly and works well even with large data sets.
6 MySQL is very friendly to PHP, the most appreciated language for web
development.
7 MySQL supports large databases, up to 50 million rows or more in a table. The
default file size limit for a table is 4GB, but you can increase this (if your
operating system can handle it) to a theoretical limit of 8 million terabytes (TB).
8 MySQL is customizable. The open-source GPL license allows programmers to
modify the MySQL software to fit their own specific environments.
5.2 JDBC (JAVA DATABASE CONNECTIVITY)
JDBC technology is an API(included in both J2SE and J2EE releases) that provides
cross DBMS connectivity to a wide range of SQL database and access to other tabular
data sources, such as spreadsheets or flat files. With a JDBC technology-enabled driver,
you can connect all corporate data even in a heterogeneous environment.
9
The JDBC API makes it possible to do three things:
 Establish a connection with a database or access any tabular data source
 Send SQL statements
 Process the results
Types of JDBC Drivers
A JDBC-ODBC bridge provides JDBC API access via one or more ODBC drivers.
A native-API partly Java technology-enabled driver converts JDBC calls into calls on
the client API for Oracle, Sybase, Informix, DB2, or other DBMS.
A net-protocol fully Java technology-enabled driver translates JDBC API calls into a
DBMS-independent net protocol which is then translated to a DBMS protocol by a
server. A native-protocol fully Java technology-enabled driver converts JDBC
technology calls into the network protocol used by DBMSs directly.
5.3 JDBC Architecture
The JDBC Architecture consists of two layers:
The JDBC API, which provides the application-to-JDBC Manager connection.
The JDBC Driver API, which supports the JDBC Manager-to-Driver Connection.
The JDBC API uses a driver manager and database-specific drivers to provide
transparent connectivity to heterogeneous databases. The JDBC driver manager
ensures that the correct driver is used to access each data source.
Java
JDBC
JDBC
Driver
JDBC JDBC JDBC
Oracl
SQL
ODB
C
10
Fig 5.3 JDBC Architecture
5.4 Netbeans
NetBeans is first and foremost a well-crafted open source programmer's integrated
development environment (IDE). It's powerful, it's useful, it's extensible, it's open and
it's free. The practices which Net Beans imposes are fully as intricate as your current
development practices. More intricate, perhaps, because if you are a real programmer,
you will wish to supplement your work style with Net Beans rather than attempting to
use Net Beans to completely replace your current work style. The practice of Net
Beans development is not easier. It's just more effective than what you were doing
before Net Beans. It provides the services common to creating desktop applications
such as window and menu management, settings storage and is also the first IDE to
fully support JDK 5.0 features.
Features
Net Beans offers all the usual and expected features of an IDE:
 A syntax-coloring editor aware not only of the Java language.
 Component inspector
 Object browser
 Debugger
 Integrated source control support for
 External CVS
 Built-in CVS
 Most external source control systems of your choice
5.4.1 Application
The Net Beans platform and IDE are free for commercial and non-commercial use, and
they are supported by Sun Microsystems. It can be downloaded from
http://www.netbeans.org/ to be able to successfully build programs it is recommended
to follow the intended procedure, described here. First it’s important to create a new
project. Various project types are available however in this case the intended type will
be Java Application.
11
It is recommended that you change the name of the project to something of this sort:
unit_1.Here the chosen location is: netbeans_home/workspace. To keep control over
the way that classes (e.g. the main launching class) are defined it is recommended to
uncheck the two check boxes. After Finish is clicked the new project structure will be
in place, however we now need to extend this by adding a new package. In this manner
classes associated with the same topics can be stored in one package. The end result
will be multiple packages in one project, each having a number of classes (programs).
The process is simple, just right-click on the Source Package label in Net Beans’
Projects tab and click New -> Java Package.
Here we will label the package as exercises. Clicking Finish will terminate this
process. Next we will create a simple class example and store it within our newly
created package. This process is very straight forward and involves a right-click on the
appropriate exercises package, after which we choose Java Class. Set the class name to
Welcome. The other details can be checked to verify that all is as intended. The new
class structure will be generated and at this point we need to edit the code and add the
necessary lines. Note that the first line of code is referring to the package name in
which this class will be stored. The code is missing a main method (since we un
checked the check box previously, which we add. Within this method we also need to
add the line System.out.println (“Welcome to Java”);
Notice that while adding this line of code Net Beans’ editor will be suggesting stuff to
make our lives easier. The next step is to either save , compile and execute our
program, or else execute it directly (which will automatically save and compile). Any
output from the executed program will be displayed in the terminal window. In the
above example the program executed correctly and the intended message “Welcome to
Java” displayed. If some compile time and runtime errors were encountered, the
appropriate exception message would have also been displayed in this window.
12
CHAPTER 6
SOFTWARE DESIGN DESCRIPTION
Design
Design is the first step in the development phase for any engineering product or
system. It may be defined as a “the process of applying various techniques and
principles for the purpose of defining a device, a process, or a system insufficient
detail to permit its physical realization”.
Software design is an iterative process through which requirements are translated into
a “blue print” for the constructing software. The design is represented at high level of
abstraction, a level that can be directly translated to a specific data, functional behavior
requirements. Preliminary design is concerned the transformation of requirements into
a data and software architecture.
The design is solution, a “how to” approach to the creation of a new system. This is
composed of several steps. It provides the understanding and procedural details
necessary for implementing the system recommended.
The database design transforms the information domain model created during analysis
into the data structures that will be required to implemented software.
The architecture design describes how the software communicates within itself, to
systems that interoperate with it, and with humans who use it. An interface implements
flow of information.
The interface design describes how the software communicates within itself, to systems
that interoperate with it, and with humans who use it. An interface implements flow of
information.
6.1 Input Design
Input design is the process of converting user-oriented input to a computer based
format. Input design is a part of overall system design, which requires very careful
attention. Often the collection of input data is the most expensive part of the system.
The main objectives of the input design are
13
1 Produce cost effective method of input
2 Achieve highest possible level of accuracy
3 Ensure that the input is acceptable to and understood by the staff.
6.1.1 Input data
The goal of designing input data is to make entry easy, logical and free from errors as
possible. The entering data entry operators need to know the allocated space for each
field; field sequence and which must match with that in the source document. The
format in which the data fields are entered should be given in the input form .Here data
entry is online; it makes use of processor that accepts commands and data from the
operator through a key board. The input required is analyzed by the processor. It is
then accepted or rejected. Input stages include the following processes:
 Data Recording
 Data Transcription
 Data Conversion
 Data Verification
 Data Control
 Data Transmission
 Data Correction
One of the aims of the system analyst must be to select data capture method and
devices, which reduce the number of stages so as to reduce both the changes of errors
and the cost .Input types, can be characterized as:
 External
 Internal
 Operational
 Computerized
 Interactive
Input files can exist in document form before being input to the computer. Input design
is rather complex since it involves procedures for capturing data as well as inputting it
to the computer.
14
6.2 Output Design
Outputs from computer systems are required primarily to communicate the results of
processing to users. They are also used to provide a permanent copy of these result for
latter consultation .Computer output is the most important and direct source of
information to the users. Designing computer output should proceed in an organized
well throughout the manner. The right output must be available for the people who
find the system easy o use. The outputs have been defined during the logical design
stage. If not, they should defined at the beginning of the output designing terms of
types of output connect, format, response etc.
Various types of outputs are:
 External outputs
 Internal outputs
 Operational outputs
 Interactive outputs
 Turn around outputs
All screens are informative and interactive in such a way that the user can fulfill his
requirements through asking queries.
6.3 UML Diagrams
Design is the place where quality is fostered in software development. Design is the
only way that we can accurately translate a user’s requirements into a finished
software product or system. Software design serves as the foundation for all software
engineers and software maintenance steps that follow. Without design we risk building
an unstable design – one that will fail when small changes are made, one that may be
difficult to test, and one whose quantity cannot be assessed until late in the software
engineering process.
Taking software requirements specification document of analysis phase as input to the
design phase we have drawn Unified Modeling Language (UML) diagrams. UML
depends on the Visual modeling of the system. Visual modeling is the process of
taking the information from the model and displaying it graphically using some sort of
15
standards set of graphical elements.
UML Diagrams are drawn using the Visual Paradigm Software. We seem to be able to
understand complexity better when it is displayed to us visually as opposed to written
textually. By producing visual models of a system, we can show how system works on
several levels. We can model the interactions between the users and the system.
Types of UML Diagrams
Each UML diagram is designed to let developers and customers view a software system
from a different perspective and in varying degrees of abstraction. UML diagrams
commonly created in visual modeling tools include:
Use Case Diagram: Displays the relationship among actors and use cases.
Class Diagram: Models class structure and contents using design elements such as
classes, packages and objects. It also displays relationships such as containment,
inheritance, associations and others.
Interaction Diagrams:
Sequence Diagram: Displays the time sequence of the objects participating in the
interaction. This consists of the vertical dimension (time) and horizontal dimension
(different objects).
Collaboration Diagram: Displays an interaction organized around the objects and their
links to one another. Numbers are used to show the sequence of messages.
State Diagram: Displays the sequences of states that an object of an interaction goes
through during its life in response to received stimuli, together with its responses and
actions.
Activity Diagram: Displays a special state diagram where most of the states are action
states and most of the transitions are triggered by completion of the actions in the source
states. This diagram focuses on flows driven by internal processing.
Physical Diagrams:
Component Diagram: Displays the high level packaged structure of the code itself.
Dependencies among components are shown, including source code components, binary
code components, and executable components. Some components exist at compile time,
at link time, at run times well as at more than one time.
Deployment Diagram: Displays the configuration of run-time processing elements and
the software components, processes, and objects that live on them. Software component
instances represent run-time manifestations of code units.
16
Views of UML Diagrams
Considering that the UML diagrams can be used in different stages in the life cycle of a
system, let us take a look at the "4+1 view" of UML diagrams. The 4+1 view offers a
different perspective to classify and apply UML diagrams. The 4+1 view is essentially
how a system can be Each of these views represents how a system can be modeled. This
will enable us to understand where exactly the UML diagrams fit in and their
applicability. viewed from a software life cycle perspective. Each of these views
represents how a system can be modeled. This will enable us to understand where
exactly the UML diagrams fit in and their applicability.
The different views are:
Design View:
The design view of a system is the structural view of the system. This gives an idea of
what a given system is made up of. Class diagrams and object diagrams form the design
view of the system.
Process View:
The dynamic behavior of a system can be seen using the process view. The different
diagrams such as the state diagram, activity diagram, sequence diagram, and
collaboration diagram are used in this view.
Component View:
Component view shows the grouped modules of a given system modeled using the
Use case View:
Finally, we have the use case view. Use case diagrams of UML are used to view a
system from this perspective as a set of discrete activities or transactions.
6.4 DATA FLOW DIAGRAMS
6.4.1 Cashier Registration:
17
Request Cashier Information
Response Cashier Information
Response
Fig 6.4.1 Cashier Registration
6.4.2 Maintain Stock details:
Request Stock Information
Response Stock Information
Response
Fig 6.4.2 Maintain Stock detail
6.4.3 Create Bill:
Request Request Bill request
Response Response Bill
Response
Fig 6.4.3 Create Bill
6.4.4 Product Search:
Request Product Information
Response Product Information
Response
Fig 6.4.4 Product Search.
Admin Server Cashier
database
Admin Server Stock
database
Customer Server Bill
database
Cashier
Cashier Server Stock
database
18
6.4.5 Bill Search:
Request Bill No
Response Bill Information
Fig 6.4.5 Bill Search.
6.5 Database Design
6.5.1 Admin Details:
Field Type Null Key Default Extra
Username varchar(15) YES NULL
Password varchar(15) YES NULL
Table 6.5.1 Admin details
6.5.2 Cashier Details:
Field Type Null Key Default Extra
Id int(15) NO PRI NULL auto-increment
Name varchar(15) YES NULL
Mno varchar(15) YES NULL
Address varchar(15) YES NULL
Email varchar(15) YES NULL
Password varchar(15) YES NULL
Table 6.5.2 Cashier detail
Cashier Server Stock
database
19
6.5.3 Stock Details:
Field Type Null Key Default Extra
Id int(15) NO PRI NULL
Pname varchar(15) YES NULL
Available int(15) YES NULL
Mrp int(15) YES NULL
Table 6.5.3 Stock detail
6.5.4 Bill Details:
Field Type Null Key Default Extra
Bno int(15) NO PRI NULL auto-increment
Cname varchar(15) YES NULL
Amt int(15) YES NULL
Pdate Date YES NULL
Table 6.5.3 Bill detail
20
CHAPTER 7
SAMPLE CODE AND SCREENSHOTS
7.1 Quick bill :
Code :
import java.awt.event.*;
import java.awt.*;
public class Quickbill extends javax.swing.JFrame {
public Quickbill() {
initComponents();
this.setLocation(300,100);
}
public void close(){
WindowEventwinClosingEvent=new
WindowEvent(this,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
close();
AdminLogin al=new AdminLogin();
al.setVisible(true);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
close();
CashLogin cash=new CashLogin();
21
cash.setVisible(true);// TODO add your handling code here:
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Quickbill().setVisible(true);
}
});
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel2;
}
Fig 7.1 Quick bill
22
7.2 Admin Login
Code:
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
private void at1ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void abtnActionPerformed(java.awt.event.ActionEvent evt) {
close();
Connection con;
PreparedStatement ps;
try {
con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password");
ps=con.prepareStatement("SELECT `username`,`password` FROM `admin` WHERE
`username`=? AND `password`=?;");
ps.setString(1,at1.getText());
ps.setString(2, String.valueOf(at2.getPassword()));
ResultSet rs=ps.executeQuery();
if(rs.next())
{
MainFrame main=new MainFrame();
23
main.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(null, "Invalid Username or Password");
}
} catch (SQLException ex) {
Logger.getLogger(AdminLogin.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {
if(jCheckBox1.isSelected())
{
at2.setEchoChar((char)0);
}
else{
at2.setEchoChar('*');
}
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new AdminLogin().setVisible(true);
}
});
24
}
private javax.swing.JButton abtn;
private javax.swing.JLabel al1;
private javax.swing.JLabel al2;
private javax.swing.JTextField at1;
private javax.swing.JPasswordField at2;
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
Fig 7.2 Admin Login
25
7.2.1 Admin Home
Code:
import MyFrames.AddCash;
import MyFrames.PerPro;
import MyFrames.PerDay;
import MyFrames.Transaction;
import MyFrames.UpdateStock;
import MyFrames.ViewCashier;
import MyFrames.ViewStock;
public class MainFrame extends javax.swing.JFrame {
private void CashviewActionPerformed(java.awt.event.ActionEvent evt) {
AddCash ac=new AddCash();
this.desktop.add(ac);
ac.setVisible(true);
}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
UpdateStock us=new UpdateStock();
this.desktop.add(us);
us.setVisible(true); // stock add TODO add your handling code here:
}
26
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
Transaction ts=new Transaction();
this.desktop.add(ts);
ts.setVisible(true);
}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
Sales sa=new Sales();
this.desktop.add(sa);
sa.setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(() -> {
new MainFrame().setVisible(true)});
}
private javax.swing.JButton Cashview;
private javax.swing.JDesktopPane desktop;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenu jMenu5;
private javax.swing.JMenuBar jMenuBar2;
27
// End of variables declaration
}
Fig 7.2.1 Admin home
7.2.2 Add Cashier`s Details
Code:
package MyFrames;
import java.sql.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public AddCash() {
initComponents();
28
show_cash();
this.setLocation(140,60);
}
private void anewActionPerformed(java.awt.event.ActionEvent evt) {
String query="INSERT INTO `cash`(`name`,`mno`,`address`,`email`,`password`)
VALUES('"+jTextField2.getText()+"','"+jTextField3.getText()+"','"+jTextField4.getTe
xt()+"','"+jTextField5.getText()+"','"+jTextField6.getText()+"');";
executeSQlQuery(query, "Inserted");
}
private void updateActionPerformed(java.awt.event.ActionEvent evt) {
String query="UPDATE `cash` SET
`name`='"+jTextField2.getText()+"',`mno`='"+jTextField3.getText()+"',`address`='"+jT
extField4.getText()+"',`email`='"+jTextField5.getText()+"',`password`='"+jTextField6.g
etText()+"' WHERE `id`="+jTextField1.getText();
executeSQlQuery(query,"Update");
}
private void delActionPerformed(java.awt.event.ActionEvent evt) {
String query="DELETE FROM `cash` WHERE `id`="+jTextField1.getText();
executeSQlQuery(query,"Delete");
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
int i=jTable1.getSelectedRow(); // TODO add your handling code here:
TableModel model=jTable1.getModel();
jTextField1.setText(model.getValueAt(i, 0).toString());
jTextField2.setText(model.getValueAt(i, 1).toString());
jTextField3.setText(model.getValueAt(i, 2).toString());
jTextField4.setText(model.getValueAt(i, 3).toString());
29
jTextField5.setText(model.getValueAt(i, 4).toString());
jTextField6.setText(model.getValueAt(i, 5).toString());
}
public Connection getConnection()
{
Connection con;
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/qb","root","password"
);
return con;
} catch(Exception e)
{
return null;
}
}
public ArrayList<Cash>getCashList()
{
ArrayList<Cash>cashList=new ArrayList<Cash>();
Connection connection= getConnection();
String query="SELECT * FROM `cash`;";
Statement st;
ResultSet rs;
try{
30
st=connection.createStatement();
rs=st.executeQuery(query);
Cash cash;
while(rs.next())
{
cash = new
Cash(rs.getInt("id"),rs.getString("name"),rs.getString("mno"),rs.getString("address"),rs.
getString("email"),rs.getString("password"));
cashList.add(cash);
}
}
catch(Exception e)
{
e.printStackTrace();
}
return cashList;
}
// Display data in JTable
public void show_cash()
{
ArrayList<Cash> list=getCashList();
DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
Object[] row=new Object[6];
for(int i=0;i<list.size();i++)
{
row[0]=list.get(i).getid();
31
row[1]=list.get(i).getname();
row[2]=list.get(i).getmno();
row[3]=list.get(i).getaddress();
row[4]=list.get(i).getemail();
row[5]=list.get(i).getpassword();
model.addRow(row);
}
}
public void executeSQlQuery(String query, String message)
{
Connection con = getConnection();
Statement st;
try{
st = con.createStatement();
if((st.executeUpdate(query)) == 1)
{
// refresh jtable data
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
model.setRowCount(0);
show_cash();
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
32
jTextField5.setText("");
jTextField6.setText("");
JOptionPane.showMessageDialog(null, "Data "+message+" Succefully");
}else{
JOptionPane.showMessageDialog(null, "Data Not "+message);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
// Variables declaration - do not modify
private javax.swing.JButton anew;
private javax.swing.JButton del;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
33
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JButton update;
// End of variables declaration
private void setLocationRelativeTo(Object object) {
throw new UnsupportedOperationException("Not supported yet.");.
}
}
Fig 7.2.2 Add Cashier Details
34
7.2.3 Update Stock details
Fig 7.2.3 Update Stock details.
7.3 Cashier Login
Fig 7.3 Cashier Login
35
7.3.1 Cashier Home
Fig 7.3.1 Cashier Home
7.3.2 Create Bill
Code:
package MyFrames;
import java.sql.*;
import java.text.*;
import java.text.SimpleDateFormat;
import java.awt.print.*;
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;
import java.util.*;
import javax.swing.JOptionPane;
36
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class CreateBill extends javax.swing.JInternalFrame {
public CreateBill() {
initComponents();
Fillcombo();
showdate();
getsum();
billno();
AutoCompleteDecorator.decorate(jComboBox2);
this.setLocation(260, 10);
}
private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void
jComboBox2PopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent
evt) {
String tmp=(String)jComboBox2.getSelectedItem();
String sql1="SELECT * FROM `stock` WHERE `id`=?";
Connection con;
PreparedStatement pst;
ResultSet rs1;
try{
con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password");
pst=con.prepareStatement(sql1);
pst.setString(1, tmp);
37
rs1=pst.executeQuery();
if(rs1.next())
{
String add=rs1.getString("pname");
jTextField3.setText(add);
String add1=rs1.getString("mrp");
jTextField4.setText(add1);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
}
// bill no
public void billno()
{
String sql1="SELECT COUNT(*) FROM `bill`";
Connection con;
PreparedStatement pst;
ResultSet rs1;
try{
con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password");
pst=con.prepareStatement(sql1);
//pst.setInt(1, 20);
38
rs1=pst.executeQuery();
while(rs1.next())
{
//String add3=rs1.getString("pname");
int g=Integer.parseInt(rs1.getString(1));
g=g+1;
jTextField1.setText(String.valueOf(g));
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
}
//insert data into billtable
public void billupdate()
{
String query="INSERT INTO `bill`(bno,`cname`,amt,`pdate`)
VALUES("+jTextField1.getText()+",'"+jTextField2.getText()+"',"+jTextField7.getText
()+",'"+jTextField8.getText()+"');";
Connection con;
Statement st;
try{
con = con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root",
"password");
39
st = con.createStatement();
st.executeUpdate(query);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null ,e);
}
}
//Sum of jtable
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model =(DefaultTableModel) jTable1.getModel();
String s2= jTextField5.getText();//quantity
String s1=jTextField4.getText(); //mrp
int a=Integer.parseInt(s1);
int b;
b = Integer.parseInt(s2);
int c = a * b;
String result=String.valueOf(c);
model.addRow(new
Object[]{jTextField5.getText(),jTextField3.getText(),jTextField4.getText(),result});
getsum();
// Update query;
String sql1="UPDATE `stock` SET `available`=`available` -
'"+jTextField5.getText()+"' WHERE
`id`='"+String.valueOf(jComboBox2.getSelectedItem())+"'";
Connection con;
40
Statement st;
// ResultSet rs1;
try{
con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password");
st=con.createStatement();
//st.setString(1, tmp);
st.executeUpdate(sql1);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
}
public void getsum()
{
int sum=0;
for(int i=0; i<jTable1.getRowCount(); i++)
{
sum = sum + Integer.parseInt(jTable1.getValueAt(i,3).toString());
}
jTextField7.setText(Integer.toString(sum));
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model =(DefaultTableModel) jTable1.getModel();
model.removeRow(jTable1.getSelectedRow());
41
// Update query;
String sql1="UPDATE `stock` SET `available`=`available` +
'"+jTextField5.getText()+"' WHERE `pname`='"+jTextField3.getText()+"'";
Connection con;
Statement st;
// ResultSet rs1;
try{
con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password");
st=con.createStatement();
//st.setString(1, tmp);
st.executeUpdate(sql1);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
billupdate();
MessageFormat header=new MessageFormat("User Report");
MessageFormat footer=new MessageFormat("Page{0,number,integer}");
try{
jTable1.print(JTable.PrintMode.NORMAL, header, footer );
}
42
catch(java.awt.print.PrinterException e)
{
System.err.format("Cannot print %%n",e.getMessage());
}
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
DefaultTableModel model =(DefaultTableModel) jTable1.getModel();
jTextField5.setText(model.getValueAt( jTable1.getSelectedRow(), 0).toString());
jTextField4.setText(model.getValueAt( jTable1.getSelectedRow(), 2).toString());
jTextField3.setText(model.getValueAt( jTable1.getSelectedRow(), 1).toString());
}
public static String DateFormat = "yyyy-MM-dd";
public void showdate()
{
Calendar cal= Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat(DateFormat);
jTextField8.setText(format.format(cal.getTime()));
}
private void Fillcombo()
{
String sql;
sql = "SELECT * FROM `stock`";
Connection con;
PreparedStatement ps;
ResultSet rs;
43
try
{
con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password");
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next())
{
String id=rs.getString("id");
jComboBox2.addItem(id);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton4;
private javax.swing.JComboBox jComboBox2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
44
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JTextField jTextField7;
private javax.swing.JTextField jTextField8;
// End of variables declaration
}
Fig 7.3.2 Create Bill
45
7.3.3 Product Information
Fig 7.3.3 Product Information
7.3.4 Search Bill
Fig 7.3.4 Search bill
46
CHAPTER 8
TESTING
A process of executing a program with the explicit intention of finding errors, that is
making the program fail.
Software Testing
It is the process of testing the functionality and correctness of software by running it.
Process of executing a program with the intent of finding an error
A good test case is one that has a high probability of finding an as yet undiscovered
error. A successful test is one that uncovers an as yet undiscovered error.
Software Testing is usually performed for one of two reasons
Defect detection
Reliability estimation
Black Box Testing
Applies to software or module, tests functionality in terms of inputs and outputs at
Interfaces. Test reveals if the software is fully operational with reference to
requirements specification.
White Box Testing
Knowing the internal working i.e. to test if all internal operation are performed
according to program structure and data structures.
Testing Objective
The main aim of testing is to uncover a host of errors, systematically and with minimum
effort and time. Starting formally, we can say, Testing is a process of executing a
program with the intent of finding an error. A successful test is one that uncovers an as
yet undiscovered error.
As he good test case is one that has a high probability of finding errors, if it exists. But
there is one thing that testing cannot do testing cannot show the absence of defects it
can only show that software defects are present.
47
As the test results are gathered and evaluated they begin to give a qualitative indication
of the reliability of the software. If servers’ errors are detected, the overall quality of the
software is a natural suspect. If, on the other hand, all the errors, which are encountered,
are easily modifiable, then one of the two conclusions can be made:
For the purpose of the current system we are assuming that in the event that errors that
are easily modifiable points to the later possibility, since repeating the entire testing
routine can be very time consuming. What we propose to do instead is to get it tested
by one or more persons who are not a part of the development team but is well versed
with the subject and with the concept of software testing. If we cannot detect any
serious errors, it will enable us to state with the more confidence that the software does
actually conform to expected standards.
Test Plan
The importance of software testing and its implementations cannot be
overemphasized. Software testing is a critical element of Software Quality Assurance
and represents the ultimate review of the specifications, design and coding.
Testing Methodology
In order to uncover the errors present in the different phases we have the concept of
levels of testing. The basic levels of testing are as shown below:
Fig 8.1 Various levels of Testing
Test Cases
A strategy for software testing will begin in the following order
1. Unit testing
2. Integration testing
48
3. Validation testing
4. System testing
Unit Testing
It concentrates on each unit of the software as implemented in source code and is a
white box oriented. Using the component level design description as a guide, important
control paths are tested to uncover errors within the boundary of the module. In the unit
testing, the step can be conducted in parallel for multiple components.
Integration Testing
Here focus is on design and construction of the software architecture. Integration testing
is a systematic technique for constructing the program structure while at the same time
conducting test to uncover errors associated with interfacing. The objective is to take
unit tested components and build a program structure that has been dictated by design.
Validation Testing
In this requirements established as part of software requirements analysis are validated
against the software that has been constructed i.e., validation succeeds when software
function in a manner that can be reasonably expected by the customer.+
System Testing
Is the menu bar displayed in the appropriate contested some system related features
included either in menus or tools? Do pull –Down menu operation and Tool-bars work
properly? Are all menu function and pull down sub function properly listed?; Is it
possible to invoke each menu function using a logical assumptions that if all parts of the
system are correct, the goal will be successfully achieved .? In adequate testing or non-
testing will leads to errors that may appear few months later.
The purpose of the system testing is to consider all the likely variations to which it will
be suggested and push the systems to limits.
The testing process focuses on the logical intervals of the software ensuring that all
statements have been tested and on functional interval is conducting tests to uncover
errors and ensure that defined input will produce actual results that agree with required
results. Program level testing, modules level testing integrated and carried out.
49
CHAPTER 9
CONCLUSION
“Supermarket Management System” software developed for a company has been designed to
reduce the time taken to handle the sales activity. It is designed to replace an existing manual
record system for reducing time taken for calculations and for storing data. The system uses
JAVA Swing as front end and MySQL server as a backend for the database.
The system is strong to handle daily operations where the database is cleared over certain time.
This system will reduce manual work, calculations and will also provide periodic reports any
time.
The proposed supermarket management system is very useful for big supermarkets as well as
small ones to manage their inventories, staffs, and records of purchases and sales. New features
and modules can be easily added into the system, so the project is very flexible and can adapt to
the requirements of the supermarket and its users.
50
REFERENCE
 Bruce Eckel, Thinking in Java Third Edition, Publisher: Pearson Education.
 Herbert Schildt,The Complete Reference to Java 2, Publisher: Tata McGraw-Hill.
 Roger S. Pressman, Software Engineering-A practitioner’s approach, Publisher:
Tata McGraw-Hill.
 Grady Booch, James Rumbaing, Ivar Jacobson, The Unified Modelling Language
User Guide, Publisher: Pearson Education.
 Martin Fowler & Scott, UML Distilled Second Edition, Publisher Pearson
education
 Michael Morrison, Wireless Java with J2ME, Publisher Tec media

More Related Content

What's hot

IRJET- Smart Bus Ticket System using QR Code in Android App
IRJET-  	  Smart Bus Ticket System using QR Code in Android AppIRJET-  	  Smart Bus Ticket System using QR Code in Android App
IRJET- Smart Bus Ticket System using QR Code in Android AppIRJET Journal
 
Online Quiz System Project Report
Online Quiz System Project Report Online Quiz System Project Report
Online Quiz System Project Report Kishan Maurya
 
Bus management system
Bus management systemBus management system
Bus management systemShamim Ahmed
 
Student result mamagement
Student result mamagementStudent result mamagement
Student result mamagementMickey
 
BUS PASS MANAGEMENT SYSTEM
BUS PASS MANAGEMENT SYSTEMBUS PASS MANAGEMENT SYSTEM
BUS PASS MANAGEMENT SYSTEMKeerthi Keerthi
 
Online Cab Booking System Final Report
Online Cab Booking System Final ReportOnline Cab Booking System Final Report
Online Cab Booking System Final ReportPiyushPatil73
 
Smart Voting System with Face Recognition
Smart Voting System with Face RecognitionSmart Voting System with Face Recognition
Smart Voting System with Face RecognitionNikhil Katte
 
Railway Reservation System - Requirement Engineering
Railway Reservation System - Requirement EngineeringRailway Reservation System - Requirement Engineering
Railway Reservation System - Requirement EngineeringDanish Javed
 
Documentation of railway reservation system
Documentation of railway reservation systemDocumentation of railway reservation system
Documentation of railway reservation systemSandip Murari
 
Pinkle makhijani supermarket billing system vb project
Pinkle makhijani supermarket billing system vb projectPinkle makhijani supermarket billing system vb project
Pinkle makhijani supermarket billing system vb projectPinkleMakhijani
 
CSE Final Year Project Presentation on Android Application
CSE Final Year Project Presentation on Android ApplicationCSE Final Year Project Presentation on Android Application
CSE Final Year Project Presentation on Android ApplicationAhammad Karim
 
SRS on online auction system
SRS on online auction systemSRS on online auction system
SRS on online auction systemsagar_paperwala
 
Online Food Ordering System
Online Food Ordering SystemOnline Food Ordering System
Online Food Ordering SystemAnkita Jangir
 
A CASE Lab Report - Project File on "ATM - Banking System"
A CASE Lab Report - Project File on  "ATM - Banking System"A CASE Lab Report - Project File on  "ATM - Banking System"
A CASE Lab Report - Project File on "ATM - Banking System"joyousbharat
 
Graphical password authentication
Graphical password authenticationGraphical password authentication
Graphical password authenticationAsim Kumar Pathak
 
14.project online eamination system
14.project online eamination system14.project online eamination system
14.project online eamination systemjbpatel7290
 
Slambook report
Slambook reportSlambook report
Slambook reportritu garg
 

What's hot (20)

IRJET- Smart Bus Ticket System using QR Code in Android App
IRJET-  	  Smart Bus Ticket System using QR Code in Android AppIRJET-  	  Smart Bus Ticket System using QR Code in Android App
IRJET- Smart Bus Ticket System using QR Code in Android App
 
Online Quiz System Project Report
Online Quiz System Project Report Online Quiz System Project Report
Online Quiz System Project Report
 
Bus management system
Bus management systemBus management system
Bus management system
 
Student result mamagement
Student result mamagementStudent result mamagement
Student result mamagement
 
BUS PASS MANAGEMENT SYSTEM
BUS PASS MANAGEMENT SYSTEMBUS PASS MANAGEMENT SYSTEM
BUS PASS MANAGEMENT SYSTEM
 
Online Cab Booking System Final Report
Online Cab Booking System Final ReportOnline Cab Booking System Final Report
Online Cab Booking System Final Report
 
Smart Voting System with Face Recognition
Smart Voting System with Face RecognitionSmart Voting System with Face Recognition
Smart Voting System with Face Recognition
 
Railway Reservation System - Requirement Engineering
Railway Reservation System - Requirement EngineeringRailway Reservation System - Requirement Engineering
Railway Reservation System - Requirement Engineering
 
Online quiz system
Online quiz systemOnline quiz system
Online quiz system
 
Documentation of railway reservation system
Documentation of railway reservation systemDocumentation of railway reservation system
Documentation of railway reservation system
 
Pinkle makhijani supermarket billing system vb project
Pinkle makhijani supermarket billing system vb projectPinkle makhijani supermarket billing system vb project
Pinkle makhijani supermarket billing system vb project
 
CSE Final Year Project Presentation on Android Application
CSE Final Year Project Presentation on Android ApplicationCSE Final Year Project Presentation on Android Application
CSE Final Year Project Presentation on Android Application
 
SRS on online auction system
SRS on online auction systemSRS on online auction system
SRS on online auction system
 
Online Food Ordering System
Online Food Ordering SystemOnline Food Ordering System
Online Food Ordering System
 
Restaurant Management System
Restaurant Management SystemRestaurant Management System
Restaurant Management System
 
A CASE Lab Report - Project File on "ATM - Banking System"
A CASE Lab Report - Project File on  "ATM - Banking System"A CASE Lab Report - Project File on  "ATM - Banking System"
A CASE Lab Report - Project File on "ATM - Banking System"
 
Graphical password authentication
Graphical password authenticationGraphical password authentication
Graphical password authentication
 
Online railway reservation system
Online railway reservation systemOnline railway reservation system
Online railway reservation system
 
14.project online eamination system
14.project online eamination system14.project online eamination system
14.project online eamination system
 
Slambook report
Slambook reportSlambook report
Slambook report
 

Similar to Quickbill

04.project billing system
04.project billing system04.project billing system
04.project billing systemgirivaishali
 
FINAL PROJECT REPORT1
FINAL PROJECT REPORT1FINAL PROJECT REPORT1
FINAL PROJECT REPORT1waqar younas
 
Synopsis on billing system
Synopsis on billing systemSynopsis on billing system
Synopsis on billing systemAlok Sharma
 
Bank Management System.docx
Bank Management System.docxBank Management System.docx
Bank Management System.docxNikhil Patil
 
Inventory Managment
Inventory ManagmentInventory Managment
Inventory Managmentsai prakash
 
Project black book TYIT
Project black book TYITProject black book TYIT
Project black book TYITLokesh Singrol
 
Projectblackbook tyit-170121122010
Projectblackbook tyit-170121122010Projectblackbook tyit-170121122010
Projectblackbook tyit-170121122010ShivanchalSingh
 
TY CS Black book Construction - Dinesh48
TY CS Black book Construction - Dinesh48TY CS Black book Construction - Dinesh48
TY CS Black book Construction - Dinesh48Dinesh Jogdand
 
stock docsvvvvvddddddddddsssssssssss-1.pdf
stock docsvvvvvddddddddddsssssssssss-1.pdfstock docsvvvvvddddddddddsssssssssss-1.pdf
stock docsvvvvvddddddddddsssssssssss-1.pdftrranjith97
 
BOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECT
BOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECTBOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECT
BOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECTRavi Teja P
 
13.project core banking system
13.project core banking system 13.project core banking system
13.project core banking system Birjesh Kumar
 
Sales and inventory management system project report
Sales and inventory management system project reportSales and inventory management system project report
Sales and inventory management system project reportFuckboy123
 
CPPMicroProject[1].pdf
CPPMicroProject[1].pdfCPPMicroProject[1].pdf
CPPMicroProject[1].pdfragimi3592
 
Inventory management System
Inventory management SystemInventory management System
Inventory management SystemAl Mahmud Shuvo
 
ProjectReport.docx project report pdf file
ProjectReport.docx project report pdf fileProjectReport.docx project report pdf file
ProjectReport.docx project report pdf filekomkar98230
 
ProjectReport.docx project documentation
ProjectReport.docx project documentationProjectReport.docx project documentation
ProjectReport.docx project documentationkomkar98230
 
TY BSc.IT Blackbook Main Report
TY BSc.IT  Blackbook  Main ReportTY BSc.IT  Blackbook  Main Report
TY BSc.IT Blackbook Main ReportAkashChauhan139
 
Real Estate Management System in Vb.Net
Real Estate Management System in Vb.NetReal Estate Management System in Vb.Net
Real Estate Management System in Vb.NetNafis Shaikh
 

Similar to Quickbill (20)

04.project billing system
04.project billing system04.project billing system
04.project billing system
 
FINAL PROJECT REPORT1
FINAL PROJECT REPORT1FINAL PROJECT REPORT1
FINAL PROJECT REPORT1
 
Synopsis on billing system
Synopsis on billing systemSynopsis on billing system
Synopsis on billing system
 
Bank Management System.docx
Bank Management System.docxBank Management System.docx
Bank Management System.docx
 
Inventory Managment
Inventory ManagmentInventory Managment
Inventory Managment
 
Project black book TYIT
Project black book TYITProject black book TYIT
Project black book TYIT
 
Projectblackbook tyit-170121122010
Projectblackbook tyit-170121122010Projectblackbook tyit-170121122010
Projectblackbook tyit-170121122010
 
TY CS Black book Construction - Dinesh48
TY CS Black book Construction - Dinesh48TY CS Black book Construction - Dinesh48
TY CS Black book Construction - Dinesh48
 
stock docsvvvvvddddddddddsssssssssss-1.pdf
stock docsvvvvvddddddddddsssssssssss-1.pdfstock docsvvvvvddddddddddsssssssssss-1.pdf
stock docsvvvvvddddddddddsssssssssss-1.pdf
 
BOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECT
BOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECTBOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECT
BOOKS FOR CASH ON DELIVERY-INTERNSHIP PROJECT
 
13.project core banking system
13.project core banking system 13.project core banking system
13.project core banking system
 
Sales and inventory management system project report
Sales and inventory management system project reportSales and inventory management system project report
Sales and inventory management system project report
 
CPPMicroProject[1].pdf
CPPMicroProject[1].pdfCPPMicroProject[1].pdf
CPPMicroProject[1].pdf
 
Inventory management System
Inventory management SystemInventory management System
Inventory management System
 
Document(1)
Document(1)Document(1)
Document(1)
 
ProjectReport.docx project report pdf file
ProjectReport.docx project report pdf fileProjectReport.docx project report pdf file
ProjectReport.docx project report pdf file
 
ProjectReport.docx project documentation
ProjectReport.docx project documentationProjectReport.docx project documentation
ProjectReport.docx project documentation
 
TY BSc.IT Blackbook Main Report
TY BSc.IT  Blackbook  Main ReportTY BSc.IT  Blackbook  Main Report
TY BSc.IT Blackbook Main Report
 
Real Estate Management System in Vb.Net
Real Estate Management System in Vb.NetReal Estate Management System in Vb.Net
Real Estate Management System in Vb.Net
 
Hospital management system
Hospital management systemHospital management system
Hospital management system
 

Recently uploaded

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Quickbill

  • 1. A Project on QUICK BILL Submitted In partial fulfillment of the requirements for the Award of the degree of BACHELOR OF TECHONOLOGY IN COMPUTER SCIENCE & ENGINEERING Submitted by SAMEER ALAM (1352510045) PRACHI PANDEY (1352510034) ARVIND AGRAHARI (1352510016) NEELAM SINGH (1452510905) Under the guidance of MS. SWETA (Asst. Professor) BUDDHA INSTITUTE OF TECHNOLOGY CL-1, SECTOR-7 GIDA (GORAKHPUR), UP (INDIA) - 273209 (AFFILIATED TO Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY), LUCKNOW, UP (INDIA) APRIL, 2017
  • 2. A Project on QUICK BILL Submitted In partial fulfillment of the requirements for the Award of the degree of BACHELOR OF TECHONOLOGY IN COMPUTER SCIENCE & ENGINEERING Submitted by SAMEER ALAM (1352510045) PRACHI PANDEY (1352510034) ARVIND AGRAHARI (1352510016) NEELAM SINGH (1452510905) Under the guidance of MS. SWETA (Asst. Professor) BUDDHA INSTITUTE OF TECHNOLOGY CL-1, SECTOR-7 GIDA (GORAKHPUR), UP (INDIA) - 273209 (AFFILIATED TO Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY), LUCKNOW, UP (INDIA) APRIL, 2017
  • 3. ii DECLARATION I hereby declare that the project entitled “Quick bill” submitted for the B.Tech. (CSE) degree is my original work and the project has not formed the basis for the award of any other degree, diploma, fellowship or any other similar titles. Place: Date: Signature of the Student
  • 4. iii CERTIFICATE This is to certify that Sameer Alam, Arvind Agrahari, Prachi Pandey and Neelam Singh, a student of B Tech (CSE) of BUDDHA INSTITUE OF TECHNOLOGY, (Gorakhpur) have completed the project work entitled “Quick Bill” in partial fulfillment of the requirements for the award of Bachelor of Technology in Computer Science and Engineering affiliated to Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY, (Lucknow) under my guidance during the academic year 2016-17. Place: Date: Ms. Sweta Mr. Sachidanand Chaturvedi (Asst. Professor) (Head Of Department) Department of CS & Engg. Department of CS & Engg.
  • 5. iv ACKNOWLEDGEMENT It gives us great pleasure in presenting this project report titled “Quick bill”. On this momentous occasion, we wish to express our immense gratitude to the range of people who provided invaluable support in the completion of this project. Their guidance and encouragement has helped in making this project a great success. Many thanks to our project guide Assistant Professor Ms. Sweta. Without her guidance and motivation this report would not have been completed. We express many thanks to our HOD Mr. Sachidanand Chaturvedi, he has given us the opportunity to write the report and without missing to acknowledge those references with the help of which this report work has been properly done Sameer Alam (1352510045) Prachi Pandey (1352510034) Arvind Agrahari (1352510016) Neelam Singh (1452510905)
  • 6. v ABSTRACT This software project is a supermarket billing system with some added functionality. This system is built for fast data processing and bill generation for supermarket customers. The billing system consists of mysql database and effective front end designed. The billing database is a vast collection of product name, price and other product specific data. A product when billed is searched from the database and its price is added to the bill based upon the product quantity. The billing server simultaneously starts billing for the particular cart. In case the customer removes an item from the cart, the server immediately recognizes it and aligns the billing accordingly. Once the customer acknowledges the server to provide the bill, the server provides the gross amount. The customer on paying the bill is provided an acknowledgement by the server and the goods are dispatched to the customer by the time. The advantages of using such a system is that the time taken for billing huge amount of items is reduced greatly and it is very useful and secured in big shopping complexes The system also contains discounts on various products so that the product is offered at discounted price while billing. The supermarket billing system is built to help supermarkets calculate and display bills and serve the customer in a faster and efficient manner. This software project consists of an effective and easy Guide to help the employee in easy bill calculation and providing an efficient customer service
  • 7. vi TABLE OF CONTENTS Declaration ii Certificate iii Acknowledgement iv Abstract v Table of Content vi List of Figures viii List of Tables ix CHAPTER 1 INTRODUCTION 1 1.1 Overview 1 1.2 Objective 1 1.3 Future Scope 1 CHAPTER 2 LITERATURE REVIEW 2 2.1 Analysis of Present Software 2 2.2 Existing System facing problems 2 2.3 Characteristics of Proposed System 2 CHAPTER 3 FEASIBILITY ANALYSIS 3 3.1 Need for Feasibility Study 4 CHAPTER 4 METHODOLOGY 6 4.1 Waterfall Life Cycle Model 6 CHAPTER 5 TECHNOLOGY USED 8 5.1 MySQL 8 5.2 JDBC 8
  • 8. vii 5.3 JDBC Architecture 9 5.4 Netbeans 10 5.4.1 Application 11 CHAPTER 6 SOFTWARE DESIGN DESCRIPTION 12 6.1 Input Design 12 6.2 Output Design 14 6.3 UML Diagram 14 6.4 Data Flow Diagrams 16 6.5 Database Design 18 CHAPTER 7 SAMPLE CODE AND SCREENSHOTS 20 7.1 Quickbill Home 20 7.2 Admin Login 22 7. 2.1 Admin Home 25 7.2.2 Add Cashier 27 7.2.3 Update Stock 34 7.3 Cashier Login 34 7.3.1 Cashier Home 35 7.3.2 Create Bill 35 7.3.3 Product Information 45 7.3.4 Search Bill 45 CHAPTER 8 TESTING 46 CHAPTER 9 CONCLUSION 49 REFERENCES 50
  • 9. viii LIST OF FIGURES S.No FIGURE NAME PAGE NO 4.1 Waterfall Life Cycle Model 6 5.3 JDBC Architecture 9 6.4.1 Cashier Registration 16 6.4.2 Maintain Stock Details 17 6.4.3 Billing 17 6.4.4 Product Search 17 6.4.5 Search Bill 18 7.1 Quick Bill 21 7.2 Admin Login 24 7.2.1 Admin Home 27 7.2.2 Add Cashier 33 7.2.3 Update Stock 34 7.3 Cashier Login 34 7.3.1 Cashier Home 35 7.3.2 Create Bill 44 7.3.3 Product Information 45 7.3.4 Search Bill 45 8.1 Various Level of Testing 47
  • 10. ix LIST OF TABLES S.No TABLE NAME PAGE NO 6.5.1 Admin details 18 6.5.2 Cashier details 18 6.5.3 Stock details 19 6.5.4 Bill details 19
  • 11. 1 CHAPTER 1 INTRODUCTION 1.1 Overview The project is on Supermarket Billing. Supermarket is the place where customers come to purchase their daily using products and pay for that. So there is a need to calculate how many products are sold and to generate the bill for the customer. The aim is to automate its existing manual system by the help of computerized equipment and full- fledged computer software, fulfilling the requirements, so that their valuable data/information can be stored for a longer period with easy accessing and manipulation of the same. For easy and convenient processing we need to develop software, which work as per our requirements. While preparing this software we got to remember few things i.e. this software must have a friendly environment, in other words it should not be much complicated to handle, it should have option for future modification in the database i.e. in the goods list, new items and workers list. For smooth functioning we had to prepare a database by which we could enter the required data in their respective locations. In this database all the record of daily entry made are stored, so that we can use them in future whenever allotted to their caretaker. Other than that no one could use this and on entering an illegal password or login name an error message get displayed. 1.2 Objective This project will serve the following objectives:- 1 Add and maintain records of available products. 2 Add and maintain customer details. 3 Add and maintain description of new products. 4 Add and maintain new entered category of products. 5 Provides economic/financial reports to the owner monthly or weekly and yearly. 6 Provides a convenient solution of billing pattern. 7 Make an easy to use environment for users and customers. 1.3 Future Scope 1 This project will help the store keeper in fast billing 2 This project enable store keeper to maintain a great database of all customers visited and purchase product from store. 3 Project will enable to see report regarding product and category. 4 Easy to maintain in future prospect.
  • 12. 2 CHAPTER 2 LITERATURE REVIEW 2.1 Analysis of Present System Before we begin a new system it is important to study the system that will be improved or replaced (if there is one). We need to analyze how this system uses hardware, software, network and the people resources to convert data resources, such as transaction data, into information products, such as reports and displays. Thus we should document how the information system activities of input, processing, output, storage and control are accomplished. 2.2 Existing System facing some problems 1. Inability of modification of data: The managing of huge data effectively and efficiently for efficient results, storing the details of the consumers etc. in such a way that the database can be modified as not possible in the current system. 2. Not user friendly: The existing system is not user friendly because the retrieval and storing of data is slow and data is not maintained efficiently. 3. Difficulty in reports generating: Either no reports generating in a current system or they are generated with great difficulty reports take time to generate in the current system. 4. Manual operator control: Manual operator control is there and lead to a lot of chaos and errors. 5. Lot of paperwork: Existing system requires lot of paper work and even a small transaction require many papers fill. Moreover any unnatural cause (such as fire in the organization) can destroy all data of the organization. Loss of even a single paper led to difficult situation because all the papers are interrelated. 6. Inability of sharing the data: Data cannot be shared in the existing system. This means that no two persons can use the same data in existing system. Also the two departments in an organization cannot interact with each other without the actual movement of data. 7. No support in decision-making: Existing system does not support managerial decision-making. 8. No support in strategic competitive advantage: Existing system do not support strategic competitive advantages. 2.3 Characteristics of Proposed System 1. Easiness in modification of data: The proposed system provides managing of huge data effectively and efficiently for efficient results, storing the details of the customers, employees etc. in such a way that the database can be modified.
  • 13. 3 2. User friendly: The proposed system is user friendly because the retrieval and storing of data is fast and data is maintained efficiently. Moreover the graphical user interface is provided in the proposed system, which provides user to deal with the system very easily. 3. Reports are easily generated: Reports can be easily generated in a proposed system. So any type of reports can be generated in a proposed system, which helps the managers in a decisions-making activity. 4. Sharing the data is possible: Data can be shared in proposed system. This means that two or more persons can use the same data in existing system provided that they have right to access that data. Also the two or more departments in an organization can easily interact with each other without the actual movement of data. 5. No or very few paperwork: The proposed system either does not require paper work or very few paper works is required. All the data is feted into the computer immediately and various bills and reports can be generated through computers. Since all the data is kept in a database no data of the organization can be destroyed. Moreover work becomes very easy because there is no need to keep data on papers. 6. Support strategic competitive advantage: Proposed system support strategic competitive advantages. Since the proposed systems provide easiness in reports generating it will provide strategic advantages among competitors. 7. Computer operator control: Computer operator control will be there no errors. Moreover storing and retrieving of information is easy. So work can be done speedily and in time.
  • 14. 4 CHAPTER 3 FEASIBILITY ANALYSIS Title: Feasibility report for the computerization of the various activities of the company. Background: The Company facing the problem of inconsistent and out of time information in its activities. Very much time is consuming for report generation, which is not very helpful for decision making. So we want a system, which provide immediate information. Method of study: The analysis procedure comprised of field trips in the various departments of the company. The following documents and sources were looked up:  The purchase order that contain items to be purchased.  The accounts register.  Purchase order issues to vendors.  Bills receive from vendors.  Bills give to the customers.  Purchase return forms (if any) give to vendors. 3.1 Need for Feasibility study The feasibility study is carried out to test whether the proposed system is worth being implemented. Feasibility study is a test of system proposed regarding its work ability, its impact on the organization ability to meet user needs and effective use of resources. It is usually carried out by a small number of people who are familiar with the information system techniques, understand the part of the business or organization that will be involved or effected by the project and are skilled in the system analysis and design process. The key consideration involve in the feasibility study are: 1. Technical 2. Behavioral 3. Economic 1. Technical Feasibility Technical feasibility centers on the existing computer system (hardware, software etc) and to what extent it can support the proposed system addition. For example, if the current system is operating at 70% capacity (an arbitrary value), then another application could overload the system or require additional hardware. If the budget is serious constrain then the project is judged not feasible. 2. Behavioral Feasibility An evaluation of the behavior of the end users, which may effect the envelopment of the system. People are inherently resistant to change and computers have to know to facilitate changes and computers have to known to facilitate changes. An estimate should be made of how strong a reaction the user staff is likely to have towards the
  • 15. 5 development of a computerized system. It is a common knowledge that a computer installation has something to do with turnover, transfer, retraining and changes in employee job status, therefore the introduction of a candidate system requires special effort to educate, sell and train the staff on new ways of conducting business. The personal of the user organization will be affected by the proposed system. As the aim of the system is only to satisfy the information needs, no employees will lose their position by the proposed system. In fact the proposed system will help the organization in reducing the voluminous work involved. Also the involvement of users in every stage of the project is going to increase the success factor. The staff in not well educated for running a computerized system. They are adamant in perceiving a mechanical process of working as they have long been used to the manual entry system. This aspect needs considerable amount of attention. Our system is also feasible for organization because it supports of the organization and its strategic plan. 3. Economic Feasibility The procedure is to determine the benefits and savings that are expected from a candidate system and compare it with the costs. If a benefit outweighs costs, then the decision is made to design and implement the system. Otherwise further alterations are made in the proposed system 1. Manpower cost 2. Hardware and software cost.
  • 16. 6 CHAPTER 4 METHODOLOGY 4.1 Waterfall Life Cycle Model Waterfall model states that the phases (analysis, design, and coding, testing, support) are systematized in a linear order and each phase should accomplished entirely earlier of the next phase begins. In this way the step by step phase initially analyzing phase is completed and that output takes place at the end of analyze phase after that output will be given as input for the design phase, depending on the inputs it generates all design steps, like ways all phases processed and produced all successful outputs, And will to find out whether the project is pursuing on the exact path or not. If not the project may be discard or any other action takes place to continue. The model is the most commonly used and also known as linear sequential lifecycle model. Fig 4.1 Waterfall Life Cycle Model
  • 17. 7 Advantages: 1. This model is very easy to use and implement. 2. Each phase is completed at a time and processed. 3. This model better works for smaller projects if only the requirements are well understood. 4. In each phase have deliverables and that must be reviewed. Disadvantages: 1 If the requirements are gathered are inaccurate then the final product is inaccurate and the error is known in the final phase of the model. Any sort of errors that cannot be detected in any previous phase. 2 For long, object-oriented, complex and ongoing projects it’s a poor model. 3 This model has high risks.
  • 18. 8 CHAPTER 5 TECHNOLOGIES 5.1 MySQL MySQL is a fast, easy-to-use RDBMS being used for many small and big businesses. MySQL is developed, marketed, and supported by MySQL AB, which is a Swedish company. MySQL is becoming so popular because of many good reasons: 1 MySQL is released under an open-source license. So you have nothing to pay to use it. 2 MySQL is a very powerful program in its own right. It handles a large subset of the functionality of the most expensive and powerful database packages. 3 MySQL uses a standard form of the well-known SQL data language. 4 MySQL works on many operating systems and with many languages including PHP, PERL, C, C++, JAVA, etc. 5 MySQL works very quickly and works well even with large data sets. 6 MySQL is very friendly to PHP, the most appreciated language for web development. 7 MySQL supports large databases, up to 50 million rows or more in a table. The default file size limit for a table is 4GB, but you can increase this (if your operating system can handle it) to a theoretical limit of 8 million terabytes (TB). 8 MySQL is customizable. The open-source GPL license allows programmers to modify the MySQL software to fit their own specific environments. 5.2 JDBC (JAVA DATABASE CONNECTIVITY) JDBC technology is an API(included in both J2SE and J2EE releases) that provides cross DBMS connectivity to a wide range of SQL database and access to other tabular data sources, such as spreadsheets or flat files. With a JDBC technology-enabled driver, you can connect all corporate data even in a heterogeneous environment.
  • 19. 9 The JDBC API makes it possible to do three things:  Establish a connection with a database or access any tabular data source  Send SQL statements  Process the results Types of JDBC Drivers A JDBC-ODBC bridge provides JDBC API access via one or more ODBC drivers. A native-API partly Java technology-enabled driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS. A net-protocol fully Java technology-enabled driver translates JDBC API calls into a DBMS-independent net protocol which is then translated to a DBMS protocol by a server. A native-protocol fully Java technology-enabled driver converts JDBC technology calls into the network protocol used by DBMSs directly. 5.3 JDBC Architecture The JDBC Architecture consists of two layers: The JDBC API, which provides the application-to-JDBC Manager connection. The JDBC Driver API, which supports the JDBC Manager-to-Driver Connection. The JDBC API uses a driver manager and database-specific drivers to provide transparent connectivity to heterogeneous databases. The JDBC driver manager ensures that the correct driver is used to access each data source. Java JDBC JDBC Driver JDBC JDBC JDBC Oracl SQL ODB C
  • 20. 10 Fig 5.3 JDBC Architecture 5.4 Netbeans NetBeans is first and foremost a well-crafted open source programmer's integrated development environment (IDE). It's powerful, it's useful, it's extensible, it's open and it's free. The practices which Net Beans imposes are fully as intricate as your current development practices. More intricate, perhaps, because if you are a real programmer, you will wish to supplement your work style with Net Beans rather than attempting to use Net Beans to completely replace your current work style. The practice of Net Beans development is not easier. It's just more effective than what you were doing before Net Beans. It provides the services common to creating desktop applications such as window and menu management, settings storage and is also the first IDE to fully support JDK 5.0 features. Features Net Beans offers all the usual and expected features of an IDE:  A syntax-coloring editor aware not only of the Java language.  Component inspector  Object browser  Debugger  Integrated source control support for  External CVS  Built-in CVS  Most external source control systems of your choice 5.4.1 Application The Net Beans platform and IDE are free for commercial and non-commercial use, and they are supported by Sun Microsystems. It can be downloaded from http://www.netbeans.org/ to be able to successfully build programs it is recommended to follow the intended procedure, described here. First it’s important to create a new project. Various project types are available however in this case the intended type will be Java Application.
  • 21. 11 It is recommended that you change the name of the project to something of this sort: unit_1.Here the chosen location is: netbeans_home/workspace. To keep control over the way that classes (e.g. the main launching class) are defined it is recommended to uncheck the two check boxes. After Finish is clicked the new project structure will be in place, however we now need to extend this by adding a new package. In this manner classes associated with the same topics can be stored in one package. The end result will be multiple packages in one project, each having a number of classes (programs). The process is simple, just right-click on the Source Package label in Net Beans’ Projects tab and click New -> Java Package. Here we will label the package as exercises. Clicking Finish will terminate this process. Next we will create a simple class example and store it within our newly created package. This process is very straight forward and involves a right-click on the appropriate exercises package, after which we choose Java Class. Set the class name to Welcome. The other details can be checked to verify that all is as intended. The new class structure will be generated and at this point we need to edit the code and add the necessary lines. Note that the first line of code is referring to the package name in which this class will be stored. The code is missing a main method (since we un checked the check box previously, which we add. Within this method we also need to add the line System.out.println (“Welcome to Java”); Notice that while adding this line of code Net Beans’ editor will be suggesting stuff to make our lives easier. The next step is to either save , compile and execute our program, or else execute it directly (which will automatically save and compile). Any output from the executed program will be displayed in the terminal window. In the above example the program executed correctly and the intended message “Welcome to Java” displayed. If some compile time and runtime errors were encountered, the appropriate exception message would have also been displayed in this window.
  • 22. 12 CHAPTER 6 SOFTWARE DESIGN DESCRIPTION Design Design is the first step in the development phase for any engineering product or system. It may be defined as a “the process of applying various techniques and principles for the purpose of defining a device, a process, or a system insufficient detail to permit its physical realization”. Software design is an iterative process through which requirements are translated into a “blue print” for the constructing software. The design is represented at high level of abstraction, a level that can be directly translated to a specific data, functional behavior requirements. Preliminary design is concerned the transformation of requirements into a data and software architecture. The design is solution, a “how to” approach to the creation of a new system. This is composed of several steps. It provides the understanding and procedural details necessary for implementing the system recommended. The database design transforms the information domain model created during analysis into the data structures that will be required to implemented software. The architecture design describes how the software communicates within itself, to systems that interoperate with it, and with humans who use it. An interface implements flow of information. The interface design describes how the software communicates within itself, to systems that interoperate with it, and with humans who use it. An interface implements flow of information. 6.1 Input Design Input design is the process of converting user-oriented input to a computer based format. Input design is a part of overall system design, which requires very careful attention. Often the collection of input data is the most expensive part of the system. The main objectives of the input design are
  • 23. 13 1 Produce cost effective method of input 2 Achieve highest possible level of accuracy 3 Ensure that the input is acceptable to and understood by the staff. 6.1.1 Input data The goal of designing input data is to make entry easy, logical and free from errors as possible. The entering data entry operators need to know the allocated space for each field; field sequence and which must match with that in the source document. The format in which the data fields are entered should be given in the input form .Here data entry is online; it makes use of processor that accepts commands and data from the operator through a key board. The input required is analyzed by the processor. It is then accepted or rejected. Input stages include the following processes:  Data Recording  Data Transcription  Data Conversion  Data Verification  Data Control  Data Transmission  Data Correction One of the aims of the system analyst must be to select data capture method and devices, which reduce the number of stages so as to reduce both the changes of errors and the cost .Input types, can be characterized as:  External  Internal  Operational  Computerized  Interactive Input files can exist in document form before being input to the computer. Input design is rather complex since it involves procedures for capturing data as well as inputting it to the computer.
  • 24. 14 6.2 Output Design Outputs from computer systems are required primarily to communicate the results of processing to users. They are also used to provide a permanent copy of these result for latter consultation .Computer output is the most important and direct source of information to the users. Designing computer output should proceed in an organized well throughout the manner. The right output must be available for the people who find the system easy o use. The outputs have been defined during the logical design stage. If not, they should defined at the beginning of the output designing terms of types of output connect, format, response etc. Various types of outputs are:  External outputs  Internal outputs  Operational outputs  Interactive outputs  Turn around outputs All screens are informative and interactive in such a way that the user can fulfill his requirements through asking queries. 6.3 UML Diagrams Design is the place where quality is fostered in software development. Design is the only way that we can accurately translate a user’s requirements into a finished software product or system. Software design serves as the foundation for all software engineers and software maintenance steps that follow. Without design we risk building an unstable design – one that will fail when small changes are made, one that may be difficult to test, and one whose quantity cannot be assessed until late in the software engineering process. Taking software requirements specification document of analysis phase as input to the design phase we have drawn Unified Modeling Language (UML) diagrams. UML depends on the Visual modeling of the system. Visual modeling is the process of taking the information from the model and displaying it graphically using some sort of
  • 25. 15 standards set of graphical elements. UML Diagrams are drawn using the Visual Paradigm Software. We seem to be able to understand complexity better when it is displayed to us visually as opposed to written textually. By producing visual models of a system, we can show how system works on several levels. We can model the interactions between the users and the system. Types of UML Diagrams Each UML diagram is designed to let developers and customers view a software system from a different perspective and in varying degrees of abstraction. UML diagrams commonly created in visual modeling tools include: Use Case Diagram: Displays the relationship among actors and use cases. Class Diagram: Models class structure and contents using design elements such as classes, packages and objects. It also displays relationships such as containment, inheritance, associations and others. Interaction Diagrams: Sequence Diagram: Displays the time sequence of the objects participating in the interaction. This consists of the vertical dimension (time) and horizontal dimension (different objects). Collaboration Diagram: Displays an interaction organized around the objects and their links to one another. Numbers are used to show the sequence of messages. State Diagram: Displays the sequences of states that an object of an interaction goes through during its life in response to received stimuli, together with its responses and actions. Activity Diagram: Displays a special state diagram where most of the states are action states and most of the transitions are triggered by completion of the actions in the source states. This diagram focuses on flows driven by internal processing. Physical Diagrams: Component Diagram: Displays the high level packaged structure of the code itself. Dependencies among components are shown, including source code components, binary code components, and executable components. Some components exist at compile time, at link time, at run times well as at more than one time. Deployment Diagram: Displays the configuration of run-time processing elements and the software components, processes, and objects that live on them. Software component instances represent run-time manifestations of code units.
  • 26. 16 Views of UML Diagrams Considering that the UML diagrams can be used in different stages in the life cycle of a system, let us take a look at the "4+1 view" of UML diagrams. The 4+1 view offers a different perspective to classify and apply UML diagrams. The 4+1 view is essentially how a system can be Each of these views represents how a system can be modeled. This will enable us to understand where exactly the UML diagrams fit in and their applicability. viewed from a software life cycle perspective. Each of these views represents how a system can be modeled. This will enable us to understand where exactly the UML diagrams fit in and their applicability. The different views are: Design View: The design view of a system is the structural view of the system. This gives an idea of what a given system is made up of. Class diagrams and object diagrams form the design view of the system. Process View: The dynamic behavior of a system can be seen using the process view. The different diagrams such as the state diagram, activity diagram, sequence diagram, and collaboration diagram are used in this view. Component View: Component view shows the grouped modules of a given system modeled using the Use case View: Finally, we have the use case view. Use case diagrams of UML are used to view a system from this perspective as a set of discrete activities or transactions. 6.4 DATA FLOW DIAGRAMS 6.4.1 Cashier Registration:
  • 27. 17 Request Cashier Information Response Cashier Information Response Fig 6.4.1 Cashier Registration 6.4.2 Maintain Stock details: Request Stock Information Response Stock Information Response Fig 6.4.2 Maintain Stock detail 6.4.3 Create Bill: Request Request Bill request Response Response Bill Response Fig 6.4.3 Create Bill 6.4.4 Product Search: Request Product Information Response Product Information Response Fig 6.4.4 Product Search. Admin Server Cashier database Admin Server Stock database Customer Server Bill database Cashier Cashier Server Stock database
  • 28. 18 6.4.5 Bill Search: Request Bill No Response Bill Information Fig 6.4.5 Bill Search. 6.5 Database Design 6.5.1 Admin Details: Field Type Null Key Default Extra Username varchar(15) YES NULL Password varchar(15) YES NULL Table 6.5.1 Admin details 6.5.2 Cashier Details: Field Type Null Key Default Extra Id int(15) NO PRI NULL auto-increment Name varchar(15) YES NULL Mno varchar(15) YES NULL Address varchar(15) YES NULL Email varchar(15) YES NULL Password varchar(15) YES NULL Table 6.5.2 Cashier detail Cashier Server Stock database
  • 29. 19 6.5.3 Stock Details: Field Type Null Key Default Extra Id int(15) NO PRI NULL Pname varchar(15) YES NULL Available int(15) YES NULL Mrp int(15) YES NULL Table 6.5.3 Stock detail 6.5.4 Bill Details: Field Type Null Key Default Extra Bno int(15) NO PRI NULL auto-increment Cname varchar(15) YES NULL Amt int(15) YES NULL Pdate Date YES NULL Table 6.5.3 Bill detail
  • 30. 20 CHAPTER 7 SAMPLE CODE AND SCREENSHOTS 7.1 Quick bill : Code : import java.awt.event.*; import java.awt.*; public class Quickbill extends javax.swing.JFrame { public Quickbill() { initComponents(); this.setLocation(300,100); } public void close(){ WindowEventwinClosingEvent=new WindowEvent(this,WindowEvent.WINDOW_CLOSING); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { close(); AdminLogin al=new AdminLogin(); al.setVisible(true); } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { close(); CashLogin cash=new CashLogin();
  • 31. 21 cash.setVisible(true);// TODO add your handling code here: } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Quickbill().setVisible(true); } }); } private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel2; } Fig 7.1 Quick bill
  • 32. 22 7.2 Admin Login Code: import java.awt.event.*; import java.awt.*; import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; private void at1ActionPerformed(java.awt.event.ActionEvent evt) { } private void abtnActionPerformed(java.awt.event.ActionEvent evt) { close(); Connection con; PreparedStatement ps; try { con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password"); ps=con.prepareStatement("SELECT `username`,`password` FROM `admin` WHERE `username`=? AND `password`=?;"); ps.setString(1,at1.getText()); ps.setString(2, String.valueOf(at2.getPassword())); ResultSet rs=ps.executeQuery(); if(rs.next()) { MainFrame main=new MainFrame();
  • 33. 23 main.setVisible(true); } else { JOptionPane.showMessageDialog(null, "Invalid Username or Password"); } } catch (SQLException ex) { Logger.getLogger(AdminLogin.class.getName()).log(Level.SEVERE, null, ex); } } private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) { if(jCheckBox1.isSelected()) { at2.setEchoChar((char)0); } else{ at2.setEchoChar('*'); } } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new AdminLogin().setVisible(true); } });
  • 34. 24 } private javax.swing.JButton abtn; private javax.swing.JLabel al1; private javax.swing.JLabel al2; private javax.swing.JTextField at1; private javax.swing.JPasswordField at2; private javax.swing.JCheckBox jCheckBox1; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; // End of variables declaration } Fig 7.2 Admin Login
  • 35. 25 7.2.1 Admin Home Code: import MyFrames.AddCash; import MyFrames.PerPro; import MyFrames.PerDay; import MyFrames.Transaction; import MyFrames.UpdateStock; import MyFrames.ViewCashier; import MyFrames.ViewStock; public class MainFrame extends javax.swing.JFrame { private void CashviewActionPerformed(java.awt.event.ActionEvent evt) { AddCash ac=new AddCash(); this.desktop.add(ac); ac.setVisible(true); } private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); } private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { UpdateStock us=new UpdateStock(); this.desktop.add(us); us.setVisible(true); // stock add TODO add your handling code here: }
  • 36. 26 private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) { Transaction ts=new Transaction(); this.desktop.add(ts); ts.setVisible(true); } private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) { Sales sa=new Sales(); this.desktop.add(sa); sa.setVisible(true); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(() -> { new MainFrame().setVisible(true)}); } private javax.swing.JButton Cashview; private javax.swing.JDesktopPane desktop; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JButton jButton6; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JMenu jMenu4; private javax.swing.JMenu jMenu5; private javax.swing.JMenuBar jMenuBar2;
  • 37. 27 // End of variables declaration } Fig 7.2.1 Admin home 7.2.2 Add Cashier`s Details Code: package MyFrames; import java.sql.*; import java.util.ArrayList; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; public AddCash() { initComponents();
  • 38. 28 show_cash(); this.setLocation(140,60); } private void anewActionPerformed(java.awt.event.ActionEvent evt) { String query="INSERT INTO `cash`(`name`,`mno`,`address`,`email`,`password`) VALUES('"+jTextField2.getText()+"','"+jTextField3.getText()+"','"+jTextField4.getTe xt()+"','"+jTextField5.getText()+"','"+jTextField6.getText()+"');"; executeSQlQuery(query, "Inserted"); } private void updateActionPerformed(java.awt.event.ActionEvent evt) { String query="UPDATE `cash` SET `name`='"+jTextField2.getText()+"',`mno`='"+jTextField3.getText()+"',`address`='"+jT extField4.getText()+"',`email`='"+jTextField5.getText()+"',`password`='"+jTextField6.g etText()+"' WHERE `id`="+jTextField1.getText(); executeSQlQuery(query,"Update"); } private void delActionPerformed(java.awt.event.ActionEvent evt) { String query="DELETE FROM `cash` WHERE `id`="+jTextField1.getText(); executeSQlQuery(query,"Delete"); } private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { int i=jTable1.getSelectedRow(); // TODO add your handling code here: TableModel model=jTable1.getModel(); jTextField1.setText(model.getValueAt(i, 0).toString()); jTextField2.setText(model.getValueAt(i, 1).toString()); jTextField3.setText(model.getValueAt(i, 2).toString()); jTextField4.setText(model.getValueAt(i, 3).toString());
  • 39. 29 jTextField5.setText(model.getValueAt(i, 4).toString()); jTextField6.setText(model.getValueAt(i, 5).toString()); } public Connection getConnection() { Connection con; try{ Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost:3306/qb","root","password" ); return con; } catch(Exception e) { return null; } } public ArrayList<Cash>getCashList() { ArrayList<Cash>cashList=new ArrayList<Cash>(); Connection connection= getConnection(); String query="SELECT * FROM `cash`;"; Statement st; ResultSet rs; try{
  • 40. 30 st=connection.createStatement(); rs=st.executeQuery(query); Cash cash; while(rs.next()) { cash = new Cash(rs.getInt("id"),rs.getString("name"),rs.getString("mno"),rs.getString("address"),rs. getString("email"),rs.getString("password")); cashList.add(cash); } } catch(Exception e) { e.printStackTrace(); } return cashList; } // Display data in JTable public void show_cash() { ArrayList<Cash> list=getCashList(); DefaultTableModel model=(DefaultTableModel)jTable1.getModel(); Object[] row=new Object[6]; for(int i=0;i<list.size();i++) { row[0]=list.get(i).getid();
  • 41. 31 row[1]=list.get(i).getname(); row[2]=list.get(i).getmno(); row[3]=list.get(i).getaddress(); row[4]=list.get(i).getemail(); row[5]=list.get(i).getpassword(); model.addRow(row); } } public void executeSQlQuery(String query, String message) { Connection con = getConnection(); Statement st; try{ st = con.createStatement(); if((st.executeUpdate(query)) == 1) { // refresh jtable data DefaultTableModel model = (DefaultTableModel)jTable1.getModel(); model.setRowCount(0); show_cash(); jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText("");
  • 42. 32 jTextField5.setText(""); jTextField6.setText(""); JOptionPane.showMessageDialog(null, "Data "+message+" Succefully"); }else{ JOptionPane.showMessageDialog(null, "Data Not "+message); } }catch(Exception ex){ ex.printStackTrace(); } } // Variables declaration - do not modify private javax.swing.JButton anew; private javax.swing.JButton del; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1;
  • 43. 33 private javax.swing.JTable jTable1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JButton update; // End of variables declaration private void setLocationRelativeTo(Object object) { throw new UnsupportedOperationException("Not supported yet.");. } } Fig 7.2.2 Add Cashier Details
  • 44. 34 7.2.3 Update Stock details Fig 7.2.3 Update Stock details. 7.3 Cashier Login Fig 7.3 Cashier Login
  • 45. 35 7.3.1 Cashier Home Fig 7.3.1 Cashier Home 7.3.2 Create Bill Code: package MyFrames; import java.sql.*; import java.text.*; import java.text.SimpleDateFormat; import java.awt.print.*; import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator; import java.util.*; import javax.swing.JOptionPane;
  • 46. 36 import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class CreateBill extends javax.swing.JInternalFrame { public CreateBill() { initComponents(); Fillcombo(); showdate(); getsum(); billno(); AutoCompleteDecorator.decorate(jComboBox2); this.setLocation(260, 10); } private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) { } private void jComboBox2PopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) { String tmp=(String)jComboBox2.getSelectedItem(); String sql1="SELECT * FROM `stock` WHERE `id`=?"; Connection con; PreparedStatement pst; ResultSet rs1; try{ con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password"); pst=con.prepareStatement(sql1); pst.setString(1, tmp);
  • 47. 37 rs1=pst.executeQuery(); if(rs1.next()) { String add=rs1.getString("pname"); jTextField3.setText(add); String add1=rs1.getString("mrp"); jTextField4.setText(add1); } } catch(Exception e) { JOptionPane.showMessageDialog(null,e); } } // bill no public void billno() { String sql1="SELECT COUNT(*) FROM `bill`"; Connection con; PreparedStatement pst; ResultSet rs1; try{ con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password"); pst=con.prepareStatement(sql1); //pst.setInt(1, 20);
  • 48. 38 rs1=pst.executeQuery(); while(rs1.next()) { //String add3=rs1.getString("pname"); int g=Integer.parseInt(rs1.getString(1)); g=g+1; jTextField1.setText(String.valueOf(g)); } } catch(Exception e) { JOptionPane.showMessageDialog(null,e); } } //insert data into billtable public void billupdate() { String query="INSERT INTO `bill`(bno,`cname`,amt,`pdate`) VALUES("+jTextField1.getText()+",'"+jTextField2.getText()+"',"+jTextField7.getText ()+",'"+jTextField8.getText()+"');"; Connection con; Statement st; try{ con = con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password");
  • 49. 39 st = con.createStatement(); st.executeUpdate(query); } catch(Exception e) { JOptionPane.showMessageDialog(null ,e); } } //Sum of jtable private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { DefaultTableModel model =(DefaultTableModel) jTable1.getModel(); String s2= jTextField5.getText();//quantity String s1=jTextField4.getText(); //mrp int a=Integer.parseInt(s1); int b; b = Integer.parseInt(s2); int c = a * b; String result=String.valueOf(c); model.addRow(new Object[]{jTextField5.getText(),jTextField3.getText(),jTextField4.getText(),result}); getsum(); // Update query; String sql1="UPDATE `stock` SET `available`=`available` - '"+jTextField5.getText()+"' WHERE `id`='"+String.valueOf(jComboBox2.getSelectedItem())+"'"; Connection con;
  • 50. 40 Statement st; // ResultSet rs1; try{ con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password"); st=con.createStatement(); //st.setString(1, tmp); st.executeUpdate(sql1); } catch(Exception e) { JOptionPane.showMessageDialog(null,e); } } public void getsum() { int sum=0; for(int i=0; i<jTable1.getRowCount(); i++) { sum = sum + Integer.parseInt(jTable1.getValueAt(i,3).toString()); } jTextField7.setText(Integer.toString(sum)); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { DefaultTableModel model =(DefaultTableModel) jTable1.getModel(); model.removeRow(jTable1.getSelectedRow());
  • 51. 41 // Update query; String sql1="UPDATE `stock` SET `available`=`available` + '"+jTextField5.getText()+"' WHERE `pname`='"+jTextField3.getText()+"'"; Connection con; Statement st; // ResultSet rs1; try{ con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password"); st=con.createStatement(); //st.setString(1, tmp); st.executeUpdate(sql1); } catch(Exception e) { JOptionPane.showMessageDialog(null,e); } } private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { billupdate(); MessageFormat header=new MessageFormat("User Report"); MessageFormat footer=new MessageFormat("Page{0,number,integer}"); try{ jTable1.print(JTable.PrintMode.NORMAL, header, footer ); }
  • 52. 42 catch(java.awt.print.PrinterException e) { System.err.format("Cannot print %%n",e.getMessage()); } } private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { DefaultTableModel model =(DefaultTableModel) jTable1.getModel(); jTextField5.setText(model.getValueAt( jTable1.getSelectedRow(), 0).toString()); jTextField4.setText(model.getValueAt( jTable1.getSelectedRow(), 2).toString()); jTextField3.setText(model.getValueAt( jTable1.getSelectedRow(), 1).toString()); } public static String DateFormat = "yyyy-MM-dd"; public void showdate() { Calendar cal= Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat(DateFormat); jTextField8.setText(format.format(cal.getTime())); } private void Fillcombo() { String sql; sql = "SELECT * FROM `stock`"; Connection con; PreparedStatement ps; ResultSet rs;
  • 53. 43 try { con=DriverManager.getConnection("jdbc:mysql://localhost/qb", "root", "password"); ps=con.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()) { String id=rs.getString("id"); jComboBox2.addItem(id); } } catch(Exception e) { JOptionPane.showMessageDialog(null,e); } } private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton4; private javax.swing.JComboBox jComboBox2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5;
  • 54. 44 private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; private javax.swing.JTextField jTextField8; // End of variables declaration } Fig 7.3.2 Create Bill
  • 55. 45 7.3.3 Product Information Fig 7.3.3 Product Information 7.3.4 Search Bill Fig 7.3.4 Search bill
  • 56. 46 CHAPTER 8 TESTING A process of executing a program with the explicit intention of finding errors, that is making the program fail. Software Testing It is the process of testing the functionality and correctness of software by running it. Process of executing a program with the intent of finding an error A good test case is one that has a high probability of finding an as yet undiscovered error. A successful test is one that uncovers an as yet undiscovered error. Software Testing is usually performed for one of two reasons Defect detection Reliability estimation Black Box Testing Applies to software or module, tests functionality in terms of inputs and outputs at Interfaces. Test reveals if the software is fully operational with reference to requirements specification. White Box Testing Knowing the internal working i.e. to test if all internal operation are performed according to program structure and data structures. Testing Objective The main aim of testing is to uncover a host of errors, systematically and with minimum effort and time. Starting formally, we can say, Testing is a process of executing a program with the intent of finding an error. A successful test is one that uncovers an as yet undiscovered error. As he good test case is one that has a high probability of finding errors, if it exists. But there is one thing that testing cannot do testing cannot show the absence of defects it can only show that software defects are present.
  • 57. 47 As the test results are gathered and evaluated they begin to give a qualitative indication of the reliability of the software. If servers’ errors are detected, the overall quality of the software is a natural suspect. If, on the other hand, all the errors, which are encountered, are easily modifiable, then one of the two conclusions can be made: For the purpose of the current system we are assuming that in the event that errors that are easily modifiable points to the later possibility, since repeating the entire testing routine can be very time consuming. What we propose to do instead is to get it tested by one or more persons who are not a part of the development team but is well versed with the subject and with the concept of software testing. If we cannot detect any serious errors, it will enable us to state with the more confidence that the software does actually conform to expected standards. Test Plan The importance of software testing and its implementations cannot be overemphasized. Software testing is a critical element of Software Quality Assurance and represents the ultimate review of the specifications, design and coding. Testing Methodology In order to uncover the errors present in the different phases we have the concept of levels of testing. The basic levels of testing are as shown below: Fig 8.1 Various levels of Testing Test Cases A strategy for software testing will begin in the following order 1. Unit testing 2. Integration testing
  • 58. 48 3. Validation testing 4. System testing Unit Testing It concentrates on each unit of the software as implemented in source code and is a white box oriented. Using the component level design description as a guide, important control paths are tested to uncover errors within the boundary of the module. In the unit testing, the step can be conducted in parallel for multiple components. Integration Testing Here focus is on design and construction of the software architecture. Integration testing is a systematic technique for constructing the program structure while at the same time conducting test to uncover errors associated with interfacing. The objective is to take unit tested components and build a program structure that has been dictated by design. Validation Testing In this requirements established as part of software requirements analysis are validated against the software that has been constructed i.e., validation succeeds when software function in a manner that can be reasonably expected by the customer.+ System Testing Is the menu bar displayed in the appropriate contested some system related features included either in menus or tools? Do pull –Down menu operation and Tool-bars work properly? Are all menu function and pull down sub function properly listed?; Is it possible to invoke each menu function using a logical assumptions that if all parts of the system are correct, the goal will be successfully achieved .? In adequate testing or non- testing will leads to errors that may appear few months later. The purpose of the system testing is to consider all the likely variations to which it will be suggested and push the systems to limits. The testing process focuses on the logical intervals of the software ensuring that all statements have been tested and on functional interval is conducting tests to uncover errors and ensure that defined input will produce actual results that agree with required results. Program level testing, modules level testing integrated and carried out.
  • 59. 49 CHAPTER 9 CONCLUSION “Supermarket Management System” software developed for a company has been designed to reduce the time taken to handle the sales activity. It is designed to replace an existing manual record system for reducing time taken for calculations and for storing data. The system uses JAVA Swing as front end and MySQL server as a backend for the database. The system is strong to handle daily operations where the database is cleared over certain time. This system will reduce manual work, calculations and will also provide periodic reports any time. The proposed supermarket management system is very useful for big supermarkets as well as small ones to manage their inventories, staffs, and records of purchases and sales. New features and modules can be easily added into the system, so the project is very flexible and can adapt to the requirements of the supermarket and its users.
  • 60. 50 REFERENCE  Bruce Eckel, Thinking in Java Third Edition, Publisher: Pearson Education.  Herbert Schildt,The Complete Reference to Java 2, Publisher: Tata McGraw-Hill.  Roger S. Pressman, Software Engineering-A practitioner’s approach, Publisher: Tata McGraw-Hill.  Grady Booch, James Rumbaing, Ivar Jacobson, The Unified Modelling Language User Guide, Publisher: Pearson Education.  Martin Fowler & Scott, UML Distilled Second Edition, Publisher Pearson education  Michael Morrison, Wireless Java with J2ME, Publisher Tec media