Sha c-1
Sha c-1
lOMoARcPSD|43377640
PROJECT REPORT
ON
ADD TO CART
PRODUCT ADDING ON CART WEBSITE
(Submitted in Partial Fulfillment for BCA, M.S.U, Saharanpur)
3. E-mail: [email protected]
1
2
3
4
lOMoARcPSD|43377640
Certificate
This is to certify that this Project Report entitled “ADD TO CART” submitted
IT Department, ST R C College Of Higher Education done by SHASHANK
GARG is an authentic work carried out by him at under my guidance. The
matter embodied in this project work has not been submitted earlier for the
award of any degree or diploma to the best of my knowledge and belief.
ACKNOWLEDGEMENT
I am thankful to all the faculty members, providing their valuable time and
guidance in elaborating view of studying the project details and
getting the right vision for its implementation.
I am highly thankful to my Project guide Mr. SONU MALIK, who not only supervised me
while my project, but also gave me valuable suggestions which will be very beneficial for
me in future.
I would like to thank my colleagues, who assisted me and helped me through out.
lOMoARcPSD|43377640
Abstract
Table of Contents
1. Introduction of the Project
Project Objective
Project Benefit
Project Scope
Project Access
3. System Design
Interface Design
User Interface
Communication Interface
Detailed System Specification
Detailed System Design
Functional Flow of System
Data Flow of System
5. Appendix
References
lOMoARcPSD|43377640
The objective of the "Add to Cart" project is to design and implement a seamless, user-
friendly feature for an e-commerce platform that enhances the online shopping
experience. This project aims to create an intuitive interface allowing users to effortlessly
add items to their shopping cart with minimal clicks, ensuring a smooth transition from
product selection to purchase. The key objectives include optimizing the user interface
for ease of use, ensuring the system's compatibility across various devices, and
integrating real-time updates to reflect inventory changes and cart modifications.
Additionally, the project seeks to implement robust backend functionality to handle
concurrent user interactions, maintain data integrity, and provide secure storage of user
information. By focusing on these aspects, the "Add to Cart" feature will contribute to
increased user satisfaction, higher conversion rates, and overall improved efficiency of
the e-commerce platform.
PROJECT BENEFITS
Enhanced User Experience: Streamlines the shopping process with an intuitive and
responsive interface, leading to increased customer satisfaction and retention.
Increased Conversion Rates: Simplifies adding items to the cart, reducing friction and
encouraging users to complete their purchases, thus boosting sales.
PROJECT SCOPE:
User Interface Design:
Develop a visually appealing and intuitive interface for the "Add to Cart" button and
cart view.
Ensure the interface is responsive and provides a consistent experience across
desktop, tablet, and mobile devices.
Streamline the process of adding items to the cart, including options for quantity
adjustments and variant selections (size, color, etc.).
Implement features such as hover effects, animations, and confirmations to enhance
the user experience.
Backend Development:
Design and develop a robust backend system to manage cart operations, including
adding, updating, and removing items.
Ensure data integrity and consistency across user sessions, even in cases of high
concurrency.
Real-Time Updates:
Integrate the "Add to Cart" functionality with the existing product catalog, user
accounts, and order processing systems.
Ensure seamless communication between frontend and backend components.
Conduct thorough testing, including unit tests, integration tests, and user acceptance
tests, to ensure functionality and performance.
Identify and resolve any bugs or issues before deployment.
Plan and execute a smooth deployment of the "Add to Cart" feature on the live e-
commerce platform.
Establish a maintenance plan to address any post-deployment issues and ensure
continuous improvement.
PROJECT ACCESS
https://exquisite-cheesecake-27edc6.netlify.app/
lOMoARcPSD|43377640
So, here we followed the different stages of system development life cycle
to develop the website efficiently.
1. Preliminary Investigation
2. Determination Requirements
3. Design of System
4. Development of System
5. System Testing
6. Implementation
lOMoARcPSD|43377640
Technology Used
HTML-:
HTML stands for Hyper Text Markup Language
HTML describes the structure of Web pages using markup
HTML elements are the building blocks of HTML pages
HTML elements are represented by tags
HTML tags label pieces of content such as "heading",
"paragraph", "table", and so on
Browsers do not display the HTML tags, but use them to render
the content of the page
WHY HTML?
CSS-:
What is CSS?
CSS stands for Cascading Style Sheets
CSS describes how HTML elements are to be displayed on screen, paper,
or in other media
CSS saves a lot of work. It can control the layout of multiple web pages all
at once
External stylesheets are stored in CSS files
Why CSS?
These are just a few reasons why we choose to use CSS. Although we have not gone into
the details of using CSS (that is well beyond the scope of this article), we hope that you
have a better understanding of why it’s important. One last reason is, “all the cool kids
are doing it”. We’re kidding of course, but it is the way of the future…so why not get
there now.
TAILWIND CSS -:
@tailwind base;
@tailwind components;
@tailwind utilities;
JAVASCRIPT:-
Technical Feasibility
Issues to be studied are, whether the work for the project will be done
with current equipment, existing S/W technology and available
personnel? If the new technology is required, then what is the
likelihood that it can be developed?
Hardware Requirements
HARDWARE REQUIREMENTS (Minimum)
Processor- Pentium IV
Hard Disk 10 GB
Economic Feasibility
Operational Feasibility
I first learnt about the organization involved in, or affected by the project, I
got to know how the department works and the employees were directly
involved/associated with the application. Annual manuals and reports were of
great help to me.
Here, I observed the activities of the system directly. I saw the office
environment, workload on the system, and workload on the users. The
physical layout of the current system along with the location & movement of
staff was analyzed. In this way, the information about the present workflow,
objects and people was gathered.
Written documents and onsite observation just tell that how the system
should operate. They do not include enough details to allow a decision
to be made about the merits of system proposal, nor do they present
user views about the current system.
Design of System
Interface Design
User Interface
Communication Interface
User Interface
The various documents that are maintained by the RR section that have
been used to analyze the user interfaces that will interact with the
Online ADDING PRODUCT ON CART.
Communication Interface
The software may either be installed on a client server based setup with
a Local Area Network (using the Ethernet Interface, one to one
connection and TCP/IP) or on a standalone machine whereby client and
server components resides on the same machine.
lOMoARcPSD|43377640
The design that we have formed for the new system are given as under:-
A data flow diagram (DFD) maps out the flow of information for any
process or system. It uses defined symbols like rectangles, circles and
arrows, plus short text labels, to show data inputs, outputs, storage points
and the routes between each destination. Data flowcharts can range from
simple, even hand-drawn process overviews, to in-depth, multi-level DFDs
that dig progressively deeper into how the data is handled. They can be used
to analyze an existing system or model a new one. Like all the best
diagrams and charts, a DFD can often visually “say” things that would be
hard to explain in words, and they work for both technical and nontechnical
audiences, from developer to CEO. That’s why DFDs remain so popular
after all these years. While they work well for data flow software and
systems, they are less applicable nowadays to visualizing interactive, real-
time or database-oriented software or systems.
lOMoARcPSD|43377640
0-Level DFD
User
Details
ADD
TO
Transaction CART
lOMoARcPSD|43377640
1-Level DFD
Avail
services
COORDINATOR/CUSTOMER
Give services
ER Diagram
ADDRESS.
Services
ADDIN
NAME GG
EMW
request CORDINATOR
PROCESS avail
Service
ORDER D. OTHER
lOMoARcPSD|43377640
START
COORDINATOR
Record ADD
ADC ADC
lOMoARcPSD|43377640
GET INFO
AVAIL SERVICES
ADDING TO
C
CHECK STATUS
lOMoARcPSD|43377640
HTML FILE:-Index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-
scale=1.0" />
<title>Shopping Cart</title>
<link
href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;600;700&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div id="root"></div>
</body>
</html>
lOMoARcPSD|43377640
ANDROID-CHROME PNG>>>
ANDROID-CHROME- 192X192
LOCATION:
C:\Users\DELL\Downloads\ME\Add_to_Cart\Add_to_Cart\public\android-
chrome-192x192.png
ANDROID-CHROME 512X512
lOMoARcPSD|43377640
LOCATION:
C:\Users\DELL\Downloads\ME\Add_to_Cart\Add_to_Cart\public\android-
chrome-512x512.png
APPLA-TOUCH ICON
LOCATION:
C:\Users\DELL\Downloads\ME\Add_to_Cart\Add_to_Cart\public\apple-
touch-icon.png
favicon-16X16
lOMoARcPSD|43377640
LOCATION: C:\Users\DELL\Downloads\ME\Add_to_Cart\Add_to_Cart\
public\favicon-16x16.png
favicon 32X32
LOCATION:
C:\Users\DELL\Downloads\ME\Add_to_Cart\Add_to_Cart\public\favicon-
32x32.png
SITE.WEBmanifet.
{"name":"","short_name":"","icons":[{"src":"/android-chrome-
192x192.png","sizes":"192x192","type":"image/png"},{"src":"/
android-chrome-512x512.png","sizes":"512x512","type":"image/
png"}],"theme_color":"#ffffff","background_color":"#ffffff","displ
ay":"standalone"}
lOMoARcPSD|43377640
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: "Poppins", sans-serif;
min-height: 100vh;
background-color: #fff;
}
lOMoARcPSD|43377640
COMPONENTS:-
CartItem.jsx:
lOMoARcPSD|43377640
<div>
<div>
<img src={item.image}/>
</div>
<div>
<h1>{item.title}</h1>
<h1>{item.description}</h1>
<div>
<p>{item.price}</p>
<div onClick={removeFromCart}>
<FcDeleteDatabase/>
</div>
</div>
</div>
</div>
lOMoARcPSD|43377640
</div>
)
};
Navbar.jsx:
</div>
</NavLink>
</div>
</nav>
</div>
)
}
Product.jsx
return (
lOMoARcPSD|43377640
<div className="h-[180px]">
<img src={post.image} className="h-full w-full" />
</div>
{
cart.some((p) => p.id == post.id) ?
(<button className="text-gray-700 border-2 border-
gray-700 rounded-full font-semibold text-[12px] p-1 px-3 uppercase
hover:bg-gray-700
hover:text-white transition duration-300 ease-in"
onClick={removeFromCart}>
Remove Item
</button>) :
(<button className="text-gray-700 border-2 border-
gray-700 rounded-full font-semibold text-[12px] p-1 px-3 uppercase
lOMoARcPSD|43377640
hover:bg-gray-700
hover:text-white transition duration-300 ease-in"
onClick={addToCart}>
Add to Cart
</button>)
}
</div>
</div>
);
};
# Spinner.css:
.loader {
width: 50px;
aspect-ratio: 1;
border-radius: 50%;
padding: 1px;
#0000 0deg,
#000 1deg calc(360deg/10 - 10deg - 1deg),
#0000 calc(360deg/10 - 10deg) calc(360deg/10)
), radial-gradient(
farthest-side,
#0000 calc(98% - 10px),
lOMoARcPSD|43377640
);
mask-composite: intersect;
-webkit-mask-composite: destination-in;
animation: spin 1000ms infinite steps(10);
}
@keyframes spin { to { transform: rotate(1turn) } }
Spinner.jsx:
import React from "react";
import "./Spinner.css"
</div>
</div>
)
}
Redux:
.Slices
JS CartSlice.js
name:"cart",
initialState: [],
reducers:{
lOMoARcPSD|43377640
add:(state,action) => {
state.push(action.payload);
},
remove:(state,action) => {
return state.filter((item) => item.id!
=action.payload);
},
}
);
JS Store.js
import { configureStore } from "@reduxjs/toolkit";
reducer:{
cart: CartSlice.reducer,
}
}
)
;
APP.jsx
import Navbar from "./components/Navbar"
import { Routes,Route } from "react-router-dom";
import Home from "./pages/Home"
import Cart from "./pages/Cart"
</div>
<Routes>
lOMoARcPSD|43377640
</div>
)
};
JAVASCRIPT FILE:
JS inex.js
mport React from "react";
import "./index.css";
root.render(
<BrowserRouter>
<Provider store={store}>
<App/>
<Toaster/>
</Provider>
</BrowserRouter>
);
JS data.js
export const products = [
{
id: 1,
lOMoARcPSD|43377640
rating: {
rate: 3.9,
count: 120,
},
},
{
id: 2,
title: "Mens Casual Premium Slim Fit T-Shirts ",
price: 22.3,
description:
"Slim-fitting style, contrast raglan long sleeve, three-
button henley placket, light weight & soft fabric for breathable
and comfortable wearing. And Solid stitched shirts with round neck
made for durability and a great fit for casual fashion wear and
diehard baseball fans.
rating: {
rate: 4.1,
count: 259,
},
},
{
id: 3,
title: "Mens Cotton Jacket",
price: 55.99,
description:
"great outerwear jackets for Spring/Autumn/Winter, suitable for
many occasions, such as working, hiking, camping, mountain/rock
climbing, cycling, traveling or other outdoors. Good gift choice
id: 6,
title: "Solid Gold Petite Micropave ",
price: 168,
description:
"Satisfaction Guaranteed. Return or exchange any order
within 30 days.Designed and sold by Hafeez Center in the United
States. Satisfaction Guaranteed. Return or exchange any order
within 30 days.",
category: "jewelery",
image:
"https://fakestoreapi.com/img/61sbMiUnoGL._AC_UL640_QL65_ML3_.jpg"
,
rating: {
rate: 3.9,
count: 70,
},
},
{
id: 7,
title: "White Gold Plated Princess",
price: 9.99,
description:
"Classic Created Wedding Engagement Solitaire Diamond
Promise Ring for Her. Gifts to spoil your love more for
Engagement, Wedding, Anniversary, Valentine's Day...",
category: "jewelery",
image:
"https://fakestoreapi.com/img/71YAIFU48IL._AC_UL640_QL65_ML3_.jpg"
,
rating: {
rate: 3,
count: 400,
},
},
{
lOMoARcPSD|43377640
id: 8,
title: "Pierced Owl Rose Gold Plated Stainless Steel Double",
price: 10.99,
description:
"Rose Gold Plated Double Flared Tunnel Plug Earrings. Made
of 316L Stainless Steel",
category: "jewelery",
image:
"https://fakestoreapi.com/img/51UDEzMJVpL._AC_UL640_QL65_ML3_.jpg"
,
rating: {
rate: 1.9,
count: 100,
},
},
{
id: 9,
title: "WD 2TB Elements Portable External Hard Drive - USB 3.0
",
price: 64,
description:
},
},
{
id: 10,
title: "SanDisk SSD PLUS 1TB Internal SSD - SATA III 6 Gb/s",
price: 109,
description:
"Easy upgrade for faster boot up, shutdown, application load
and response (As compared to 5400 RPM SATA 2.5” hard drive; Based
on published specifications and internal benchmarking tests using
PCMark vantage scores) Boosts burst write performance, making it
ideal for typical PC workloads The perfect balance of performance
and reliability Read/write speeds of up to 535MB/s/450MB/s (Based
on internal testing; Performance may vary depending upon drive
capacity, host device, OS and application.)",
category: "electronics",
image:
"https://fakestoreapi.com/img/61U7T1koQqL._AC_SX679_.jpg",
rating: {
rate: 2.9,
count: 470,
},
},
{
id: 11,
title:
"Silicon Power 256GB SSD 3D NAND A55 SLC Cache Performance
Boost SATA III 2.5",
price: 109,
description:
"3D NAND flash are applied to deliver high transfer speeds
Remarkable transfer speeds that enable faster bootup and improved
overall system performance. The advanced SLC Cache Technology
lOMoARcPSD|43377640
"https://fakestoreapi.com/img/61mtL65D4cL._AC_SX679_.jpg",
rating: {
rate: 4.8,
count: 400,
},
},
{
lOMoARcPSD|43377640
id: 13,
title: "Acer SB220Q bi 21.5 inches Full HD (1920 x 1080) IPS
Ultra-Thin",
price: 599,
description:
"21. 5 inches Full HD (1920 x 1080) widescreen IPS display
And Radeon free Sync technology. No compatibility for VESA Mount
Refresh Rate: 75Hz - Using HDMI port Zero-frame design | ultra-
thin | 4ms response time | IPS panel Aspect ratio - 16: 9. Color
Supported - 16. 7 million colors. Brightness - 250 nit Tilt angle
-5 degree to 15 degree. Horizontal viewing angle-178 degree.
Vertical viewing angle-178 degree 75 hertz",
category: "electronics",
image:
"https://fakestoreapi.com/img/81QpkIctqPL._AC_SX679_.jpg",
rating: {
rate: 2.9,
count: 250,
},
},
{
id: 14,
title:
"Samsung 49-Inch CHG90 144Hz Curved Gaming Monitor
(LC49HG90DMNXZA) – Super Ultrawide Screen QLED ",
price: 999.99,
description:
category: "electronics",
image:
"https://fakestoreapi.com/img/81Zt42ioCgL._AC_SX679_.jpg",
rating: {
rate: 2.2,
count: 140,
},
},
{
id: 15,
title: "BIYLACLESEN Women's 3-in-1 Snowboard Jacket Winter
Coats",
price: 56.99,
description:
"Note:The Jackets is US standard size, Please choose size as
your usual wear Material: 100% Polyester; Detachable Liner Fabric:
Warm Fleece. Detachable Functional Liner: Skin Friendly,
Lightweigt and Warm.Stand Collar Liner jacket, keep you warm in
cold weather. Zippered Pockets: 2 Zippered Hand Pockets, 2
Zippered Pockets on Chest (enough to keep cards or keys)and 1
Hidden Pocket Inside.Zippered Hand Pockets and Hidden Pocket keep
your things secure. Humanized Design: Adjustable and Detachable
Hood and Adjustable cuff to prevent the wind and water,for a
comfortable fit. 3 in 1 Detachable Design provide more
convenience, you can separate the coat and inner as needed, or
wear it together. It is suitable for different season and help you
adapt to different climates",
category: "women's clothing",
image: "https://fakestoreapi.com/img/51Y5NI-
I5jL._AC_UX679_.jpg",
rating: {
rate: 2.6,
count: 235,
},
},
lOMoARcPSD|43377640
{
id: 16,
title:
"Lock and Love Women's Removable Hooded Faux Leather Moto
Biker Jacket",
price: 29.95,
description:
"100% POLYURETHANE(shell) 100% POLYESTER(lining) 75%
POLYESTER 25% COTTON (SWEATER), Faux leather material for style
and comfort / 2 pockets of front, 2-For-One Hooded denim style
faux leather jacket, Button detail on waist / Detail stitching at
sides, HAND WASH ONLY / DO NOT BLEACH / LINE DRY / DO NOT IRON",
category: "women's clothing",
image:
"https://fakestoreapi.com/img/81XH0e8fefL._AC_UY879_.jpg",
rating: {
rate: 2.9,
count: 340,
},
},
{
id: 17,
title: "Rain Jacket Women Windbreaker Striped Climbing
Raincoats",
price: 39.99,
description:
},
{
id: 20,
title: "DANVOUY Womens T Shirt Casual Cotton Short",
price: 12.99,
description:
"95%Cotton,5%Spandex, Features: Casual, Short Sleeve, Letter
Print,V-Neck,Fashion Tees, The fabric is soft and has some
stretch., Occasion: Casual/Office/Beach/School/Home/Street.
Season: Spring,Summer,Autumn,Winter.",
category: "women's clothing",
image:
"https://fakestoreapi.com/img/61pHAEJ4NML._AC_UX679_.jpg",
rating: {
rate: 3.6,
count: 145,
},
},
];
lOMoARcPSD|43377640
{} package-lock.json
{
"name": "shopping-cart",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "shopping-cart",
"version": "0.1.0",
"dependencies": {
"@reduxjs/toolkit": "^1.9.5",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hot-toast": "^2.4.0",
"react-icons": "^4.11.0",
"react-redux": "^8.1.2",
"react-router-dom": "^6.9.0",
"react-scripts": "5.0.1",
"react-toastify": "^9.1.3",
"web-vitals": "^2.1.4"
},
"devDependencies": {
"autoprefixer": "^10.4.14",
"postcss": "^8.4.21",
"tailwindcss": "^3.2.7"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
lOMoARcPSD|43377640
"version": "1.2.6",
"resolved":
"https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-
1.2.6.tgz",
"integrity":
"sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4
Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/@adobe/css-tools": {
"version": "4.3.1",
"resolved":
"https://registry.npmjs.org/@adobe/css-tools/-/css-tools-
4.3.1.tgz",
"integrity":
"sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73
zSJQ4fMVLA+0uBhBHAle7Wg+2kSg=="
},
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
"resolved":
"https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-
5.2.0.tgz",
"integrity":
"sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUy
uiecfdGQ85jglMW6juS3+z5TsKLw==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
lOMoARcPSD|43377640
"resolved":
"https://registry.npmjs.org/@ampproject/remapping/-/remapping-
2.2.1.tgz",
"integrity":
"sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE
3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/code-frame": {
"version": "7.22.13",
"resolved": "https://registry.npmjs.org/@babel/code-
frame/-/code-frame-7.22.13.tgz",
"integrity": "sha512-
XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuT
JIUhPKKJE3cIsYTiAT3w==",
"dependencies": {
"@babel/highlight": "^7.22.13",
"chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/code-frame/node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-
styles-3.2.1.tgz",
"integrity":
"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR
1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
lOMoARcPSD|43377640
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/code-frame/node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-
2.4.2.tgz",
"integrity":
"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHSh
jkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/code-frame/node_modules/color-convert": {
"version": "1.9.3",
"resolved":
"https://registry.npmjs.org/color-convert/-/color-convert-
1.9.3.tgz",
"integrity": "sha512-
QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/
SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@babel/code-frame/node_modules/color-name": {
"version": "1.1.3",
lOMoARcPSD|43377640
"resolved": "https://registry.npmjs.org/color-name/-/color-name-
1.1.3.tgz",
"integrity": "sha512-
72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8T
FUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/@babel/code-frame/node_modules/escape-string-
regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-
regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity":
"sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRef
kRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@babel/code-frame/node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-
3.0.0.tgz",
"integrity": "sha512-
sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/
dpjlb+HugGYzW7uQXH98HPEYw==",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/code-frame/node_modules/supports-color":
{
"version": "5.5.0",
"resolved":
"https://registry.npmjs.org/supports-color/-/supports-color-
5.5.0.tgz",
lOMoARcPSD|43377640
"integrity": "sha512-
QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma
0ey4f5lgLrkB0aX0QMow==",
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/compat-data": {
"version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/compat-
data/-/compat-data-7.22.9.tgz",
"integrity":
"sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+k
oZwOfd+SgtFKOKRhRakdg++DcJpQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
"version": "7.22.19",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-
7.22.19.tgz",
"integrity": "sha512-
Q8Yj5X4LHVYTbLCKVz0//2D2aDmHF4xzCdEttYvKOnWvErGsa6geHXD6w46x64n5tP
69VfeH+IfSrdyH3MLhwA==",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.22.13",
"@babel/generator": "^7.22.15",
"@babel/helper-compilation-targets": "^7.22.15",
"@babel/helper-module-transforms": "^7.22.19",
"@babel/helpers": "^7.22.15",
"@babel/parser": "^7.22.16",
"@babel/template": "^7.22.15",
lOMoARcPSD|43377640
"@babel/traverse": "^7.22.19",
"@babel/types": "^7.22.19",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.3",
"semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/babel"
}
},
"node_modules/@babel/core/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-
6.3.1.tgz",
"integrity": "sha512-
BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/
MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/eslint-parser": {
"version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/eslint-
parser/-/eslint-parser-7.22.15.tgz",
"integrity": "sha512-
yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VF
F/sZc+S4RzHyO+3LjQxg==",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
lOMoARcPSD|43377640
"semver": "^6.3.1"
},
"engines": {
"node": "^10.13.0 || ^12.13.0 || >=14.0.0"
},
"peerDependencies": {
"@babel/core": "^7.11.0",
"eslint": "^7.5.0 || ^8.0.0"
}
},
"node_modules/@babel/eslint-parser/node_modules/eslint-
visitor-keys": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-
keys/-/eslint-visitor-keys-2.1.0.tgz",
"integrity":
"sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YU
lMGYLQy2zprNmoT8qasCGtY+QaKw==",
"engines": {
"node": ">=10"
}
},
"node_modules/@babel/eslint-parser/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-
6.3.1.tgz",
"integrity": "sha512-
BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/
MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/generator": {
"version": "7.22.15",
lOMoARcPSD|43377640
"resolved":
"https://registry.npmjs.org/@babel/generator/-/generator-
7.22.15.tgz",
"integrity":
"sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/
TCfoHMbWIFlWwpZtkZVb9ga4U2pA==",
"dependencies": {
"@babel/types": "^7.22.15",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
},
"engines": {
"node": ">=6.9.0"
}
},
{} package.json
{
"name": "shopping-cart",
"version": "0.1.0",
"private": true,
"dependencies": {
"@reduxjs/toolkit": "^1.9.5",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hot-toast": "^2.4.0",
"react-icons": "^4.11.0",
"react-redux": "^8.1.2",
"react-router-dom": "^6.9.0",
"react-scripts": "5.0.1",
"react-toastify": "^9.1.3",
""
lOMoARcPSD|43377640
web-vitals": "^2.1.4
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"autoprefixer": "^10.4.14",
"postcss": "^8.4.21",
"tailwindcss": "^3.2.7"
}
}
lOMoARcPSD|43377640
JS postcss.config.js
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
JS twailwind.config.js
module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}"],
theme: {
extend: {},
},
plugins: [],
};
lOMoARcPSD|43377640
Unit Testing:
Integration Testing:
Integration testing is performed after all the software units are combined
together. The objective here is to test the software interfaces. Project
team conducts the integration testing. Before entering integration testing,
it may be ensured that code review and unit testing have been performed
on the individual software modules.
I conducted the unit testing for finding errors and the results of
the unit testing are recorded and action initiated for rectification
of the errors/defects.
lOMoARcPSD|43377640
VALIDATION
Almost every field in the database which is sensitive i.e. responsible for some
important changes are validated. Basically we validated the field as such is
numeric and the length in case of the primary keys and also used the Data base to
complete most of the details once entered at the data entry time,
Mostly the validation is carried out in the lost focus, click, change and
other similar events where the entered value is compared with the one stored in
the database and if there is duplication to occur or no match with the database
then the entry is to be removed and user is prompt to reenter it.
Implementation & consequently maintenance was not included as part of our
project.
lOMoARcPSD|43377640
References
CHAT-GPT