Project Report Final Updated'
Project Report Final Updated'
COURSE: B.TECH
SEMESTER:3rd
• To create a conducive learning and research environment for life- long learning
to develop the students as technology leaders and entrepreneurs for addressing
societal needs.
Vision of the Department
M1: To provide quality undergraduate education in both the theoretical & applied
foundations of Computer Science Engineering.
M2: Conduct research to advance the state of the art in Computer Science &
Engineering and integrate the research results as innovations.
M3: To inculcate team building skills and promote life- long learning with high
societal and ethical values.
Program Outcomes (POs)
PO12. Life-long learning: Recognize the need for, and have the preparation and ability to engage in
independent and life-long learning in the broadest context of technological change.
Program Specific Outcomes (PSOs)
PSO1: To apply standard software engineering practices & strategies in real-time
software project development
PSO2: To apply latest programming languages in creating innovative career
opportunities.
PEO2: Engage in life- long learning to foster personal & organization growth.
4
Course Outcomes
CO-PO-PSO Mapping
PO PO PO
PO1 PO PO PO4 PO PO PO7 PO8 PO9 PSO1 PSO2
10 11 12
2 3 5 6
C209.1 3 3 3 3 3 3
2 1 2 2 2 2 3 3
C209.2 3 3 3
2 2 2 1 1 2 2 1 1 2 3
C209.3 3 3
1 1 1 1 1 2 2 2 2 2 2 1
C209.4 3 3 3 3 3 3 3
2 1 1 2 1 1 1
C209.5 3 3 3 3
1 1 1 1 1 2 2 1 1 1
C209 2.2 2.2 2 2 2 2 1.4 2.2 2.2 2.6 1.8 2 1.8 1.8
5
DECLARATION
I hereby declare that this submission is my own work and that, to the best of
my knowledge and belief, it contains no material previously published or
written by another person nor material which to a substantial extent has been
accepted for the award of any other degree or diploma of the university or
other institute of higher learning, except where due acknowledgment has
been made in the text.
Signature:
Name: Saksham pratap rana
Roll no. : 2101430100151
Date: 04/03/2023
Signature:
Name: Rajat Chaudhary
Roll no. : 2101430100140
Date: 04/03/2023
Signature:
Name: Sagar yadav
Roll no. : 2101430100148
Date: 04/03/2023
Signature:
Name: Sakshi chaudhary
Roll no. : 2101430100152
Date: 04/03/2023
6
CERTIFICATE
Date : 04/03/2023
7
ACKNOWLEDGEMENT
8
ABSTRACT
The Super market management sytem is a web application for maintaining a person's buying or selling or
adding of items . In this project I tried to show the working of a super market management sytem and cover the
basic functionality of a super market management sytem. To develop a project for solving shopping ease of a
customer in a very simple way in order to nurture the needs of an user by providing various ways to perform
marketing task .
The Super market management sytem undertaken as a project is based on relevant technologies. The main aim
of this project is to develop software for a product buying website . This project has been developed to carry out the
processes easily and quickly, which is not possible with the manuals systems, which are overcome by this
software. This project is developed using Core Java language and MYSQL use for database connection. Creating
and managing requirements is a challenge of IT, systems and product development projects or indeed for any
activity where you have to manage a contractual relationship. Organization need to effectively define and
manage requirements to ensure they are meeting needs of the customer, while proving compliance
.
The impact of a poorly expressed requirement can bring a business out of compliance or even cause injury or
death. Requirements definition and management is an activity that can deliver a high, fast return on investment.
9
TABLE OF CONTENT
Declaration................................................................................................6
Certificate..................................................................................................7
Acknowledgement.....................................................................................8
Abstract.......................................................................................................9
Chapter 1 INTRODUCTION...............................................................................11
1.1 Synopsis........................................................................................12
1.1 AIM of the Project........................................................................12
1.2 Getting Started.............................................................................12
1.3 Main Purpose................................................................................13
Chapter 2 BACKGROUND STUDY..................................................................16
2.1 JAVA............................................................................................16
2.2 SWING.........................................................................................18
Chapter 3 METHODOLOGY..............................................................................20
3.1 OOP’s............................................................................................20
Chapter 4 TOOLS & TECHNIQUE....................................................................25
4.1 MYSQL........................................................................................25
4.2 APACHE NETBEANS................................................................26
4.3 JDK 19..........................................................................................28
Chapter 5 IMPLEMENTATION.........................................................................31
5.1 LOGIN.........................................................................................31
5.2 USER REGISTRATION............................................................32
5.3 WORKING..................................................................................34
5.4 MINI-STATEMENT
Chapter 6 CONCLUSION & FUTURE SCOPE.................................................35
REFERENCES......................................................................................36
1
CHAPTER 1
INTRODUCTION
Supermarket management system is the system where all the aspects related to the proper management of
supermarket is done. These aspects involve managing information about the various products, staff,
managers, customers, billing etc. This system provides an efficient way of managing the supermarket
information. Also allows the customer to purchase and pay for the items purchased.
This project is based on the sales transaction and billing of items in a supermarket. The first activity is based
on adding the items to the system along with the rate which are present in the supermarket and the name of
the items which the supermarket will agree to sell. This authority is given only to admin (administrator). Any
modifications to be done in the item name and the rate can be done only by admin. He also has the right to
delete any item. As the customer buys the products and comes to the billing counter, the user is supposed to
enter the item name he purchased and the quantity of the item he had purchased. This is not a huge a task.
This study is to produce software which manages the sales activity done in a supermarket, maintaining the
stock details, maintaining the records of the sales done for a particular month/year. The users will consume
less time in calculation and the sales activity will be completed within a fraction of seconds whereas manual
system will make the user to write it down which is a long procedure and so paper work will be reduced and
the user can spend more time on the monitoring the supermarket. The project will be user friendly and easy to
use.
The system will display all the items whose name starts with the letter selected by the user. He can select out
of those displayed. Finally a separate bill will be generated for each customer. This will be saved in the
database. Any periodic records can be viewed at any time. If the stock is not available, the supermarket orders
and buys from a prescribed vendor. The amount will be paid by deducting the total amount acquired in the
sales activity. Admin provides a unique username and password for each employee through which he can
login.
l.l. Synopsis
Super market management sytem is the day by day tally record as a complete
shopping system. It can keep the information of products, adding products into
wishlist , feedback, Withdrawal, and Searching the products, order reports, Individual
account opening feedback form. The existing part of this project is; it displays a very
pleasing website .
The main aim of designing and developing this Super market management System
PHP primarily based Engineering project is to provide secure and efficient
ordering facilities to the customers over the internet. Apache Server Pages,
MYSQL database used to develop this application where all customers can login
through the secured window page by their account login id and password. Users will
have all options and features in that application like amount of products, price of
product, available in stock ,etc.
If you want to try out our super market management system without committing,
select our website. You don't have to register in any way, so it's a good way to check
it out first before register. Once you register, you'll have the choice of doing just basic
ordering and viewing your item cart doing more involved transactions like Debit and
Credit. The choice is yours. It really depends on how you like to pay. You will get a
confirmation number after each transaction and you can always check the session
summary to see what you've done. If you make a mistake, customer service is always
available for your good kindness help.
1
1.4. Main Purpose
The Traditional way of maintaining details of a user in a shopping site was to enter
the details and record them. Every time the user needs to buy some products he has to
go to shop and perform the necessary actions, which may not be so feasible all the
time.
It may be a hard hitting task for the users and the busy people too. The project gives
real life understanding of Online ordering System and activities performed by various
roles in the supply chain. Here, we provide automation for online ordering and
delivering through Internet. Online shopping management System project captures
activities performed by different roles in real life shopping which provides enhanced
techniques for maintaining the required information up-to-date, which results in
efficiency. The project gives real life understanding of Online shopping and activities
performed by various roles in the supply chain.
Main Goal
1
5. DIFFERENT TASK IN OUR WEBSITE : Help client to do all basic and
important things he would do in a physical shop
Methods
1
Architecture of Super market management system is shown in fig 1.1, which
represents the flowchart of working of our web application.
1
CHAPTER 2
BACKGROUND STUDY
2.1. JAVA
Java is a class-based, object-oriented programming language that is designed
to have as few implementation dependencies as possible. It is intended to let
application developers write once, and run anywhere (WORA), meaning that
compiled Java code can run on all platforms that support Java without the need for
recompilation. Java was first released in 1995 and is widely used for developing
applications for desktop, web, and mobile devices. Java is known for its simplicity,
robustness, and security features, making it a popular choice for enterprise-level
Application.
Compiler converts source code to bytecode and then the JVM executes the bytecode
generated by the compiler. This bytecode can run on any platform be it Windows,
Linux, or macOS which means if we compile a program on Windows, then we can
run it on Linux and vice versa. Each operating system has a different JVM, but the
output produced by all the OS is the same after the execution of the bytecode. That is
why we call java a platform-independent language.
2.1.3. Secure:
In java, we don't have pointers, so we cannot access out-of-bound arrays i.e it shows
ArraylndexOutO fBound Exception if we try to do so. That's why several security
flaws like stack corruption or buffer overflow are impossible to exploit in Java. Also,
java programs run in an environment that is independent of the os(operating system)
environment which makes java programs more secure.
Java architecture is defined in such a way that it reduces overhead during the runtime
and at some times java uses Just In Time (JIT) compiler where the compiler compiles
code on-demand basics where it only compiles those methods that are called making
applications to execute faster.
Java being completely object-oriented gives us the flexibility to add classes, new
methods to existing classes, and even create new classes through sub-classes.
Java
17
even supports functions written in other languages such as C, C++ which are referred
to as native methods.
2.2. Swing
Swing is a Java Foundation Classes [JFC] library and an extension of the Abstract
Window Toolkit
[AWT]. Swing offers much-improved functionality over AWT, new components,
expanded components features, and excellent event handling with drag-and-drop support.
Swing has about four times the number of User Interface [Ull components as AWT
and is part of the standard Java distribution. By today's application GUI requirements,
AWT is a limited implementation, not quite capable of providing the components
required for developing complex GUI's required in modern commercial applications.
The AWT component set has quite a few bugs and really does take up a lot of system
resources when compared to equivalent Swing resources. Netscape introduced its
Internet Foundation Classes [IFC] library for use with Java. Its Classes became very
popular with programmers creating GUI's for commercial applications.
1
Features Of visual studio code
Visual Studio Code is a lightweight but powerful source code editor that runs on your
desktop and is available for Windows, macOS and Linux. It comes with built-in
support for JavaScript, TypeScript, Node.JS and has a rich ecosystem of
extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and
runtimes (such as .NET and Unity).
Here is a list of 10 features every developer should know about Visual Studio
Code:
• Command Line
• Command Palette
• Git Integration
• Change language mode
• Customization
• Zen Mode
• Split view
• Status Bar
• Debugging
• Default Keyboard shortcuts
1
CHAPTER 3
METHODOLOGY
The proposed system utilizes the network concepts to deal with the Digital Cash
Dispenser virtually. The system simplifies the process by making transaction
through getting logged-In by the user with the help of their CARD NO and Pass-code.
A simple user can access their account and can deposit/withdraw money from their
account.User can also transfer money from their account to any other bank account.
User can see their transaction report and balance enquiry too.
> User login, use PIN system
> Creating/open new account registration
> View statements transaction
> User account details
> Change Password and PIN
3.1.1. Abstraction
Abstraction is the property by virtue of which only the essential details are displayed
to the user. The trivial or the non-essential units are not displayed to the user. Ex: A car
is viewed as a car rather than its individual components.
Data Abstraction may also be defined as the process of identifying only the required
characteristics of an object ignoring the irrelevant details. The properties and
2
behaviors of an object differentiate it from other objects of similar type and also help
in classifying/grouping the objects.
Consider a real-life example of a man driving a car. The man only knows that
pressing the accelerators will increase the speed of a car or applying brakes will stop
the car, but he does not know how on pressing the accelerator the speed is actually
increasing, he does not know about the inner mechanism of the car or the
implementation of the accelerator, brakes, etc in the car. This is what abstraction is.
In java, abstraction is achieved by interfaces and abstract classes. We can achieve
100% abstraction using interfaces.
Abstract methods are mostly declared where two or more subclasses are also doing
the same thing in different ways through different implementations. It also extends the
same Abstract class and offers different implementations of the abstract methods.
Abstract classes help to describe generic types of behaviors and object-oriented
programming class hierarchy. It also describes subclasses to offer implementation
details of the abstract class.
What we are concerned about is the “abstract” view of these operations that will
help us to propel the car forward and reach our destination. This is a simple example
of abstraction.
Thus the car has all the mechanisms and processes in place but from the end user’s
perspective, i.e. car driver’s perspective he/she will be interested only in the abstract
view of these processes.
Abstraction reduces the programming efforts and thereby the complexity. An end-user
using the application need not be concerned about how a particular feature is
implemented. He/she can just use the features as required.
Thus in abstraction, we deal with ideas and not the events. This means that we hide the
implementation details from the user and expose only the functionality to the end-user.
Thereby the user will only know “what it does” rather than “how it does”.
3.1.2. Encapsulation
Encapsulation in Java is a process of wrapping code and data together into a single
unit, for example, a capsule which is mixed of several medicines.
2
We can create a fully encapsulated class in Java by making all the data members of the
class private. Now we can use setter and getter methods to set and get the data in it.
The Java Bean class is the example of a fully encapsulated class.
It provides you the control over the data. Suppose you want to set the value of
id which should be greater than 100 only, you can write the logic inside the setter
method. You can write the logic not to store the negative numbers in the setter
methods.
It is a way to achieve data hiding in Java because other class will not be able to
access the data through the private data members.
The encapsulate class is easy to test. So, it is better for unit testing.
The standard IDE's are providing the facility to generate the getters and setters. So, it
is easy and fast to create an encapsulated class in Java.
Encapsulation in Java is the inclusion of all methods and variables needed for a Java
object to function, contained within the object itself. Encapsulation, along with
abstraction, polymorphism and inheritance, is one of the four key concepts in
object oriented programming (OOP). Encapsulation is similar across object-oriented
languages.
In OOP, objects are the first things a programmer considers when designing a program.
They are also the units of code that are eventually derived from the process and what
actually runs in the computer system. Each object is an instance of a particular class
or subclass with the class's own methods and variables.
Java offers four different "scope" realms--public, protected, private, and package--that
can be used to selectively hide data constructs. To achieve encapsulation, the
programmer declares the class variables as “private” and then provides what are called
public “setter and getter” methods which make it possible to view and modify the
variables. A Java object publishes its interfaces, which consist of public methods and
instantiated data, enabling other objects to interact with it without the object’s inner
workings being revealed. Data hiding ensures that someone maintaining the code
can’t inadvertently point to or access the wrong data. Programmers creating objects to
interact with existing objects need not know how the encapsulated code works
specifically, just how to use its interface.
Java object encapsulation enables the reuse of code that has already been tested. The
inherent modularity of objects means that their source code can be written and
maintained independently from the source code for other objects and makes them
portable within a system. Furthermore, if there is a problem with a given object, it can
be removed and replaced without affecting the rest of the program.
3.1.3. Inheritance
Inheritance in Java is a mechanism in which one object acquires all the properties and
behaviors of a parent object. It is an important part of OOPs (Object Oriented
programming system).
The idea behind inheritance in Java is that you can create new classes that are built
upon existing classes. When you inherit from an existing class, you can reuse
methods and fields of the parent class. Moreover, you can add new methods and fields in
your current class also.
Inheritance represents the IS-A relationship which is also known as a parent-child
relationship.
Inheritance is an important pillar of OOP(Object-Oriented Programming). It is the
mechanism in java by which one class is allowed to inherit the features(fields and
methods) of another class. In Java, inheritance means creating new classes based on
existing ones. A class that inherits from another class can reuse the methods and fields
of that class. In addition, you can add new fields and methods to your current class as
well.
2
• Sub Class/Child Class: The class that inherits the other class is known
as a subclass(or a derived class, extended class, or child class). The
subclass can add its own fields and methods in addition to the
superclass fields and methods.
• Reusability: Inheritance supports the concept of “reusability”, i.e.
when we want to create a new class and there is already a class that
includes some of the code that we want, we can derive our new class
from the existing class. By doing this, we are reusing the fields and
methods of the existing class.
3.1.4. Polymorphism
Polymorphism in Java is a concept by which we can perform a single action in
different ways. Polymorphism is derived from 2 Greek words: poly and morphs. The
word "poly" means many and "morphs" means forms. So polymorphism means many
forms.
There are two types of polymorphism in Java: compile-time polymorphism and
runtime polymorphism. We can perform polymorphism in java by method overloading
and method overriding.
If you overload a static method in Java, it is the example of compile time
polymorphism. Here, we will focus on runtime polymorphism in java.
Following are the significant characteristics of Polymorphism in Java:
The functionality of a method behaves differently in different scenarios.
The behavior of a method depends on the data provided.
It allows the same name for a member or method in a class with different types.
Polymorphism supports implicit type conversion.
2
CHAPTER 4
TOOLS & TECHNIQUE
The Methodology used for inventing Digital Cash Dispenser were - Java with GUI
(Graphical User Interface) , SWING and used a secured database MYSQL. Used
multiple OOP’s (Object Oriented Programming) for completing different functions.
4.1. MYSQL
MySQL is based on the Structured Query Language (SQL), a standard language for
interacting with databases. With MySQL, you can create and modify databases, tables,
and other database objects, as well as insert, query, and update data. You can also use
MySQL to manage users and privileges, ensuring that only authorized users have
access to your data.
2
One of the strengths of MySQL is its flexibility. It can be used on various
platforms, including Linux, Windows, and mac OS, and it can be integrated with a
range of programming languages, including PHP, Java, and Python. This makes
MySQL a versatile choice for many different types of projects and applications.
All the functions of the IDE are provided by modules. Each module provides a well-
defined function, such as support for the Java language, editing, or support for the
CVS versioning system, and SVN. NetBeans contains all the modules needed for Java
development in a single download, allowing the user to start working immediately.
Modules also allow NetBeans to be extended. New features, such as support for
other programming languages, can be added by installing additional modules. For
instance, Sun Studio, Sun Java Studio Enterprise, and Sun Java Studio Creator from
Sun Microsystems are all based on the NetBeans IDE.
4.2.3. License:
The IDE is licensed under the Apache License 2.0. Previously, from July 2006 through
2007, NetBeans IDE was licensed under Sun's Common Development and
Distribution License (CDDL), a license based on the Mozilla Public License (MPL).
In October 2007, Sun announced that NetBeans would henceforth be offered under a
dual license of the CDDL and the GPL version 2 licenses, with the GPL linking
exception for GNU Classpath.[10] Oracle has donated NetBeans Platform and IDE to
the Apache Foundation where it underwent incubation and graduated as a top level
project in April 2019.
4.2.4. History:
NetBeans began in 1996 as Xelfi (word play on Delphi),[5][6] a Java IDE student
project under the guidance of the Faculty of Mathematics and Physics at Charles
University in Prague. In 1997, Roman Stanek formed a company around the project
and produced commercial versions of the NetBeans IDE until it was bought by Sun
Microsystems in 1999. Sun open-sourced the NetBeans IDE in June of the following
year. Since then, the NetBeans community has continued to grow.[7] In 2010, Sun
(and thus NetBeans) was acquired by Oracle Corporation. Under Oracle, NetBeans
had to find some synergy with JDeveloper, a freeware IDE that has historically been a
product of the company, by 2012 both IDEs were rebuilt around a shared codebase -
the NetBeans Platform. In September 2016, Oracle submitted a proposal to donate
the NetBeans project to the Apache Software Foundation, stating that it was "opening
up the NetBeans governance model to give NetBeans constituents a greater voice in the
project's direction and future success through the upcoming release of Java 9 and
NetBeans 9 and beyond". The move was endorsed by Java creator James Gosling.[8]
The project entered the Apache Incubator in October 2016.
4.3. JDK 19
4.3.4. A preview of virtual threads, which are lightweight threads that dramatically
reduce the effort of writing, maintaining, and observing high-throughput, concurrent
applications. Goals include enabling server applications written in the simple thread-
per-request style to scale with near-optimal hardware utilization, enabling existing
code that uses the java.lang Thread API to adopt virtual threads with minimal change,
and enable troubleshooting, debugging, and profiling of virtual threads with existing
JDK tools. It is not a goal of this proposal to change the basic concurrency model in
Java or offer a new data parallelism construct in either the Java language or Java
libraries. Nor is it a goal to remove the traditional implementation of threads or to
silently migrate existing applications to use virtual threads. This feature is also part of
Project Loom.
4.3.5. A third preview of pattern matching for switch expressions and statements,
extending pattern matching to switch, to allow an expression to be tested against a
number of patterns, each with a specific action, so complex data-oriented queries can
be expressed concisely and safely. This capability previously was previewed in JDK
17 and JDK 18. The third preview would add refinements including the replacement of
guarded patterns with when clauses in switch blocks. Also, the runtime semantics of a
pattern switch when the value of the selector expression is null are more closely
aligned with legacy switch semantics. The plan's goals include expanding the
expressiveness and applicability of switch expressions and statements by allowing
patterns to appear in case labels. Other goals include allowing developers to relax
the historic null-hostility of switch when desired, increasing the safety of switch
statements and ensuring that existing switch expressions and statements continue to
compile with no changes and execute with identical semantics. The hope is to
29
eventually support pattern matching throughout Java, adding it to places where
expressions are used. This feature also is part of the Amber project.
4.3.6. A fourth incubation of a vector API that would express vector computations
that reliably compile at runtime to optimal vector instructions on supported CPU
architectures, thus achieving performance superior to equivalent scalar computations.
Developers using the API gain a way to write complex vector algorithms in Java,
using the HotSpot auto-vectorizer but with a user model that makes vectorizations
more predictable and robust. The vector API previously was incubated into JDK 16,
JDK 17, and JDK 19.
Improvements to the API proposed for JDK 19 include enhancements to load and
store vectors to and from MemorySegments, as defined by the Foreign Function and
Memory API preview. JDK 19 would also add two cross-lane vector operations,
compress and expand, together with a complementary vector mask compress
operation. The compress vector operation maps lanes of a source vector, selected by a
mask, to a destination vector in lane order, while the expand operation does the
inverse. The compress operation is useful in filtering query results.
In another addition to the vector API, bitwise integral lanewise operations would be
expanded, including operations such counting the number of one bits, reversing the
order of bits, and compressing and expanding bits. Goals of the API included being
clear and concise, platform-agnostic, having reliable runtime and compilation
performance on x64 and AArch64 architectures, and enabling “graceful” degradation,
for situations in which a vector computation cannot be fully expressed at runtime as a
sequence of vector operations. The vector API is from Project Panama, which aims
to enable simpler communications between native and JVM code.
3
CHAPTER 5
IMPLEMENTATIO
N
5.1. LOGIN
3
5.2. USER REGISTRATION
In this page user are allowed to register and choose the type of account he wants to
open and user has to submit his personal details with his identification details i.e.
Employee Name, Employee email. He can also Opt which type of services he
wants to avail. When the user registration process is done then only further
processes can be followed.
3
FIG 5.3 Reviewing Stocks
Here as in the figure 5.3 we can see the Employee is able to make changes in the stock
details i.e. Title, item type, description, rate, etc.
Operations like searching ,deleting and adding can also be performed by the employee as
shown above.
3
5.2. WORKING
3
CHAPTER 6
CONCLUSION AND FUTURE
SCOPE
CONCLUSION
Future scope
In the future, the following components can be added to the system in order to
improve theeffectiveness and efficiency of the system, which includes:
IMPLEMENTATION OF A SUPERMARKET
1. An advanced password system that will be embedded into all login pages to
increase thesecurity of the system.
2. A good Printing module should be included.
3. A good Internet backup should be automated after everyday sales.
4. Internet Transactions should be allowed.
REFERENCES
FOR JAVA :
HTTPS://WWW.GEEKSFORGEEKS.ORG/JAVA/
FOR MYSQL :
HTTPS://WWW.MYSQL.COM/
HTTPS://WWW.GEEKSFORGEEKS.ORG/INTRODUCTION-TO-JAVA-SWING/
https://www.codecademy.com/article/visual-studio-code
FOR CSS :
https://www.w3schools.com/
REFERRED TO BOOK :
COMPUTER SCIENCE WITH JAVA BY SUMITA ARORA
38