PT 1 Documentation Template
PT 1 Documentation Template
PT 1 Documentation Template
(Deemed to be University)
By
SCHOOL OF COMPUTING
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
BONAFIDE CERTIFICATE
This is to certify that this Professional Training-1 Report is the bonafide work of
NALLURI PRANAV SAI (42110859) who carried out the Project entitled
“E-COMMERCE WEBSITE WITH REAL TIME CHAT SUPPORT” under my
supervision from June 2024 to October 2024.
Internal Guide
ii
DECLARATION
DATE:
iii
ACKNOWLEDGEMENT
iv
TRAINING CERTIFICATE
v
ABSTRACT
vi
TABLE OF CONTENTS
vii
LIST OF FIGURES
viii
CHAPTER -1
INTRODUCTION
Our e-commerce website project aims to revolutionize online shopping by
prioritizing user experience, implementing seamless navigation, robust backend
operations, secure payment processing, and effective search engine optimization.
Through innovative design and advanced technology, we aspire to enhance
customer satisfaction and propel business success in the digital marketplace.
By focusing on these core aspects, our proposed solution aims to establish the
e-commerce website as a leading destination for online shopping, catering to the
diverse needs and preferences of modern consumers while providing businesses
with a robust platform for growth and success.
experience for customers while providing efficient and effective tools for
engagement.
minimize errors.
larger audience, and drive sales growth for businesses operating on the
platform.
agility within the project team, enabling the continuous evolution of the
exceptional shopping experience and empowering businesses with the tools they
Functional Scope:
● User Registration and Authentication: Allow users to create accounts and
log in securely.
● Product Browsing: Enable users to browse through various products with
categories and filters.
● Product Details: Provide detailed information about each product, including
images, descriptions, and prices.
● Shopping Cart: Allow users to add items to a shopping cart, view their cart,
and proceed to checkout.
● Order Management: Enable users to view order history, track current orders,
and manage shipping details.
● Payment Processing: Integrate secure payment gateways to facilitate smooth
and secure transactions.
● Admin Dashboard: Provide administrators with tools to manage products,
orders, and user accounts.
● Feedback and Reviews: Allow users to leave feedback and reviews for
products they have purchased.
Non-Functional Scope:
● Performance: Ensure fast loading times and responsive design to enhance
user experience.
● Security: Implement robust security measures to protect user data and prevent
unauthorized access.
● Scalability: Design the system to handle increasing numbers of users and
products without performance degradation.
● Reliability: Minimize downtime and errors to ensure the platform is available
and functional at all times.
● Accessibility: Ensure the website is accessible to users with disabilities and
complies with accessibility standards.
● Compatibility: Ensure compatibility with different devices, browsers, and
operating systems to reach a wide audience.
● Usability: Design the user interface with simplicity.
CHAPTER -2
METHODOLOGIES USED
2.1 ER MODEL:
Relationships:
● User-Order: A user can place multiple orders, but each order belongs to
only one user. (One-to-Many)
● Order-Product: An order can contain multiple products, and each product
can be part of multiple orders. (Many-to-Many)
● Order-Payment: An order can have one payment associated with it, but a
payment can be linked to multiple orders. (One-to-Many)
● Product-Category: A product belongs to a specific category, and a category
can have multiple products. (One-to-Many
● User: UserID, Username, Email, Password
● Product: ProductID, Name, Description, Price, Quantity
● Order: OrderID, UserID, OrderDate, Status
● Payment: PaymentID, OrderID, Amount, PaymentDate, PaymentMethod
● Category: CategoryID, Name
This ER model represents the basic structure of an e-commerce website, outlining
how different entities are related to each other and what attributes they possess.
Further refinement and addition of entities and relationships may be necessary
depending on the specific requirements and functionalities of the project.
● User Information: Flow of user registration and login data to the website
system.
● Product Listings: Transfer of product information from the database to the
website interface for users to browse.
● Order Placement: Submission of orders by users to purchase products.
● Payment Processing: Flow of payment data from users to the payment
gateway for transaction processing.
● Order Fulfillment: Transmission of order details from the website system to the
warehouse or fulfillment center for processing.
● Shipping Information: Transfer of shipping details from the warehouse.
● Feedback and Reviews: Exchange of feedback and reviews between users
and the website system to improve product and service quality.
The DFD provides a concise overview of the e-commerce website's data flow and
interactions, facilitating analysis, design, and communication of the system's
functional aspects.
Also known as a context diagram, this is the highest level and provides a broad
overview of the system or process. It's designed to be easy to understand by a
wide audience.
Fig 2.4: DFD level 0
This level provides more detail than the context diagram, breaking down the
high-level process into its subprocesses.
This level provides even more detail, breaking down sub processes further.The
level of detail needed depends on the scope of the project. The technique used
1. User Management:
○ Approve or reject shopkeepers who want to sell products.
○ Manage customer accounts and permissions.
2. Product Management:
○ Approve, update, or remove products listed by shopkeepers.
○ Set product categories to keep the site organized.
3. Order Management:
○ View and track customer orders.
○ Handle refunds or cancellations as needed.
4. Sales and Reports:
○ Generate sales and performance reports to monitor site success.
○ Track top-selling products and popular categories.
5. Site Content Management:
○ Update homepage banners, featured products, and promotions.
○ Maintain FAQ, contact information, and other static content.
6. Inventory and Stock Control:
○ Monitor stock levels across different shopkeepers.
○ Notify shopkeepers about low inventory on products.
7. Customer Support:
○ Address customer complaints and inquiries.
○ View customer feedback and reviews for quality control.
8. Financials and Payments:
○ Handle payments and process transactions.
○ Manage seller payouts and commissions.
9. Security and Compliance:
○ Monitor site for suspicious activity or policy violations.
○ Ensure data privacy and compliance with legal standards.
These features help the admin maintain quality, security, and smooth
operations on the e-commerce site.
Here are some key features of an e-commerce website project for Users,
presented simply:
2. Product Browsing: Users can search, view, and filter products by categories,
price, or popularity.
4. Shopping Cart: Users can add products to their cart, adjust quantities, and view
total costs.
7. Order Tracking: Allows users to view their order status and track delivery
progress.
8. Order History: Shows a record of past purchases for easy reference and
reordering.
Fig 3.9: Order history
9. Reviews & Ratings: Users can leave feedback on products and view other
customers' reviews.
10. Notifications: Provides updates on new products, sales, and order statuses via
email or in-app alerts.
Here are the essential features for an e-commerce website project designed for
sellers who require admin approval to sell their products online:
● User Registration: Simple sign-up with basic user info for customers and
sellers.
● Seller Application Process: A dedicated form for sellers to apply, including
store details, documentation, and tax information.
● Verification & Approval Workflow: Admins review applications, verify
details, and approve or deny sellers, with notification alerts.
Fig 3.10 : seller registration
● Product Listings: Ability for sellers to add, edit, or delete product listings
with details like description, price, category, and images.
● Inventory Management: Real-time stock tracking for products, with
low-stock alerts.
● Product Status Tracking: Products remain in “pending” status until
approved by admin, ensuring quality control.
● Sales Analytics: Sellers can view revenue, order trends, popular products,
and seasonal trends.
● Customer Insights: Basic demographics and purchasing trends to help
sellers understand their audience better.
● Inventory Insights: Alerts on trending items, stock that’s moving slowly, or
items low on stock.
5. Customer Support and Helpdesk
● FAQ & Knowledge Base: For customers and sellers on common issues,
returns, payment, etc.
● Ticket System: Customer and seller support tickets managed by the site
admin.
● Live Chat: Option for live support for customer queries.
● Discount & Coupon Management: Sellers can offer discounts; admin can
provide site-wide promotions.
● Product Advertising: Paid placement options for products to appear in
featured sections.
● Email Marketing Integration: Automatic emails for cart abandonment,
promotions, and new product alerts.
● Data Privacy: Compliance with data privacy laws and secure handling of
user data.
● Two-Factor Authentication: Extra security layer for seller and admin
logins.
● Audit Log: Detailed activity log for tracking changes made by sellers or
admins.
This gives a secure experience for sellers and customers while giving admins
control over platform standards.
CHAPTER -4
This software package is developed using html , bootstrap for front end .
python and Server as the back end to store the database for backend.
● Operating System: Windows 7, 8, 9, 10 .
● Language: Html , Css , Javascript , python
● Database: SQLiteServer (back end)
● Processor: Intel core i3 or above for a stable experience and fast retrieval of
data.
● Hard Disk: 40GB and above
● RAM: 256 MB or more, recommended 2 GB for fast reading and writing
capabilities which will result in better performance time.
def home(request):
products=Product.objects.filter(trending=1)
return
render(request,"shop/index.html",{"products":pr
oducts})
def favviewpage(request):
if request.user.is_authenticated:
fav=Favourite.objects.filter(user=reque
st.user) return
render(request,"shop/fav.html",{"fav":f
av})
else:
return
redire
ct("/")
def remove_fav(request,fid):
item=Favourite.objec
ts.get(id=fid)
item.delete() return
redirect("/favviewpag
e")
def viewcart(request): if
request.user.is_authenticated:
cart=Cart.objects.filter(user=request.
user) return
render(request,"shop/cart.html",{"car
t":cart})
else:
return
redire
ct("/")
def
remove_cart(reque
st,cid):
cartitem=Cart.objec
ts.get(id=cid)
cartitem.delete()
return
redirect("/cart")
def fav_page(request):
if
request.headers.get('x-requested-with')=='XML
HttpRequest': if request.user.is_authenticated:
data=json.load(request)
product_id=data['pid']
product_status=Product.objects.get(i
d=product_id) if product_status:
if
Favourite.objects.filter(user=request.user.id,product_id=pro
duct_id):
return JsonResponse({'status':'Product Already in
Favourite'}, status=200)
else:
Favourite.objects.create(user=request.user,product_id=pr
oduct_id) return JsonResponse({'status':'Product Added
to Favourite'}, status=200)
else: return JsonResponse({'status':'Login to Add
Favourite'}, status=200)
else: return JsonResponse({'status':'Invalid
Access'}, status=200)
def add_to_cart(request):
if
request.headers.get('x-requested-with')=='XM
LHttpRequest': if
request.user.is_authenticated:
data=json.load(request)
product_qty=data['product_qty']
product_id=data['pid'] #print(request.user.id)
product_status=Product.objects.get(id=produc
t_id) if product_status:
if
Cart.objects.filter(user=request.user.id,product_id=product_i
d):
return JsonResponse({'status':'Product Already in Cart'},
status=200)
else:
if product_status.quantity>=product_qty:
Cart.objects.create(user=request.user,product_id=product_id,product_qty=
product_qty) return JsonResponse({'status':'Product Added to Cart'},
status=200)
else: return JsonResponse({'status':'Product Stock Not
Available'}, status=200)
else: return JsonResponse({'status':'Login to
Add Cart'}, status=200)
else: return JsonResponse({'status':'Invalid
Access'}, status=200)
def logout_page(request):
if request.user.is_authenticated:
logout(request)
messages.success(request,"Logged
out Successfully")
return redirect("/")
def
login_page(reques
t): if
request.user.is_aut
henticated: return
redirect("/")
else:
if request.method=='POST':
name=request.POST.get('username')
pwd=request.POST.get('password')
user=authenticate(request,username=name,p
assword=pwd) if user is not None:
login(request,user)
messages.success(request,"Logged in
Successfully") return redirect("/")
else:
messages.error(request,"Invalid User Name or
Password") return redirect("/login")
return render(request,"shop/login.html")
def register(request):
form=CustomU
serForm() if
request.method
=='POST':
form=CustomUserForm(re
quest.POST) if
form.is_valid(): form.save()
messages.success(request,"Registration Success You can
Login Now..!") return redirect('/login')
else:
messages.success(request,"Inv
alid details..!")
return render(request,"shop/register.html",{'form':form})
def collections(request):
catagory=Catagory.objects.filter(status=0)
return
render(request,"shop/collections.html",{"catagory":catagory})
def collectionsview(request,name):
if(Catagory.objects.filter(name=name,status=0)):
products=Product.objects.filter(category__name=name)
return
render(request,"shop/products/index2.html",{"products":products,"category_na
me":name})
else:
messages.warning(request,"No Such Catagory Found")
return redirect('collections')
def product_details(request,cname,pname):
if(Catagory.objects.filter(name=cname,status=0)):
if(Product.objects.filter(name=pname,status=0)):
products=Product.objects.filter(name=pname,status=0).first
()
return
render(request,"shop/products/product_details.html",{"products":products})
else:
messages.error(request,"No Such Produtct
Found") return redirect('collections')
else:
messages.error(request,"No Such Catagory
Found") return redirect('collections')
@login_required(login_url='login') def
index(request):
rawcart=Cart.objects.filter(user=request.use
r) for item in rawcart: if item.product_qty >
item.product.quantity:
Cart.objects.delete(id=item.id) cartitems =
Cart.objects.filter(user=request.user) total_price=0 for
item in cartitems: total_price=total_price +
item.product.selling_price * item.product_qty
userprofile=Profile.objects.filter(user=request.user).first()
context={'cartitems':cartitems,'total_price':total_price,'userprofile
':userprofile} return
render(request,"shop/checkout.html",context)
def searchproduct(request):
if request.method == 'POST':
searchedterm=request.POST.get('pr
oductsearch') if searchedterm =="":
return redirect(request.META.get('HTTP_REFERER'))
else:
product=
Product.objects.filter(name__contains=searchedterm).fi
rst() if product: return
redirect('collections/'+product.category.name+'/'+produc
t.name)
else:
messages.info(request,"No product matched your
search") return
redirect(request.META.get('HTTP_REFERER'))
return redirect(request.META.get('HTTP_REFERER'))
@login_required(login_url='login')
@csrf_exempt def
placeorder(reques
t): if
request.method
== 'POST':
currentuser = User.objects.filter(id=request.user.id).first()
if not currentuser.first_name :
currentuser.first_name=request.POST.get('fname')
currentuser.last_name=request.POST.get('lname')
currentuser.save()
if not Profile.objects.filter(user=request.user):
userprofile=Profile()
userprofile.user=request.user
userprofile.phone = request.POST.get('phone')
userprofile.address =
request.POST.get('address') userprofile.city =
request.POST.get('city') userprofile.state =
request.POST.get('state') userprofile.country =
request.POST.get('country')
userprofile.pincode =
request.POST.get('pincode') userprofile.save()
neworder.payment_mode =
request.POST.get('payment_mode') neworder.payment_id =
request.POST.get('payment_id')
cart = Cart.objects.filter(user=request.user)
cart_total_price = 0 for item in cart: cart_total_price =
cart_total_price + item.product.selling_price * item.product_qty
neworder.total_price = cart_total_price
trackno
='jwhl'+str(random.randint(1111111,55555
55)) while
Order.objects.filter(tracking_no=trackno)
is None:
trackno ='jwhl'+str(random.randint(1111111,5555555))
neworder.tracking_no = trackno
neworder.save()
neworderitems =
Cart.objects.filter(user=request.user) for
item in neworderitems:
OrderItem.objects.create(
order=neworder,
product=item.product,
price=item.product.selli
ng_price,
quantity=item.product_
qty )
return redirect('/')
@login_required(login_
url='login') def
razorpaycheck(request):
cart=Cart.objects.filter(user=request.user) total_price=0
for item in cart: total_price= total_price +
item.product.selling_price * item.product_qty
return JsonResponse({
'total_price':total_price
})
# def orders(request):
# return render(request,'shop/search.html')
def index1(request):
orders = Order.objects.filter(user=request.user)
context={'orders':orders}
return render(request,'shop/orders.html',context)
@login_required(login_
url='login') def
vieworder(request,
t_no):
order =
Order.objects.filter(tracking_no=t_no).filter(user=request.us
er).first() orderitems = OrderItem.objects.filter(order=order)
context = {'order':order,'orderitems':orderitems} return
render(request,'shop/view.html',con
CHAPTER -5
CHAPTER -6
Despite its potential benefits, the e-commerce website project also faces several
limitations and challenges that need to be addressed:
● Technical Constraints: The development and maintenance of a sophisticated
e-commerce platform require substantial technical expertise and resources,
including skilled developers, robust infrastructure, and ongoing software
updates.
● Security Risks: E-commerce websites are susceptible to cybersecurity threats
such as data breaches, hacking attacks, and payment fraud, necessitating the
implementation of robust security measures to protect user data and financial
transactions.
● Scalability Issues: As the business grows and attracts more customers, the
website may encounter scalability issues related to server capacity, website
performance, and database management, requiring continuous optimization
and infrastructure upgrades.
● Competition: The e-commerce industry is highly competitive, with numerous
players vying for market share. Standing out from competitors and attracting
and retaining customers may prove challenging amidst intense competition.
● Logistics and Fulfillment: Efficient order fulfillment and timely delivery are
crucial for customer satisfaction. However, logistical challenges such as
inventory management, shipping delays, and last-mile delivery issues can
impact the overall customer experience.
● Regulatory Compliance: E-commerce businesses must comply with various
regulations and legal requirements, including consumer protection laws, data
privacy regulations, and taxation laws, which may vary across different
jurisdictions and impose additional compliance burdens.
● Customer Trust: Building and maintaining trust with customers is essential for
the success of an e-commerce website. Negative experiences such as poor
customer service, product quality issues, or security breaches can erode trust
and damage the reputation of the business.
● Digital Divide: Not all potential customers may have access to reliable internet
connections or digital devices, limiting their ability to shop online. Addressing
this digital divide and ensuring inclusivity for all users may pose challenges for
the e-commerce website project.
CONCLUSION:
Going forward, the project can be further enhanced with the addition of
features such as analytics and reporting, social media integration.
CHAPTER -9
REFERENCES:
● Shopify: Known for its user-friendliness and a wide range of customizable themes.
● Magento: A powerful open-source platform offering high flexibility and scalability.
● WooCommerce: A free plugin for WordPress, making it easy to add ecommerce
functionality to your website.
● BigCommerce: A cloud-based platform with robust features for enterprise-level
businesses.
Technical Resources:
lo
● Amazon: A global e-commerce giant known for its user experience and product
selection.
● Apple: A sleek and minimalist design with a focus on high-quality products.
● Nike: A visually appealing website with a strong brand identity.
● Sephora: A well-organized website with a focus on beauty products.