Major-Project-BCA-ACHAL JAIN
Major-Project-BCA-ACHAL JAIN
SESSION :2023-2024
Submitted to
Makhanlal Chaturvedi National University of
Journalism and Communication, Bhopal
EXTOL INSTITUTE OF COMPUTER SCIENCE
Project Certificate
This is to certify that the project report entitled “SUPERMARKET BILLING SYSTEM”
submitted to Makhanlal Chaturvedi National University of Journalism & Communication, in
partial fulfillment of the requirement for the award of the degree of BACHELOR OF COMPUTER
APPLICATIONS (BCA), is original work carried out by myself Mr. Achal Jain with
enrolment no.AX147246010 Under the Supervision of Prof. Harsh Vaish.
The matter embodied in this project is genuine work done by myself and has not been
submitted whether to this University or to any other University / Institute for the
fulfillment of the requirement of any course of study.
Date: ..…/……/……
Name & Signature of the Student
………………......... …………….……
number : 9981398541
…………………….. .. ………………….
Date: ……/……/…….
Acknowledgement
This Major Project is the result of contribution of many mind. I would like to acknowledge
and thank my project guide HARSH SIR for his valuable support and guidance. He guided me
through the process from conception and till the completion of this project. I would also like to
thanks my class institute director KAMLESH SIR and my all my faculties JAMEELSIR . I thank to lab
staff members and other non-teaching members.
Signature of Student
Name: Achal Jain
Roll No :
Enrollment No :AX147246010
Self-Certificate
This is to certify that the Major Project report entitled “SUPERMARKET BILLING SYSTEM “is
done by me, and it is authentic work carried out for the partial fulfillment of the requirements
for the award of the degree of Bachelor of Computer Application(BCA) under the guidance of
“HARSH SIR”. The matter and software embodies in this project has not been submitted
earlier for award of any degree or diploma to the best of my knowledge and believes.
Signature of Student
ACHAL JAIN
Roll No:
Enrollment No: AX147246010
ABSTRACT
Customer details
Product details
Material and purchase order details
Banking details
Bill generator
IMPLEMENTATION DETAILS
4.1 Coding
4.2 Testing
SCREEN SHOTS
Conclusion
6.1 Observation
6.2 Advantage
6.3 Future Enhancement
Bibliography
INTRODUCTION
1.1 Overview
1.2 Purpose
The main purpose of this project is to provide a user friendly interface
commuters to easily manage and retrieve the information.
In our project supermarket billing system we register employee and
customer information and store the information in database.
Maintains of database of all related forms.
Employee can make changes and generate the bill
1.3 Scope:
This project aims at developing system software which would cater to the
needs of the people. So we aim to implement such a system that allows the user
to have the facility at any place and access the required information. It can be
easily customized as per the requirements and available resources to suit the
needs of different users
1.4 EXISTINGSYSTEM
Many Supermarkets use this type of billing system for a decade. It is also
Improved many times according to requirements of sellers and customers. It
Does the same work that is calculating the bill, gives it to the customer and
Maintain proper database. They are accurate in calculation and printing, they
also generate records.
A new concept is also added in the billing system is that they also maintain
Relationships with the customers who purchase more products from the store
regularly. System also concerns their requirements and gives them more
commission. It also shows the overall profit and profit on a particular product
and give repots which items are required and which have cross their expiry
date..
1.5 ProposedSystem
The drawback of the existing system is that it is very difficult to retrieve
data from case files. It is difficult to handle the whole system manually and
it is less accurate and to keep the data in case files for future reference
because it may get destroyed. Moreover it is very difficult to retrieve data.
Redundancy of data may occur and this may lead to the inconsistency. The
manual system is so time-consuming. The proposed system is very easy to
operate. Speed and accuracy are the main advantages of proposed system.
There is no redundancy of data. The data are stored in the computer’s
secondary memories like hard disk, etc. it can be easily receive and used at
any time. The proposed system will easily handle all the data and the work
done by the existing systems. The proposed systems eliminate the
drawbacks of the existing system to a great extent and it provides tight
security to data.
3.1Analysis:
Analysis is detailed study of the various operations performed by a system
and their relationship within and outside of the system. One aspect of analysis
the boundaries of the system and determining or not the system should consider
the other related system.
Structure analysis is a set of technique and graphical tools that allow the
analyst to develop a kind of system specification that are easily understandable
to the user. Its goal includes:
Usage of graphics
would be helpful to communicate with the users.
Of course ER diagrams make it easy for the users to understand the flow
of data and control, but we have implemented the hierarchical structure to
represent the design structure of our project.
3.2 DESIGN:
INTRODUCTION TO DESIGN PHASES:
Software design is actually a multi-step process, which focuses on four
attributes of a program, ie, data structures, software architecture; interface
representation of the software that can be assessed for the quality before coding
begins. System study provides an understanding of the procedural details
necessary for implementing the system recommended in the feasibility study.
Basically it is all about the creation of a new system. This is a critical phase
since it decides the quality of the system and has a major impact on testing and
implementation phases.
This system document is a reference regarding the development of this
project. This document gives all the details of the modules present in this
project.
Gender password
Customer registration
Address Phone
3. PRODUCT FORM
PRODUCT
NAME
SUPPLIER DATE
NAME
PRODUCT DETAILS
QUANTITY
PRODUCT
CODE
4. ITEM DETAILS FORM
CODE
NAME
MONTH/Y
EAR
CLOSING PRICE
ITEM DETAILS
STOCK
MDATE
STOCK EXP DATE
5. MATERIAL ARRIVAL FORM.
BILL NO
ARR NO
P ORDER
NO
BILL DATE
REC SUPPLIER
VALUE
6. PURCHASE ORDER FORM
DEL NO
P ORDER
SUPPLIER
NO
PO NO STATUS
PURCHASE ORDER
PURC
DEL MODE PURC
ITEM DATE
7. BILLING FORM
CUSTOMER IDNO
COUNTER NO TOTAL ITEMS
AMOUNT PAID
NET BILL DISCOUNT
8. BANK ACCOUNT FORM
C-ID NO
CHEQUE CHEQUE
DATE NO
BANK ACCOUNT
AMOUNT
BANK
NAME
4. IMPLEMENTATION DETAILS
4.1 CODING
1 Login form
Jsp:
</script>
</html>
SERVLET
package com.megainfo.servlet;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.megainfo.model.LoginModel;
} catch (Exception e) {
//
e.printStackTrace();
}
}
MODEL:
package com.megainfo.model;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import com.megainfo.common.DBConnection;
String dbname="";
String dbpass="";
con = DBConnection.getConnection();
smt = con.createStatement();
System.out.println("LoginMode::loginMode - Statementcoustmer
created...");
dbpass = rs.getString(6);
If(dbname.equalsIgnoreCase(name)&&
dbpass.equalsIgnoreCase(pass)) {
List.add(name);
List.add(pass);
break;
}}
return list;
}
public static void main(String[] args)throws Exception {
System.out.println(list);
}}
WELCOME FORM
JSP:
</style>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet" href="css/mm_spa.css" type="text/css" />
<%@include file="head.jsp"%>
</head>
<CENTER></CENTER>
<b><body text="black" bgcolor="black"
background="images/abstract-blue-vector-backgrounds-wallpapers.jpg">
<script language="JavaScript">
<!--
var name=prompt("Enter Your Name, Please.","name");
var today = new Date ()
var hrs = today.getHours();
document.writeln("<b>");
document.writeln("<b>");
if (hrs <= 12)
document.write("Good Morning "+name+'!');
elseif (hrs <= 18)
document.write("Good Afternoon "+name+'!');
else
document.write("Good Evening "+name+'!'); document.writeln("<br />");
// -->
</script>
<script>
var mydate=new Date()
var year=mydate.getYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var dayarray=new
Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Satu
rday")
var montharray=new
Array("January","February","March","April","May","June","July","August","S
eptember","October","November","December")
document.write("<small><font color='black'
face='newtimesroman'><b>"+dayarray[day]+", "+montharray[month]+"
"+daym+", "+year+"</b></font></small>")
</script></b>
<tr>
<td><a href="PRODUCT.jsp">Product</a></td>
</tr>
<tr>
<td><a href="stock.jsp">Item Details</a></td>
</tr>
<tr>
<td><a href="materival arrival.jsp">MaterialArrival</a></td>
</tr>
<tr>
<td><a href="purchaseorder.jsp">PurchaseOrder</a></td>
</tr>
<tr>
<td><a href="billingform.jsp">Billing</a></td>
</tr>
<tr>
<td><a href="BANK AC FORM.jsp">BANK A/C</a></td>
</tr>
<tr>
<td><a href="logout.jsp">LogOut</a></td>
</tr>
</table>
</body>
</html>
PURCHASEORDERFORM
JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" media="all"
href="css/jsDatePick_ltr.min.css" />
<script type="text/javascript" src="datepicker/datetimepicker.js"></script>
<style type="text/css">
#tst {
table-layout: auto;
display: table;
}
td,h1{
color:white;}
</style>
</head>
<body bgcolor="black" text="silver" background="images\Blue-Ground.jpg">
<CENTER>
<h1>PURCHASE ORDER</h1>
</CENTER>
<hr size="3" color="red">
<form name="mt" action="PURCHASESERVLET" method="POST">
<b>
<center>
<TABLE id="tst" border=1>
<TR>
<TD>PURCHASE ORDER NO:</TD>
<TD><SELECT NAME="PONO">
<option>smb23
<option>smb24
<option>smb25
</SELECT></TD>
</TR>
<TR>
<TD>DELIVERY NO:</TD>
<TD><SELECT NAME="DELNO"><option>smb12
<option>smb13
<option>smb14</SELECT></TD
</TR>
<TR>
<TD>SUPPILER:</TD>
<TD><SELECT NAME="SUPP">
<option>RAMESH
<option>SRINIVAS
<option>SANGAMESH
</SELECT></TD>
</TR>
<TR>
<TD>STATUS:</TD>
<TD><SELECT NAME="STATUS"><option>RECIEVED
<option>REJECTED</SELECT></TD>
</TR>
<TR>
<TD>PURCHASE DATE:</TD>
<TD><INPUT TYPE="TEXT" NAME="PODATE" SIZE="20"id="ad"><a
href="javascript:NewCal('ad','ddmmyyyy')"><img src="images/cal.gif"
width="16" height="16" border="0" alt="Pick a date"></a></TD>
</TR>
<TR>
<TD>PURCHASE ITEM:</TD>
<TD><SELECT NAME="PURITEM">
<option>VEGETABLES
<option>FRUIT
<option>SPORTSITEM
<option>OTHER
</SELECT></TD>
</TR>
<TR>
<TD>DELIVERY MODE:</TD>
<TD><SELECT NAME="DELMODE">
<option>TEMPO
</SELECT></TD>
</TR>
<TR>
<TD>PO VALUE:</TD>
<TD><INPUT TYPE="TEXT" NAME="POVALUE" SIZE="20"></TD>
</TR>
</TABLE>
<BR><INPUT TYPE="SUBMIT" value="SUMBIT"><INPUT TYPE="RESET"
value="CLEAR">
</center
</b>
</form>
</body>
<script language="JavaScript" src="js/gen_validatorv2.js"
type="text/javascript">
</script>
<script language="JavaScript" type="text/javascript">
var frmVal = new Validator("mt");
frmVal.addValidation("PODATE","req","Please enter Purchase date");
frmVal.addValidation("PODATE","maxlen=5","Max length for Customer ID is
5");
JSP:
</style>
</head>
<body bgcolor="black" text="black"
background="images\pink-wallpaper-13.jpg">
<CENTER>
<h1>MATERIAL ARRIVAL</h1>
</CENTER>
<hr size="3" color="red">
<form name ="mt" action="Materivalarrivalservlet" method="POST">
<b>
<center>
<TABLE id="tst" border=1>
<TR>
<TD>ARRIVAL NO:</TD>
<TD><INPUT TYPE="TEXT" NAME="ARRNO" SIZE="25"></TD>
</TR>
<TR>
<TD>BILL NO:</TD>
<TD><INPUT TYPE="TEXT" NAME="BILLNO" SIZE="25"></TD>
</TR>
<TR>
<TD>PURCHASE ORDER NO:</TD>
<TD><INPUT TYPE="TEXT" NAME="PONO" SIZE="25"></TD>
</TR>
<TR>
<TD>ARRIVAL DATE:</TD>
<TD><INPUT TYPE="TEXT" NAME="ARRDATE" SIZE="25" id="ad"><a
href="javascript:NewCal('ad','ddmmyyyy')"><img src="images/cal.gif"
width="16" height="16" border="0" alt="Pick a date"></a>
</TD>
</TR>
<TR>
<TD>BILL DATE:</TD>
<TD><INPUT TYPE="TEXT" NAME="BILLDATE" SIZE="25" id="bd"><a
href="javascript:NewCal('bd','ddmmyyyy')"><img src="images/cal.gif"
width="16" height="16" border="0" alt="Pick a date"></a>
</TD>
</TR>
<TR>
<TD>SUPPILER:</TD>
<TD><INPUT TYPE="TEXT" NAME="SUPP" SIZE="25"></TD>
</TR>
<TR>
<TD>RECIEPT VALUE:</TD>
<TD><INPUT TYPE="TEXT" NAME="RECVAL" SIZE="25"></TD>
</TR>
<TR>
<TD>STATUS:</TD>
<TD><SELECT NAME="STATUS">
<option>Delivered
<option>Rejected
</SELECT></TD>
</TR>
</TABLE>
<BR><INPUT TYPE="SUBMIT" value="SUMBIT"><INPUT TYPE="RESET"
value="CLEAR">
</center>
</body>
<script language="JavaScript" src="js/gen_validatorv2.js"
type="text/javascript">
</script>
<script language="JavaScript" type="text/javascript">
var frmVal = new Validator("mt");
frmVal.addValidation("ARRNO","req","Please enter arrival no");
frmVal.addValidation("ARRNO","maxlen=5","Max length for Customer ID is
5");
JSP:
package com.megainfo.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.megainfo.model.ProductModel;
import com.megainfo.model.RegisterModel;
public Productservlet() {
super();
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
MODEL
package com.megainfo.model;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import com.megainfo.common.DBConnection;
REGISTRATION SUCCESS
JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body bgcolor="orange"
background="images\Light_green_Vector_flowers_abstract_backgrounds.jpg"
><br>
<img src="images\smileyface.jpg" align="right" height="200" width="200">
<h4><B><I>Thanks you have registered successfully!</I></B></h4>
<A HREF="welcome.jsp"> BACK</A>
</body>
</html>
INVALID USER
JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Sorry Invalid user!
<a href="login.jsp">Try again</a>
</body>
</html>
LOGOUT
JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><br><br><br>
<h4>Thanks, You have successfully logged out!!</h4>
<%
session.invalidate();
%>
</body>
</html>
NO_RECORDS
JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title><style type="text/css">
</head>
<body bgcolor="orange"
background="images\Light_green_Vector_flowers_abstract_backgrounds.jpg"
>
<h5>Sorry No records!!</h5>
<a href="welcome.jsp">Go Back</a>
</body>
</html>
UPDATE CUSTOMER
JSP:
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
ArrayList list = newArrayList();
list = (ArrayList) session.getAttribute("empdetails");
System.out.println("List in JSP " + list);
%>
<form action="UpdatecoustmerServlet">
<table border="" width="800">
<tr>
<td>Employee No</td>
<td>First Name</td>
<td>Last Name</td>
<td>Email</td>
<td>Phone</td>
<td>Gender</td>
<td>Address</td>
</tr>
<%
for (int i = 0; i < list.size(); i = i + 7) {
%>
<tr>
<td><%=list.get(i)%></td>
<td><input type="text" name="fname" value="<%=list.get(i + 1)%>">
</td>
<td><input type="text" name="lname" value="<%=list.get(i + 2)%>">
</td>
<td><input type="text" name="email" value="<%=list.get(i + 3)%>">
</td>
<td><input type="text" name="phone" value="<%=list.get(i + 4)%>">
</td>
<td><input type="text" name="gender" value="<%=list.get(i + 5)%>">
</td>
<td><input type="text" name="address" value="<%=list.get(i + 6)%>">
</td>
</tr>
<%
}
%>
<tr>
<td><input type="hidden" name="empnumber"
value="<%=list.get(0)%>"></td>
<td colspan="4"><input type="submit" value="Update"></td>
</tr>
</table>
</form>
</body>
</html>
SERVLET
package com.megainfo.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.megainfo.model.Deletecoustmermodel;
import com.megainfo.model.UpdatecoustmerModel;
/**
* Servlet implementation class UpdateEmpServlet
*/
public class UpdatecoustmerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UpdatecoustmerServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
String empnumber = request.getParameter("empnumber");
String fname = request.getParameter("fname");
String lname = request.getParameter("lname");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
String gender = request.getParameter("gender");
String address = request.getParameter("address");
System.out.println("UpdatecoustmerServlet:doGet() : emp_nois
"+empnumber);
HttpSession session = request.getSession();
UpdatecoustmerModel dm = new UpdatecoustmerModel();
boolean flag=false;
try {
} catch (Exception e) {
e.printStackTrace();
}
}
MODEL
package com.megainfo.model;
import java.sql.Connection;
import java.sql.Statement;
import java.util.ArrayList;
import com.megainfo.common.DBConnection;
public class UpdatecoustmerModel {
Scope of testing: once the code has been generated, the next task is testing.
Testing process mainly focuses on logical internals of the software, ensuring
that all statements are correct and ensure that defined input will produce an
actual result that is same as the expected results.
Test plan: testing process is divided into the following phases:
Unit testing: It tests whether the data saves to all units of the databse
properly.
Module testing: It tests all the modules created satisfies the user and
management.
System testing: It tests the system so that it will not harm or change other
software or hardware indulging in the process.
Acceptance testing: It plays the most important part, as it tests and
verifies that the software created is acceptable by the creator, user and
the customer. It checks for the fulfillments of all the requirements and is
accepted by everyone.
The following criteria and the corresponding tests are applied for each test
phase:
Inter face integrity: internal and external interfaces are tested as each
module and are incorporated into the structure.
Functional validity: test designed to uncover functional errors are
conducted.
Information content: test designed to uncover errors associated with
local/global data structures are conducted.
Performance: test designed to verify Performance bounds established
during design are conducted.
Environment and resources: testing designed to cheek the adaptability of
the software on different environment.
5 SCREEN SHOTS
.
1. EMPLOYEE REGISTER FORM :
2.REGISTER SUCCESSFUL FORM.
3. LOGIN FORM.
4. HOME FORM
5. Customer Registration
6. UPDATE CUSTOMER FORM.
7. PRODUCT FORM
8. ITEM DETAILS FORM
9. MATERIAL
ARRIVAL
10.PURCHASE ORDER FORM
11. BILLING FORM
12. BANK ACCOUNT
13. details saved form
1. BANKTABLE
2. BILLTABLE
3. CUSTOMER TABLE
4. EMPLOYEETABLE
5. ITEM TABLE
6.MATERIAL TABLE
7.PRODUCT TABLE
8.PURCHASE TABLE
CONCLUSION
6.1 Observations:
6.2Advantage:
Very simple
Fast.
Provides high capacity.
Security for the information is provided.
Centralized and persistent data storage.
Visa processing system will in turn help in providing jobs.
6.3Future Enhancement:
We would like to specify the names of some guides, books and websites which
have paid us a lot and have helped us to complete this project