Provision Store
Provision Store
BELAGAVI-590014
Submitted in the partial fulfilment of the requirements for the award of the Degree of
Submitted by,
CHANDRASHEKAR V
Project Guide
Bommanahalli, Bangalore-68
2020-2021
THE OXFORD COLLEGE OF ENGINEERING
CERTIFICATE
Certified that the project work entitled “PROVISION STORE MANAGEMENT SYSTEM”
carried out by CHANDRASHEKAR V Bonifide students of The Oxford College of Engineering, Bangalore
in partial fulfilment for the award of the Degree of Bachelor of Engineering in Information Science and
Engineering of Visvesvaraya Technological University, Belgaum during the year 2020-2021. The Mini
project report has been approved as it satisfies the academic requirements in respect of project work
prescribed for the said degree.
External Viva
1._______________________ _______________________
2._______________________ _______________________
ACKNOWLEDGEMENT
A project is a job of great enormity and it can’t be accomplished by an individual all by them. Eventually,
we are grateful to a number of individuals whose professional guidance, assistance and encouragement have
made it a pleasant endeavour to undertake this project.
It gives us great pleasure in expressing our deep sense of gratitude to our respected Founder Chairman Shri
S. Narasa Raju and to the respected Chairman Shri S.N.V.L Narasimha Raju for having provided us with
great infrastructure and well-furnished labs.
We take this opportunity to express our profound gratitude to our respected Principal Dr. G.T RAJU for his
support.
We are graceful to the Vice Principal and Head of the Department Dr. R Kanagavalli for her unfailing
encouragement and suggestion given to us in the course of our project work.
Guidance and deadlines play a very important role in successful completion of the project on time. We
convey our gratitude to Mrs Sandya Rani V, Project Guide for having constantly guided and monitored the
development of the project.
A note of thanks to the Department of Computer Science Engineering, both teaching and non-teaching staff
for their co-operation extended to us.
We thank our parents for their constant support and encouragement. Last, but not the least, we would like to
thank our peers and friends.
CHANDRASHEKAR V
ABSTRACT
The project is a complete management based software.The purpose of Provision store management system is
to automate the existing manual system by the help of computerized equipment’s and full-fledged computer
software, fulfilling their requirements, so that their data/information can be stored for a longer period with
easy accessing and manipulation of the same. It can assist the workers to concentrate on their activities
rather than to concentrate on the record keeping. Thus, it will help the store in better utilization of its items.
The store can maintain computerized records without redundant entries. That means one need not be
distracted by information that is not relevant, while being able to reach the information. Basically, the
project describes how to manage for good performance and better services for the customers.Stored
procedures are used to categorize items based on the product name and billing them. The project introduces
a point relation to the customer ,whose role is to add points to the customers shopping list,for purchased
items costing 10,000 and above .The project also includes discount section which is handled by trigger.The
project is very useful for those small and large scale business people without costing scanners and a very fast
processing. The project provides facilities like storing managers,employees and customers details, the sales
and employee report and items price details.
Table of Contents
1.INTRODUCTION
1.1 Preamble
The project provision store management system is a management-based application that allows the store
manager to handle all store activities.The ability to manage various item entries and billing make this system
very flexible and convenient.
The store manager is a very busy person and does not have the time to sit and manage the entire activities
manually on paper. This application gives him the power and flexibility to manage the entire system from a
single online system.
Provision store management project provides secret owner key,workers hiring details and other necessary
store management functions. The system allows the manager to entry the imported product details and the
employees to bill the purchased item. Customers can purchase and bill their selected items in the store. The
employees has the option of either bill the purchased item or deleting the purchased items from the
customer’s shopping list. The system is hence useful in the point where bar code scanners are no longer
required during the billing activity.
1.2 Problem Statement
Customers always spend a lot of their time visiting grocery websites to check the prices of each product and
purchase the order. But the problem is the item wont be sent immediately and sometimes damage may also
come, and a huge problem in replacement Also, many smaller stores suffer from not being able to record
their availability to customers needs.
Hence there was a need for more efficient system to route product details to local owners with availability
while saving valuable time that could be inverted in other community services.
1.3 Proposed Solution
Provision store application is a complete admin based application software. This software is proposed for
customers where immediate items should be available in there near by stores. In online application , it may
fail to deliver huge items in one day, and as soon as possible. This near by store helps customers to get near
by items immediately, and for customers priority we give a billing ,points and item details too.
The use of automated provision store management system in place of papers and scanners.
Obtaining the sales report which allows the admin to keep track of various store processes with ease.
This reduces the time consumption in assessing of data.
The system keeps track on products ,thus preventing human errors.
It generates and discount deduction and billing report automatically.
One system operator will be enough for deploying and maintaining data thus reduces the number of
workers in the store.
1)Technical Feasibility:
Technical feasibility is the study of hardware and software requirements on which the application is
to be used upon. It is important to consider the budget of the system and overall cost. This system is
technically feasible as it has been developed with the help of available technology. The proposed
system requires Net Beans and backend tool as MySQL for storing and maintain the database. No
expert man power is required for this purpose.
2)Economic Feasibility:
This area is concerned with cost for the development and implementation of the system. We have
looked into the maintenance of the system post development. So, the actual cost of the system is
important before designing a new system which was perfectly estimated by us. All this is studied in
economic feasibility study. The designed system will provide tangible as well as intangible benefits
to the organization.
3)Operation Feasibility:
Automation makes lives easy. The proposed system is very friendly and the user is easily able to
interact with the system. Therefore, the users will readily accept the system. Data entry and making
queries can be done easily.
Definition of Software:
Computer software or just software is any set of machine-readable instructions that directs a
computer’s processor to perform specific operations. The term is used to construct with computer
hardware, the physical objects (processor and related devices) that carry out the instructions.
Computer hardware and software require each other and neither can be realistically used without the
other.
Software Specification:
Definition of Hardware:
Computer hardware is the collection of physical elements that constitute a computer system. Computer
hardware refers to the physical components of a computer such as the monitor, mouse, keyboard, computer
data storage, hard drive disk, system unit (graphic cards, memory, motherboard and chips) etc. all of which
are physical objects that can be touched. In contrast, software is instructions that can be stored and run by
hardware.
Hardware Specification:
3.2 Normalization
First normal form: each table cell should contain a single value.
Each records needs to be unique
1NF
Second normal form: a table is said to be in 2NF if both the following conditions holds
-table is in 1NF
-No non-prime attribute is dependent on the proper subset of any candidate key of table
2NF
3NF
4.Implementation
Microsoft Access (MS Access) enables one to manage all important information from a single database file.
Within the file, one can use:
• Tables to store your data.
• Queries to find and retrieve specific data of interest.
• Forms to view, add, and update data in tables.
• Reports to analyse or print data in a specific layout.
• Data access pages to view or update, the data.
In MS Access, data is stored once in one table, but can be viewed from multiple locations. When the data is
updated in a Table, Query or Form, it is automatically updated everywhere it appears.
Using a template (This method works best if one can find and use a template that closely matches
the specific requirements)
Creating a database directly (This is the most flexible method, but it requires one to define each
database element separately).
4.2.1 Trigger:
TRIGGER specifies an event, a condition and an action. It specifies type of the action
to be taken when certain events occur and when certain condition are satisfied.
1. Start provision store database system.
2. Create trigger trigger_name for table product management with action to be taken before
update.
3. Update the discount for the mentioned item in the where clause of the respected
product’s mrp price.
4. stop
4.2 Pseudocode
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.awt.Color;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author cs_loneranger_
*/
public class LOGIN_PAGE1 extends javax.swing.JFrame {
Connection connect;
Statement stmt;
ResultSet rs;
/**
* Creates new form LOGIN_PAGE1
ISE, TOCE 2020-2021 Page 9
PROVISION STORE MANAGEMENT SYSTEM
*/
public LOGIN_PAGE1() {
initComponents();
Connectivity();
jPanel4.setBackground(new Color(0,0,0,50));
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
public void Connectivity()
{
try{
connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/provisionstore","root","tiger");
stmt=connect.createStatement();
}
catch(SQLException e){
JOptionPane.showMessageDialog(this, e.getMessage());
}
jPanel4.setVisible(false);
}
@SuppressWarnings("unchecked")
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
LOGIN_PAGE lp=new LOGIN_PAGE();
lp.setVisible(true);
dispose();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jPanel4.setVisible(true);
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void jLabel7MouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jLabel7.setForeground(Color.black);
}
private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jPanel4.setVisible(false);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
String sql1="select * from newemployee where emp_ID='"+jTextField1.getText()+"' and
password='"+jPasswordField1.getText()+"'";
rs=stmt.executeQuery(sql1);
boolean s=rs.next();
if(s){
add_sells sp=new add_sells();
sp.setVisible(true);
jButton1.setBackground(Color.yellow);
DateTimeFormatter dtf2=DateTimeFormatter.ofPattern("HH:mm:ss");
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter dtf1=DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
LocalDateTime now=LocalDateTime.now();
sp.empis(rs.getString("emp_ID"),
"abc"+dtf1.format(now),dtf.format(now),dtf2.format(now),rs.getString("name"));
dispose();
jTextField1.setText("");
jPasswordField1.setText("");
}
else{
JOptionPane.showMessageDialog(this, "not found\n create a new ID");
jTextField1.setText("");
jPasswordField1.setText("");
ISE, TOCE 2020-2021 Page 12
PROVISION STORE MANAGEMENT SYSTEM
}
}
catch(SQLException s){
JOptionPane.showMessageDialog(this, "enter create a new employee");
jTextField1.setText("");
jPasswordField1.setText("");
}
}
private void jPasswordField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
String sql1="select * from newemployee where emp_ID='"+jTextField1.getText()+"' and
password='"+jPasswordField1.getText()+"'";
rs=stmt.executeQuery(sql1);
boolean s=rs.next();
if(s){
add_sells sp=new add_sells();
sp.setVisible(true);
jButton1.setBackground(Color.yellow);
DateTimeFormatter dtf2=DateTimeFormatter.ofPattern("HH:mm:ss");
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter dtf1=DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
LocalDateTime now=LocalDateTime.now();
System.out.println(dtf.format(now));
sp.empis(rs.getString("emp_ID"),
"abc"+dtf1.format(now),dtf.format(now),dtf2.format(now),rs.getString("name"));
dispose();
jTextField1.setText("");
jPasswordField1.setText("");
}
else{
JOptionPane.showMessageDialog(this, "not found\n create a new ID");
jTextField1.setText("");
jPasswordField1.setText("");
}
ISE, TOCE 2020-2021 Page 13
PROVISION STORE MANAGEMENT SYSTEM
}
catch(SQLException s){
JOptionPane.showMessageDialog(this, "enter create a new employee");
jTextField1.setText("");
jPasswordField1.setText("");
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jButton2.setBackground(Color.yellow);
LOGIN_PAGE1 ep=new LOGIN_PAGE1();
ep.setVisible(true);
dispose();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String gender;
String empname=jTextField1.getText();
String age=jTextField2.getText();
if(jRadioButton1.isSelected()){
gender=jRadioButton1.getText();
}
else if(jRadioButton2.isSelected()){
gender=jRadioButton2.getText();
}
else{
gender=jRadioButton3.getText();
System.out.println();
}
System.out.println(gender);
String phone_number=jTextField4.getText();
String address=jTextField5.getText();
String emp_id=jTextField6.getText();
String pass=jPasswordField1.getText();
try{
if(jPasswordField1.getText().trim().isEmpty()){
JOptionPane.showMessageDialog(this, "enter the correct password");
jPasswordField1.grabFocus();
return;
}
else{
}
catch(SQLException s){
JOptionPane.showMessageDialog(this, "employee ID:"+jTextField6.getText()+"\n already exist\n OR enter
the correct age");
}
}
//String name=jTextField1.getText();
//String age=jTextField2.getText();
//String sex=jTextField3.getText();
String emp_ID=jTextField6.getText();
//String address=jTextField5.getText();
try{
String sql="delete from newemployee where emp_ID='"+emp_ID+"'";
int n= stmt.executeUpdate(sql);//executeUpdate saves the data into the table
System.out.println(n);
if(n==1){
JOptionPane.showMessageDialog(this, n + " records deleted successfully");
jTextField1.setText("");
jTextField2.setText("");
//jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jPasswordField1.setText("");
}
else{
JOptionPane.showMessageDialog(this, "employee ID:"+jTextField6.getText()+"\n not found");
}
}
catch(SQLException s){
JOptionPane.showConfirmDialog(this,"employee ID:"+jTextField6.getText()+"\n not found");
}
}
try{
if(jToggleButton1.isSelected()){
if(jTextField6.getText().isEmpty()){
JOptionPane.showMessageDialog(this, "enter the employee id!!");
jToggleButton1.setSelected(false);
}
else{String sql1="select * from newemployee where emp_ID='"+jTextField6.getText()+"'";
rs=stmt.executeQuery(sql1);
if(rs.next()){
jTextField1.setText(rs.getString("name"));
jTextField2.setText(rs.getString("age"));
jTextField4.setText(rs.getString("phone"));
jTextField5.setText(rs.getString("address"));
jPasswordField1.setText(rs.getString("password"));
jTextField6.setText(rs.getString("emp_ID"));
jToggleButton1.setText("UPDATE");
}
else{
JOptionPane.showMessageDialog(this, "ID not found!!");
}
}
}
else{
if(jRadioButton1.isSelected()){
String sql2="update newemployee set
address='"+jTextField5.getText()+"',mang_ID='"+name+"',name='"+jTextField1.getText()+"',age="+Integer.
parseInt(jTextField2.getText())+",sex='"+jRadioButton1.getText()+"',phone="+jTextField4.getText()+",pas
sword='"+jPasswordField1.getText()+"' where emp_ID='"+jTextField6.getText()+"'";
n=stmt.executeUpdate(sql2);
}
else if(jRadioButton2.isSelected()){
String sql2="update newemployee set
address='"+jTextField5.getText()+"',mang_ID='"+name+"',name='"+jTextField1.getText()+"',age="+Integer.
parseInt(jTextField2.getText())+",sex='"+jRadioButton2.getText()+"',phone="+jTextField4.getText()+",pas
sword='"+jPasswordField1.getText()+"'where emp_ID='"+jTextField6.getText()+"'";
n=stmt.executeUpdate(sql2);
}
else{
String sql2="update newemployee set
address='"+jTextField5.getText()+"',mang_ID='"+name+"',name='"+jTextField1.getText()+"',age="+Integer.
parseInt(jTextField2.getText())+",sex='"+jRadioButton3.getText()+"',phone="+jTextField4.getText()+",pas
sword='"+jPasswordField1.getText()+"' where emp_ID='"+jTextField6.getText()+"'";
n=stmt.executeUpdate(sql2);
}
if(n==1){
JOptionPane.showMessageDialog(this,"DETAILS UPDATED SUCCESSFULLY");
jTextField1.setText("");
jTextField2.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jPasswordField1.setText("");
jToggleButton1.setText("MODIFY");
}
}
}
catch(SQLException s){
}
} private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean mat= Pattern.matches("[a-z]*", jTextField1.getText());
if(mat){
jLabel9.setVisible(false);
jtext1=mat;
}
else{
jLabel9.setVisible(true);
jtext1=mat;
}
}
private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
if(phone1){
jLabel10.setVisible(false);
}
else{
jLabel10.setVisible(true);
}
}
private void jTextField4KeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean phone1=Pattern.matches("[6789][0-9]{9}",jTextField4.getText().trim());
if(phone1){
jLabel10.setVisible(false);
}
else{
jLabel10.setVisible(true);
}
} private void jTextField6KeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean id=Pattern.matches("([a-z A-Z]*)([0-9]*)", jTextField6.getText());
if(id){
jLabel11.setVisible(false);
}
else{
jLabel11.setVisible(true);
}
}
private void jTextField6KeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean id=Pattern.matches("([a-z A-Z]*)([0-9]*)", jTextField6.getText());
if(id){
jLabel11.setVisible(false);
}
else{
jLabel11.setVisible(true);
}
}
private void jTextField6KeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean id=Pattern.matches("([a-z A-Z]*)([0-9]*)", jTextField6.getText());
if(id){
jLabel11.setVisible(false);
}
else{
jLabel11.setVisible(true);
}
} private void jPasswordField1KeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean bad=Pattern.matches("[a-z A-Z]*||[0-9]*", jPasswordField1.getText());
if(bad){
jLabel12.setVisible(true);jLabel12.setText("atleast 1 special character");
}
else{
jLabel12.setVisible(true);jLabel12.setText("strong");
}
}
private void jPasswordField1KeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean bad=Pattern.matches("[a-z A-Z]*||[0-9]*", jPasswordField1.getText());
if(bad){
jLabel12.setVisible(true);jLabel12.setText("atleast 1 special character");
}
else{
jLabel12.setVisible(true);jLabel12.setText("strong");
}
}
private void jPasswordField1KeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
boolean bad=Pattern.matches("[a-z A-Z]*||[0-9]*", jPasswordField1.getText());
if(bad){
jLabel12.setVisible(true);jLabel12.setText("atleast 1 special character");
}
else{
jLabel12.setVisible(true);jLabel12.setText("strong");
}
}
private void jLabel13MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jPanel2.setVisible(true);
}
private void jLabel13MouseEntered(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jLabel13.setForeground(Color.yellow);
}
private void jLabel13MouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jLabel13.setForeground(Color.white);
}
private void jLabel14MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jPanel2.setVisible(false);
}
private void jLabel14MouseEntered(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jLabel14.setForeground(Color.yellow);
}
private void jLabel14MouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jLabel14.setForeground(Color.black);
}
private void jLabel15MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
store_page sp=new store_page();
sp.setVisible(true);
dispose();
}
private void jLabel15MouseEntered(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jLabel15.setForeground(Color.yellow);
}
private void jLabel15MouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jLabel15.setForeground(Color.white);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(LOGIN_PAGE1.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(LOGIN_PAGE1.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(LOGIN_PAGE1.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(LOGIN_PAGE1.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
}
//</editor-fold>
5.Testing
SOFTWARE TESTING
Software Testing is a critical element of software quality assurance and represents the ultimate review of
specification, design and coding, Testing presents an interesting anomaly for the software engineer.
Testing Principles:
All tests should be traceable to end user requirements Test should be planned ling before testing begins
Testing should begin on a small scale and progress towards testing in large Exhaustive testing is not
possible
6.Conclusion
The project entitled “PROVISION STORE MANAGEMENT SYSTEM” was completed on time with
total satisfaction after testing with possible sample data. The performance was found to be efficient and error
free. This is a user-friendly packaged application which is very easy to access and understand. Anyone with
Knowledge of Computers will find it very easy to use this software and perform various operations on it.
In this project, first an attempt has been made to find the need of the system. To fulfil the needs, a detailed
study had been conducted to find the various requirements of the system. This particular system has been
designed in an attractive manner, so that even a user with minimum knowledge can be able to operate the
system easily.
This software combines the best of both the world i.e.; programming language (JAVA), and database
(MYSQL) providing easy accessibility and security. It was developed to benefit the organizations and the
customers. Finally the system was tested with real data and everything worked successfully. Thus the system
has fulfilled all the objectives identified and is able to replace the existing system.
7. APPENDIX A:SNAPSHOTS
1) Manager site:
The manager/owner login page
2) Cashier site:
The new employee uses this software page to continue the billing actions
3) Billing site:
The employee of the shop enters the items purchased by the customers in this page.
5) bill sample:
An automatic bill is generated showing the amount, total no of items and change due to be given.
8.References
BOOKS:
Database Management System (5th edition) -Ramakrishna and Gehrke.
WEBSITE:
www.google.co.in
www.w3schools.com
www.stackoverflow.com
www.slideshare.net
www.indianrail.gov.in
www.irctc.gov.in
www.wikipedia.org.in
www.schoolprojects.com
www.m.etrain.info.com
www.indiamike.com