A
Project Report
On
“ Online Product Management
System”
Submitted To
Punyashlok Ahilyadevi Holkar University, Solapur
In Practical Fulfillment for the Degree
Of
Bachelor of Science(Entire Computer Science)
By
Miss. Dhande Pragati Popat
& Miss.Dighe Aboli Annaso
Under the guidance of
Prof.Mr. Pailwan G.A. &
Prof.Mr. Khandagale S.H
Through
Sangola College, Sangola.
(2025-2026)
CERTIFICATE
This is to certify that Miss. Dhande Pragati Popat and
Miss. Dighe Aboli Annaso has contributed in successfully
completing the project entitled Online Product
Management System. In satisfactory manner as a partial
fulfillment for the course of B.Sc(Entire Computer
Science)-III for the session 2025-2026 of the Punyashlok
Ahilyadevi Holkar University, Solapur.
Seat No :- 140156 and 140098
Place :-Sangola
Date:-
Project In-Charge HOD
*Internal Examiner *External Examinar
INDEX
Sr. Page No.
No. Name
1 Synopsis 4
2 Acknowledgement 5
3 Declaration 6
4 Introduction 7
5 Requirements 8
6 Salient Features 9
7 Future Enhancement 10
8 Source Code 11-45
9 Output Screen 46-48
10 Table Design 49
11 Bibliography 50
SYNOPSIS
Sangola College, Sangola
B.Sc(ECS)-III
Project Academic Year(2025-2026)
Submission Date: / /2025
Online Product Management System
Team Member:
1) Dhande Pragati Popat
2)Dighe Aboli Annaso
Description:
In this Project there is a Online Product
Management System.
System Implementation:
Front End: Java
Back End: Oracle
IDE used: Eclipse IDE for Enterprise Java and Web
ACKNOWLEDGEMENT
We would like to add few heartfelt words for the
people who gave ending support and for successful
completion of the project.
We take this opportunity to express our deep sense
of gratitude to Mr.Pailwan G.A. and
Mr.Khandagale S.H. for his invaluable guidance and
encouragement through out the project.
We give special thanks to Mr. Tathe R.R. and all the
faculty members of B.Sc(ECS)-III DEPT. This has been a
great experience for us. We have benefited a lot from the
Constructive Criticism and Suggestions given to us by all
faculty members of Sangola College Sangola.
Miss. Dhande Pragati Popat
Miss. Dighe Aboli Annaso
DECLARATION
To,
The Principal,
Sangola College, Sangola.
Respected sir,
We undersigned hereby declare that project
entitled “ONLINE PRODUCT MANAGEMENT SYSTEM”
developed under the guidance of Prof. Mr.Pailwan G.A. and
Mr.Khandagale S.H is our original work.the reports generated
in the project work are based o the information collected by us.
We have not copied any other project report
submitted to Punyashlok Ahilyadevi Holkar Solapur University.
earlier.
Date:
Place: Sangola.
Miss. Dhande Pragati Popat Miss.
Dighe Aboli Annaso
INTRODUCTION
• The online product Management System is
very simple to handle
• The main aim of this project is to manage
all the details about product and user.
• We have develop all CRUD
operation(create, read, update, delete).
• Saving a lot of time for searching
particular product in a list of product.
REQUIREMENTS
1. Maximum 1 GB or more RAM
2. Hard disk 500 MB or more
3. Installed java and jdk 21 or latest version.
4. Apache Tomcat v8.0 or latest.
5.Oracle Database 10g Express Edition.
SALIENT FEATURES
• Admin can add new product.
• Admin can see the list of product details.
• Only admin can edit and update the record of
product.
• Shows the information and description of the
products.
•
FUTURE ENHANCEMENT
• More Functionality can be added depending upon the
user requirements and Specifications.
• Based on the future security issues, security can be
improved using emerging technologies.
• As per technology emerges, it is possible to upgrade
the system and can be adaptable to desired
environment.
• Sub admin module can be added.
•
SOURCE CODE
LoginDAO.java
package dao; import
java.sql.Statement; import
dbutil.DBUtil; import pojo.LoginInfo;
import java.sql.Connection; import
java.sql.ResultSet; public
class LoginDAO
{
public static boolean isUserValid(LoginInfo
userDetails)
{
boolean validStatus=false;
try
{
Connection conn=DBUtil.getConnection();
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from
login_info where userName=
'"+userDetails.getUserName()+"' and password=
'"+userDetails.getPassword()+"'");
while(rs.next())
{
validStatus=true;
}
DBUtil.closeConnection(conn);
}
catch(Exception e)
{
e.printStackTrace();
}
return validStatus;
}
}
ProductManagementDAO.java
package dao;
import java.sql.*; import java.util.*;
import dbutil.DBUtil; import
pojo.Product; public class
ProductManagementDAO
{
public static List<Product>getAllProducts()
{
List<Product>productList=new
ArrayList<Product>();
try
{
Connection conn=DBUtil.getConnection();
Statement st=conn.createStatement(); ResultSet
rs=st.executeQuery("select * from product");
while(rs.next()) {
Product product=new
Product(rs.getString("prod_id"),rs.getString("prod_name
"),rs.getString("prod_category"),rs.getInt("prod_price"));
productList.add(product);
}
DBUtil.closeConnection(conn);
}
catch(Exception e)
{
e.printStackTrace();
}
return productList;
}
public static Product getProductById(String
productId)
{
Product product=null;
try
{
Connection conn=DBUtil.getConnection();
PreparedStatement
ps=conn.prepareStatement("select * from product where
prod_id=?");
ps.setString(1, productId);
ResultSet rs=ps.executeQuery();
while(rs.next())
{
product=new
Product(rs.getString("prod_id"),rs.getString("prod_name
"),rs.getString("prod_category"),rs.getInt("prod_price"));
}
}
catch(Exception e)
{
e.printStackTrace();
}
return product;
}
public static int addProduct(Product product)
{
int status=0;
try
{
Connection conn=DBUtil.getConnection();
PreparedStatement
ps=conn.prepareStatement("insert into product
values(?,?,?,?)");
ps.setString(1,product.getProductId());
ps.setString(2,product.getProductName());
ps.setString(3,product.getProductCategory());
ps.setInt(4,product.getProductPrice());
status=ps.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
}
return status;
}
public static int updateProduct(Product product)
{
int status=0;
try
{
Connection
conn=DBUtil.getConnection();
PreparedStatement
ps=conn.prepareStatement("update product set
prod_name=?,prod_category=?,prod_price=?where
prod_id=?");
ps.setString(1,product.getProductName());
ps.setString(2,product.getProductCategory());
ps.setInt(3,product.getProductPrice());
ps.setString(4,product.getProductId());
status=ps.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
}
return status;
}
public static int deleteProduct(String productId)
{
int status=0;
try
{
Connection conn=DBUtil.getConnection();
PreparedStatement
ps=conn.prepareStatement("delete from product where
prod_id=?"); ps.setString(1, productId);
status=ps.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
}
return status;
}
}
DBUtil.java
package dbutil; import
java.sql.*; public class
DBUtil
{
public static Connection getConnection()
{
Connection conn=null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thi
n:@localhost:1521:xe","system","sangola");
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
public static void closeConnection(Connection conn)
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
LoginInfo.java
package pojo; public
class LoginInfo
{
String userName;
String password;
public LoginInfo()
{
//TODO Auto-generated constructor stub
}
public LoginInfo(String userName, String password) {
super();
this.userName = userName;
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString()
{
return "LoginInfo [userName=" + userName + ",
password="+ password + "]";
}
}
Product.java
package pojo; public
class Product
{
String productId; String productName;
String productCategory;
Integer productPrice; public
Product()
{
//TODO Auto-generated constructor stub
} public Product(String productId, String
productName, String productCategory, Integer
productPrice) { super();
this.productId = productId;
this.productName = productName;
this.productCategory = productCategory;
this.productPrice = productPrice;
}
public String getProductId() {
return productId;
} public void setProductId(String
productId) { this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductCategory() { return
productCategory;
}
public void setProductCategory(String
productCategory) { this.productCategory =
productCategory;
}
public Integer getProductPrice() {
return productPrice;
}
public void setProductPrice(Integer productPrice) {
this.productPrice = productPrice;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "Product
[productId="+productId+",productName="+productNam
e+",productCategory="+productCategory+",productPrice
="+productPrice+"]";
}
}
addProduct.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">
<%@page import="dao.ProductManagementDAO"%>
<%@page import="pojo.Product"%>
<%@page import="java.util.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1"> <title>Add Product</title>
</head>
<body>
<%@ include file="header.jsp" %>
<div align="center">
<form action="processAddProduct.jsp"
method="post">
<table class="productTable">
<thead>
<tr>
<th colspan="2">
Product Details
</th>
</tr>
</thead>
<tr>
<td>Product ID</td>
<td><input type="text" name="prodId"
size="20"
class="productTextField"
/></td>
</tr>
<tr>
<td>Product Name</td>
<td><input type="text"
name="prodName" size="20"
class="productTextField"
/></td>
</tr>
<tr>
<td>Category</td>
<td><input type="text"
name="prodCategory" size="20"
class="productTextField"
/></td>
</tr>
<tr>
<td>Price</td>
<td><input type="text"
name="prodPrice" size="20"
class="productTextField"
/></td>
</tr>
</table>
<button class="actionBtn"
style="margintop:10px">Add</button>
</form>
</div>
</body>
</html>
editProduct.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">
<%@page import="dao.ProductManagementDAO"%>
<%@page import="pojo.Product"%>
<%@page import="java.util.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<title>Edit Product</title>
</head>
<body>
<%@ include file="header.jsp" %>
<%
String productId =
request.getParameter("prodId");
Product product =
ProductManagementDAO.getProductById(productId);
%>
<div align="center">
<form action="processEditProduct.jsp"
method="post">
<table class="productTable">
<thead>
<tr>
<th colspan="2">
Product Details
</th>
</tr>
</thead>
<tr>
<td>Product ID</td>
<td><input type="text"
name="prodId" size="20"
value="<%=productId%>"
class="productTextField" readonly/></td>
</tr>
<tr>
<td>Product Name</td> <td><input
type="text" name="prodName" size="20"
value="<%=product.getProductName()%>"
class="productTextField"/></td>
</tr>
<tr>
<td>Category</td>
<td><input type="text" name="prodCategory"
size="20"
value="<%=product.getProductCategory()%>"
class="productTextField"/></td>
</tr>
<tr>
<td>Price</td>
<td><input type="text"
name="prodPrice" size="20"
value="<%=product.getProductPrice()%>"
class="productTextField"/></td>
</tr>
</table>
<button class="actionBtn"
style="margintop:10px">Save</button>
</form>
</div>
</body>
</html>
error.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>Error</title>
</head>
<body>
<h1>There was some error.</h1>
</body>
</html>
header.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">
<link rel="stylesheet" href="style.css">
</head>
<body>
<%
if(session.getAttribute("userName") == null)
{
response.sendRedirect("login.jsp");
}
%>
<nav class="navbar">
<ul class="navbar-nav">
<li><a href="home.jsp">Home</a></li>
<li><a href="addProduct.jsp">Add
Product</a></li>
<li><a href="viewProducts.jsp">View
Products</a></li>
<li><a href="searchProduct.jsp">Search
Product</a></li>
<li style="float:right;margin-right:10px"><a
href="logout.jsp">Logout</a></li>
</ul>
</nav>
</body>
</html>
home.jsp
<%@ page language="java" contentType="text/html;
charset=ISO-8859-1" pageEncoding="ISO-88591"%>
<!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>Home</title>
</head>
<body>
<%@ include file="header.jsp" %>
<%
String userName =
(String)session.getAttribute("userName");
%>
<div align="center">
<h2>Product Management System</h2>
<label>Welcome <%= userName %></label>
</div>
</body>
</html>
login.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>Login</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div align="center">
<form action="processLogin.jsp"
method="post">
<table class="loginForm">
<tr>
<td><label for="userName">User
Name</label></td>
<td><input type="text"
id="userName" name="userName"
class="searchTextField"/></td>
</tr>
<tr>
<td><label
for="password">Password</label></td>
<td><input type="password" id="password"
name="password"
class="searchTextField"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit"
value="Login" class="actionBtn" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
loginFailed.jsp
<%@ page language="java" contentType="text/html;
charset=ISO-8859-1" pageEncoding="ISO-88591"%>
<!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>
<body>
<h1>Invalid user credentials</h1>
<a href="login.jsp">Try Again</a>
</body>
</body>
</html>
logout.jsp
<%
session.invalidate(); response.sendRedirect("login.jsp");
%>
processAddProduct.jsp
<%@page import="dao.ProductManagementDAO"%>
<%@page import="pojo.Product"%>
<%
String productId = request.getParameter("prodId");
String productName =
request.getParameter("prodName"); String
productCategory =
request.getParameter("prodCategory");
Integer productPrice =
Integer.parseInt(request.getParameter("prodPrice"));
Product product = new
Product(productId,productName,productCategory,produ
ctPrice);
int status =
ProductManagementDAO.addProduct(product); if(status
== 1)
{
response.sendRedirect("viewProducts.jsp");
}
else
{
response.sendRedirect("error.jsp");
}
%>
processDeleteProduct.jsp
<%@page import="dao.ProductManagementDAO"%>
<%@page import="pojo.Product"%>
<%
String productId = request.getParameter("prodId");
int status =
ProductManagementDAO.deleteProduct(productId);
if(status == 1)
{
response.sendRedirect("viewProducts.jsp");
}
else
{
response.sendRedirect("error.jsp");
}
%>
processEditProduct.jsp
<%@page import="dao.ProductManagementDAO"%>
<%@page import="pojo.Product"%>
<%
String productId = request.getParameter("prodId"); String
productName = request.getParameter("prodName");
String productCategory =
request.getParameter("prodCategory");
Integer productPrice =
Integer.parseInt(request.getParameter("prodPrice"));
Product product = new
Product(productId,productName,productCategory,produ
ctPrice);
int status =
ProductManagementDAO.updateProduct(product);
if(status == 1)
{
response.sendRedirect("viewProducts.jsp");
}
else
{
response.sendRedirect("error.jsp");
}
%>
processLogin.jsp
<%@page import="dao.LoginDAO"%> <%@page
import="pojo.LoginInfo"%>
<%
String userName = request.getParameter("userName");
String password = request.getParameter("password");
if(LoginDAO.isUserValid(new
LoginInfo(userName,password)))
{
session.setAttribute("userName",userName);
session.setMaxInactiveInterval(200);
response.sendRedirect("home.jsp");
}
else
{
response.sendRedirect("loginFailed.jsp");
}
%>
searchProduct.jsp
<%@ page language="java" contentType="text/html;
charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="dao.ProductManagementDAO"%>
<%@page import="pojo.Product"%>
<%@page import="java.util.*"%>
<!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>Search Product</title>
</head>
<body>
<%@ include file="header.jsp" %>
<div align="center" style="padding-top:25px;">
<form action="searchProduct.jsp">
<label>Enter Product ID: </label>
<input type="text" name="prodId" size="25"
class="searchTextField"/>
<button class="actionBtn">Search</button>
</form>
</div>
<table align="center" class="productTable">
<thead>
<tr>
<th>Product ID</th>
<th>Product Name</th>
<th>Category</th>
<th>Price</th>
<th colspan="2">Actions</th>
</tr>
</thead>
<%
String productId =
request.getParameter("prodId");
if(productId != null)
{
Product p =
ProductManagementDAO.getProductById(productId);
if(p != null)
{
%>
<tr>
<td><%=p.getProductId()%></td>
<td><%=p.getProductName()%></td>
<td><%=p.getProductCategory()%></td>
<td><%= p.getProductPrice() %></td>
<td><button class="actionBtn"
onclick="location.href = 'editProduct.jsp?prodId=<%=
p.getProductId()%>';">Edit</button></td>
<td><button class="actionBtn"
onclick="location.href =
'processDeleteProduct.jsp?prodId=<%=
p.getProductId()%>';">Delete</button></td>
</tr>
<% }
else
{
%>
<tr>
<td colspan="5">No record to display</td>
</tr>
<%
}
}
else
{
%>
<tr>
<td colspan="5">No record to display</td>
</tr>
<%
}
%>
</table>
</body> </html>
viewProducts.jsp
<%@ page language="java" contentType="text/html;
charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="dao.ProductManagementDAO"%>
<%@page import="pojo.Product"%>
<%@page import="java.util.*"%>
<!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>View Products</title>
</head>
<body>
<%@ include file="header.jsp" %>
<table align="center" class="productTable">
<thead>
<tr>
<th>Product ID</th>
<th>Product Name</th>
<th>Category</th>
<th>Price</th>
<th colspan="2">Actions</th>
</tr>
</thead>
<%
List<Product> productList =
ProductManagementDAO.getAllProducts();
for (Product p : productList) {
%>
<tr>
<td><%=p.getProductId()%></td>
<td><%=p.getProductName()%></td>
<td><%=p.getProductCategory()%></td>
<td><%= p.getProductPrice() %></td>
<td><button class="actionBtn" onclick="location.href =
'editProduct.jsp?prodId=<%=
p.getProductId()%>';">Edit</button></td> <td><button
class="actionBtn" onclick="location.href =
'processDeleteProduct.jsp?prodId=<%=
p.getProductId()%>';">Delete</button></td>
</tr>
<%
}
%>
</table>
</body> </html>
style.css
@CHARSET "ISO-8859-1";
body { font-family:
Arial;
background-color: #f4f4f4;
}
.navbar { background-color:
#3b5998;
overflow: hidden;
height: 63px;
}
.navbar a { float: left;
display: block; color:
#f2f2f2; text-align:
center; padding: 14px
16px; text-decoration:
none; font-size: 17px;
}
.navbar ul { margin:
8px 0 0 0; list-
style: none;
}
.navbar a:hover {
backgroundcolor: #ddd; color:
#000;
}
.productTable { paddingtop:25px;
border-spacing: 0px;
}
.productTable thead tr th{
padding: 15px; color: white;
background-color: #374561; font-
size:15px;
}
.productTable tbody tr td {
padding: 13px; font-size:
13px
}
.productTable tr:nth-child(even) {
background-color: #e4e4e4;
}
.productTable tr:nth-child(odd) {
background-color: white;
}
.actionBtn { backgroundcolor:
#1c54b5; padding: 10px;
color: white; border: none;
width: 75px; borderradius:
5px; cursor: pointer;
}
.actionBtn:hover { background-
color: #3d74d2;
}
.searchTextField { height:
30px; border-radius:
5px; padding-left: 5px
}
.productTextField {
height: 25px; border-
radius: 5px; padding-
left: 5px
}
.loginForm { background-color:
#d5dbe4; border-spacing:
15px; padding: 10px;
margin-top:100px;
}
OUTPUT SCREEN
TABLE DESIGN
Login Table create table login_info(username
varchar2(20),password varchar2(20));
userName password
admin admin@123
Product Table create table product(prod_id
varchar2(30),prod_name varchar2(30),prod_category
varchar2(30),prod_price number);
prod_id prod_name prod_category prod_price
p001 iPhone Mobile Phone 10000
p002 Sony Bravia Television 7000
p003 T-Shirt Clothing 1000
p004 Go Pro Camera 5000
p005 Vivo Mobile Phone 30000
BIBLIOGRAPHY
For the completion of the”(Online)Product Management
System” and documentation we have referred the
following
• Books…
• Java-The Complete Reference: HerbertSchildt
• Java Black Book: Dr.R.NageshwarRao
• Internet
• www.javatpoint.com
• http://www.tutorialspoint.com/java/index.html
• For Java installation
• http://www.java.com/en/download
• For Oracle DataBase installation
• http://www.oracle.com/index.html