Final Project - 07
Final Project - 07
Project Report
On
“GROCERY WEBSITE”
Submitted in partial fulfillment of the requirements of the award of the
degree of
BACHELOR OF COMPUTER APPLICATIONS(BCA)
By
NAME: MEKA AKHILESH
ROLL NO:1009-21-861-017
DEPARTMENT OF INFORMATICS,
NIZAM COLLEGE(Autonomous)
(A Constituent College, O. U)
BASHEERBAGH, HYDERABAD
2023-2024
1
DEPARTMENT OF INFORMATICS
NIZAM COLLEGE (AUTONOMOUS)
(A Constituent College, O.U)
CERTIFICATE
This is to certify that the project entitled “GROCERY WEBSITE” has been
submitted by “MEKA AKHILESH” bearing Roll No: “1009-21-861-017” in
the partial fulfillment of the requirements for the award of the degree of
Bachelor of Computer Applications (BCA), Dept. of Informatics, Nizam
College, OSMANIA UNIVERSITY, Hyderabad.
M.PURNACHARY
HEAD OF THE DEPARTMENT
DEPT. OF INFORMATICS
2
ACKNOWLEDGMENT
"Task successful" makes everyone happy. But the happiness will be gold
without glitter if I didn't state the persons who have supported me to
make it a success.
Success will be crowned to people who made it a reality but the people
whose constant guidance and encouragement made it possible will be
crowned first on the eve of success.
I consider myself lucky enough to get such a good project. This project
would add as an asset to my academic profile.
M AKHILESH
Roll No: 1009-21-861-017
3
ABSTRACT
4
CONTENTS
1. INTRODUCTION 7-11
1.2 SCOPE
1.3 PURPOSE
5.1 HTML
5.2 ATTRIBUTES
5
5.3 SQL
5.4 SQLALCHEMY
5.5 CODING
8.1 TESTING
8.2 INTRODUCTION
8.3 HISTORY
6
7
1.Introduction
1.1 Introduction to Project
In today's digital age, convenience and efficiency have become
paramount in our daily lives. The way we shop for groceries is no
exception. The project titled " Grocery Website" is an exploration of
designing and developing a simplified, yet functional, online grocery
website. This project aims to provide a hands-on experience in creating a
basic platform for grocery shopping, introducing fundamental concepts
of web development and e-commerce. This project is an ideal starting
point for individuals or small teams looking to gain practical experience
in web development and e-commerce concepts. It provides an
opportunity to apply foundational web development skills to create a
basic, functional online grocery shopping experience. While this mini
project may not encompass all the complexities of a full-fledged grocery
website, it serves as a valuable learning exercise and a steppingstone to
more advanced web development projects in the future.
1.2 SCOPE
A grocery website encompasses an online platform for users to
browse and purchase groceries. It includes features such as product
listings, shopping carts, and secure checkout processes. User accounts
enable personalized experiences, while inventory management ensures
accurate product availability. Responsive design ensures accessibility
across devices, and marketing initiatives can enhance customer
engagement and retention.
1.3 PURPOSE
The purpose of creating a grocery website is to offer customers a
convenient and efficient way to shop for groceries from the comfort of
their homes. It aims to streamline the grocery shopping experience by
providing a wide range of products, easy navigation, and secure
payment options. Additionally, a grocery website allows for personalized
user accounts, enabling customers to save preferences and track orders.
By leveraging online platforms, grocery websites cater to busy lifestyles,
saving time and offering flexibility in shopping routines. Overall, the goal
is to enhance customer satisfaction and loyalty through an accessible
and user-friendly online shopping experience.
8
1.4 EXISTING SYSTEM
There are several existing grocery website systems and platforms
that were prominent in the online grocery shopping industry. However,
please note that the landscape may have evolved since then, with new
entrants and changes in existing systems. Here are some well-known
examples of existing grocery website systems and platforms:
9
4. Delivery Fees and Minimum Orders: Many online grocery websites
impose delivery fees, and some require customers to meet a minimum
order amount to qualify for delivery. These costs can deter budget-
conscious shoppers.
5. Lack of Physical Inspection: Online shoppers cannot physically inspect
products before purchase, leading to concerns about receiving items
that are close to their expiration dates or have damaged packaging.
6. Out-of-Stock Items: Just like in physical stores, online grocery
websites may have out-of-stock items, leading to substitutions or
missing items in customers' orders.
7. Product Substitution Issues: To address out-of-stock items, grocery
websites may offer product substitutions, but these substitutes may not
always align with customers' preferences, dietary restrictions, or quality
expectations.
8. Privacy and Data Security Concerns: Online shoppers provide
personal and financial information, raising concerns about data security
and privacy breaches.
9. Inaccurate Product Descriptions: Sometimes, product descriptions,
images, or pricing on grocery websites may be inaccurate or misleading,
leading to misunderstandings and customer dissatisfaction.
While these disadvantages exist, many grocery websites are continually
working to improve their systems, address these issues, and enhance the
overall customer experience. Advancements in technology and logistics,
coupled with customer feedback, play a crucial role in mitigating these
drawbacks and making online grocery shopping more convenient and
reliable.
10
4.User Registration and Login: Create a user registration and login
system to allow users to create accounts, log in, and manage their
profiles.
5.Checkout Process: Develop a simplified checkout process that
includes a shipping address form and payment options (e.g., cash on
delivery or card payment).
6.Inventory Management: Implement a basic inventory
management system to keep track of product availability. Prevent users
from adding out-of-stock items to their cart.
7.Order Confirmation: Generate an order confirmation page for
users to review their order details before finalizing the purchase.
8.Basic Security Measures: Apply basic security practices, such as
data encryption and validation, to protect user information and ensure
secure transactions.
11
12
2.1 MODULES
13
14
3.1 TECHNICAL FEASIBILITY
For instance -
"Will the current printer be able to handle the new reports and forms
required for the new system?"
15
Have the user been involved in the planning and development of the
project?
16
17
4.1 SOFTWARE REQUIREMENTS:
1 Software requirement that describes not what the software will do,
but how the software will do it, for example, software performance
requirements, software external interface requirements, software
design constraints, and software quality attributes.
4. Scalability, reliability
18
19
5.1 HTML
Web browsers receive HTML documents from a web server or from local
storage and render the documents into multimedia web pages. HTML
describes the structure of a web page semantically and originally
included cues for its appearance.
HTML elements are the building blocks of HTML pages. With HTML
constructs, images and other objects such as interactive forms may be
embedded into the rendered page. HTML provides a means to create
structured documents by denoting structural semantics for text such as
headings, paragraphs, lists, links, quotes, and other items. HTML
elements are delineated by tags, written using angle brackets. Tags such
as <img> and <input> directly introduce content into the page. Other
tags such as <p> and </p> surround and provide information about
document text and may include sub-element tags. Browsers do not
display the HTML tags but use them to interpret the content of the page.
20
5.2 ATTRIBUTES
Attributes are properties or characteristics that describe an object,
entity, or concept. In programming, attributes can be thought of as
variables attached to specific elements, such as variables within a class
in object-oriented programming. They define the state or behavior of an
object. Attributes can be various types, including numeric values, strings,
or more complex data structures. They play a crucial role in organizing
and manipulating data within a program.
Python
Python is a superstar in the world of programming languages, and
for good reason! It's known for its friendly personality, making it a great
choice for beginners and experts alike. Unlike some languages that
require you to write cryptic messages for the computer to understand,
Python uses clear and concise instructions that are almost like reading
plain English. This focus on readability makes learning and writing
Python code a breeze.
With its readability, ease of use, and adaptability, Python has become a
favorite tool for programmers across many disciplines. Whether you're a
seasoned developer or just starting your coding journey, Python is
definitely worth considering!
21
FLASK
Flask is a popular web framework written in Python. Unlike some
frameworks that come with a lot of built-in features, Flask is considered
a micro-framework. This means it's designed to be lightweight and
minimalist, giving you more control over the structure of your web
application.
22
Overall, Flask is an excellent choice for developers who value simplicity,
flexibility, and ease of use when building web applications and APIs in
Python. Its minimalistic approach and powerful features make it suitable
for projects of all sizes, from small prototypes to large-scale applications.
5.3 SQL
SQL (Structured Query Language) is a domain-specific
programming language used for managing and manipulating relational
databases. It provides a standardized way to interact with databases,
allowing users to perform various tasks such as querying data, modifying
database structures, and managing access controls. SQL is essential for
anyone working with databases, from database administrators to
software developers, as it forms the foundation for working with
structured data.
One of the key features of SQL is its ability to manipulate data using a
variety of commands. SELECT statements are used to retrieve data from
one or more tables in the database, allowing users to specify the
columns they want to retrieve and apply filters to narrow down the
results. INSERT, UPDATE, and DELETE statements, on the other hand, are
used to modify data within tables, enabling users to add new records,
update existing records, or delete unwanted records.
23
Furthermore, SQL includes commands for managing the security and
access controls of databases. GRANT and REVOKE statements are used
to grant or revoke permissions on database objects, allowing
administrators to control who can perform various actions such as
querying data, modifying tables, or executing stored procedures. This
granular control over permissions ensures that sensitive data remains
secure and only authorized users have access to it.
Overall, SQL is a powerful and versatile language that plays a central role
in managing relational databases. Its intuitive syntax, declarative nature,
and comprehensive set of commands make it an essential tool for
anyone working with structured data. Whether you're querying data for
analysis, updating records in a database, or defining the structure of a
new database, SQL provides the tools you need to accomplish your tasks
efficiently and effectively.
Data Querying:
24
Data Definition:
Data Control:
GRANT: Gives specific privileges to users or roles.
REVOKE: Removes specific privileges from users or roles.
Transactions:
BEGIN TRANSACTION: Starts a new transaction.
COMMIT: Saves changes made during the current transaction.
ROLLBACK: Reverts changes made during the current transaction.
Database Management:
CREATE DATABASE: Creates a new database.
ALTER DATABASE: Modifies the structure or properties of an existing
database.
DROP DATABASE: Deletes a database from the server.
These are some of the fundamental SQL commands used for querying,
manipulating, defining, and controlling data in relational databases.
5.4 SQLALCHEMY
SQLAlchemy is a comprehensive and powerful SQL toolkit and
Object-Relational Mapping (ORM) library for Python, designed to
facilitate database interactions and simplify the process of working with
databases. It provides a high-level, expressive API that allows developers
to interact with databases using Python objects and SQL expressions,
abstracting away the complexities of database management while
offering flexibility and performance. SQLAlchemy's ORM system enables
developers to define database models as Python classes, where each
class represents a table in the database and each instance represents a
row in that table, allowing for seamless integration of database
25
operations with Python code. SQLAlchemy supports a wide range of
database systems, including PostgreSQL, MySQL, SQLite, and Oracle, and
provides a unified interface for working with different database engines.
Additionally, SQLAlchemy offers powerful query construction capabilities,
allowing developers to build complex queries using Pythonic syntax and
leverage advanced features such as joins, subqueries, and aggregations.
With its rich feature set, robust architecture, and active community
support, SQLAlchemy is widely regarded as one of the most versatile and
flexible database libraries for Python, suitable for a wide range of
applications from small-scale projects to enterprise-level systems.
5.5 CODING
<body>
<div class="navbar-akhi">
<img src="/static/images -All/Logo.jpg" width="125px" alt="Logo"
class="logo">
<a href="/">Home</a>
<a href="/products">Products</a>
<a href="/categories">Categories</a>
<a href="/contact">Contact Us</a>
<a href="/login">Login</a>
<div class="search-container">
<form action="/search" method="GET">
<input type="text" name="query" placeholder="Search
Products.....">
<button type="submit">Search</button>
</form>
</div>
</div>
</body>
26
margin: auto;
}
/* Logo */
.logo {
float: left;
cursor: pointer;
}
/* Navbar links */
.navbar-akhi a {
float: inline-start;
display: flex;
color: #f2f2f2;
justify-content: space-evenly;
align-content: space-around;
padding: 35px 55px;
text-decoration: none;
font-size: 20px;
27
padding: 6px 10px;
margin-top: 8px;
font-size: 17px;
border:orangered;
}
/* Search button */
.search-container button {
float: right;
padding: 6px 10px;
margin-top: 8px;
margin-right: 16px;
background: #ddd;
font-size: 17px;
border: none;
cursor: pointer;
}
// search bar
const button = document.querySelector(".button");
button.addEventListener("click", (e) => {
e.preventDefault;
button.classList.add("animate");
setTimeout(() => {
button.classList.remove("animate");
}, 600);
});
<h1>Vegetables</h1>
<div class="category">
<div class="vegetables item">
<img src="/static/images/Vegetables/Onion.jpg" alt="Onion">
<p><b>Onion</b></p>
<p>₹ 20</p>
<button id="button" onclick="addToCart('Onion', 20)">
Add to Cart</button>
28
</div>
<div class="vegetables item">
<img src="/static/images/Vegetables/carrot1.jpg" alt="Carrot">
<p><b>Carrot</b></p>
<p>₹ 39</p>
<button id="button" onclick="addToCart('Carrot', 39)">
Add to Cart</button>
</div>
<div class="vegetables item">
<img src="/static/images/Vegetables/Spinach.jpg" alt="Spinach">
<p><b>Spinach</b></p>
<p>₹ 10</p>
<button id="button" onclick="addToCart('Spinach', 10)">
Add to Cart</button>
</div>
<div class="vegetables item">
<img src="/static/images/Vegetables/Mushroom.jpg"
alt="Mushroom">
<p><b>Mushroom </b></p>
<p>₹ 40</p>
<button id="button" onclick="addToCart('Mushroom', 40)">
Add to Cart</button>
</div>
App.py Code:
import dataclasses
from flask import Flask, render_template,request,redirect,session,jsonify
from flask_sqlalchemy import SQLAlchemy
import bcrypt
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)
app.secret_key = 'secret_key'
29
@app.route('/')
def akhi():
return render_template('akhi.html')
@app.route('/products')
def products():
return render_template('products.html')
@app.route('/categories')
def categories():
return render_template('categories.html')
@app.route('/contact')
def contact():
return render_template('contact.html')
@app.route('/search')
def search():
query = request.args.get('query')
if query:
# Perform search
results = [item for item in data if query.lower() in
item['name'].lower()]
else:
results = []
return render_template('results.html', query=query, results=results)
if __name__ == '__main__':
app.run(debug=True)
Footer Code:
<footer>
<div class="container-footer">
<p>© 2024 MA GROCERY. All rights reserved.</p>
30
<p><a href="/">Privacy Policy</a> | <a href="/contact">Contact
Us</a></p>
<h2>Designed & Developed By M.AKHILESH </h2> <div
class="social-buttons">
<a href="#" class="social-button social-button--facebook" aria-
label="Facebook">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="social-button social-button--linkedin" aria-
label="LinkedIn">
<i class="fab fa-linkedin-in"></i>
</a>
footer {
background-color: #210144;
color: #fff;
padding: 2px;
text-align: center;
}
31
<label for="email">Email:</label>
<input type="email" class="form-control" id="email"
placeholder="Enter email" name="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd"
placeholder="Enter password" name="password">
</div>
32
33
6.1 Data flow diagram :
Data flow diagrams, or DFDs for short, are like blueprints that
visually map out how information moves through a system or process.
They use a standardized set of symbols, like rectangles for processes,
squares for external entities, and arrows to show the flow of data itself.
These diagrams are great for understanding complex systems because
they break them down into smaller, easier to digest chunks. You can use
them to analyze an existing system, say the way orders flow through an
online store, or to model a new system, like a library management
application. DFDs are also helpful for communication because they
provide a clear picture that everyone from programmers to managers
can understand. They typically start with a high-level overview, showing
the entire system as a single process and its connection to external
sources of information, and then delve deeper into more and more
detail with additional diagrams that zoom in on specific parts of the
system. This way, you can gradually build up a comprehensive
understanding of how data flows throughout the entire system.
The context level data flow diagram (dfd) describes the whole
system. The (o) level dfd describes the all-user module who operates the
system. Below data flow diagram of online shopping site shows the two
users can operate the system Admin and Member user.. It uses a single
bubble to represent the entire system and arrows to show how data
flows in (from external sources like users or databases) and out (as
reports, confirmations, etc.). This high-level view clarifies what the
system does and how it interacts with the outside world, providing a
foundation for deeper dives into the system's internal workings with
subsequent DFD levels.
34
2. 1st Level Admin Side DFD
35
3.Level 2 DFD
36
6.2 E-R DIAGRAM:
37
Creating an Entity-Relationship (ER) diagram for a grocery website
involves identifying and modeling the main entities and their
relationships within the system
Entities:
1.User:
Attributes: UserID (Primary Key), Username, Password, Email, First
Name, Last Name, Address, Phone Number, etc.
2.Product:
Attributes: ProductID (Primary Key), Name, Description, Price,
Quantity in Stock, Category, Brand, Image, etc.
3.Order:
Attributes: OrderID (Primary Key), UserID (Foreign Key), Order
Date, Status (e.g., pending, shipped), Total Amount, Payment
Method, Shipping Address, etc.
4.Cart:
Attributes: CartID (Primary Key), UserID (Foreign Key), Creation
Date
5.Cart Item:
Attributes: CartItemID (Primary Key), CartID (Foreign Key),
ProductID (Foreign Key), Quantity
6.Payment:
Attributes: PaymentID (Primary Key), OrderID (Foreign Key),
Payment Date, Amount, Payment Method (e.g., credit card, PayPal)
7.Review:
Attributes: ReviewID (Primary Key), UserID (Foreign Key),
ProductID (Foreign Key), Rating, Comment, Date
Relationships:
1.User-Order (One-to-Many):
A user can place multiple orders, but each order is placed by one
user.
2.User-Cart (One-to-One or One-to-Many):
Each user has a shopping cart to add products. Depending on your
design, it could be one cart per user (one-to-one) or multiple carts
(one-to-many) that the user can manage.
3.Product-Review (One-to-Many):
38
Each product can have multiple user reviews, but each review is
for one product.
4.Order-Cart (One-to-One or One-to-Many):
Each order corresponds to one shopping cart. Depending on your
design, it could be a one-to-one relationship (each order has one
cart) or a one-to-many relationship (each order may include
multiple carts).
5.Order-Payment (One-to-One):
Each order is associated with one payment.
6.Cart Item-Product (Many-to-One):
Many cart items can be associated with one product.
7.User-Review (One-to-Many):
Each user can write multiple product reviews.
39
6.3 UML DIAGRAMS:
40
(i) USE CASE DIAGRAM:
Use case diagrams focus on the interactions between a system
and its external actors, typically representing the functional
requirements of the system. Use cases describe the system's behavior
from the perspective of its users or external entities.
41
(ii) CLASS DIAGRAM:
Class diagrams are used to represent the static structure of a
system. They depict classes, their attributes, methods, and the
relationships between classes. Class diagrams are helpful for
understanding the key elements of a software system and how they
relate to each other.Classes represent objects or entities in the system,
while attributes and methods define their characteristics and behaviors,
respectively. Associations illustrate relationships between classes,
indicating how objects interact and collaborate within the system. Class
Diagrams serve as a blueprint for system design, enabling developers to
conceptualize and communicate the system's architecture.
42
(iii) SEQUENCE DIAGRAM:
A sequence diagram is a type of Unified Modeling Language (UML)
diagram used to visualize the interactions and the flow of messages
between objects or components in a system over time. Sequence
diagrams are particularly useful for understanding the dynamic behavior
of a system, especially in the context of how different parts of the
system collaborate to achieve a specific functionality or use case.
Simple example of a sequence diagram for a basic online ordering
system:
Lifelines might represent objects like "Customer," "Shopping
Cart," and "Inventory."
Messages show interactions between these objects, such as
"Customer places an order," "Inventory checks product
availability," and "Shopping Cart updates."
43
Key elements and concepts in a Sequence Diagram:
Lifeline: A lifeline represents an object or component participating
in the interaction. It is typically depicted as a vertical line
extending downward from the object's name or label. Each lifeline
represents an instance of the object or component in the system.
Activation Bar: An activation bar (also known as an execution
occurrence or activation) is a horizontal bar that extends from a lifeline.
It indicates the period during which the object is actively executing or
processing a message. An activation bar shows when an object is busy
processing a message and when it's idle.
44
Guard condition: A Boolean expression that determines whether
a message is sent or not.
Comment: A text annotation that provides additional information
about the sequence diagram.
Message: An arrow that represents the communication between
two objects.
45
46
7.OUTPUT SCREENS
Home page
Products Page
47
Categories Page
Login Form
48
Register Form
Search Functionality
49
ADD TO CART FUNCTIONALITY:
50
After clicking on Place order Button:
51
END:
52
53
8.1TESTING
Software Testing is the process used to help identify the
correctness, completeness, security, and quality of developed computer
software. Testing is a process of technical investigation, performed on
behalf of stakeholders, that is intended to reveal quality-related
information about the product with respect to the context in which it is
intended to operate. This includes, but is not limited to, the process of
executing a program or application with the intent of finding errors.
Quality is not an absolute; it is value to some person. With that in mind,
testing can never completely establish the correctness of arbitrary
computer software; testing furnishes a criticism or comparison that
compares com the state and behavior of the product against a
specification. An important point is that software testing should be
distinguished from the separate discipline of Software Quality Assurance
(SQA), which encompasses all business process areas, not just testing.
8.2 INTRODUCTION:
54
become a failure if the exact computation conditions are met, one of
them being that the faulty portion of computer software executes on
the CPU. A fault can also turn into a failure when the software is ported
to a different hardware platform or a different compiler, or when the
software gets extended. Software testing is the technical investigation of
the product under test to provide stakeholders with quality related
information. Software testing may be viewed as a sub-field of Software
Quality Assurance but typically exists independently (and there may be
no SQA areas in some companies). In SQA, software process specialists
and auditors take a broader view on software and its development. They
examine and change the software engineering process itself to reduce
the amount of faults that end up in the code or deliver faster.
55
It is commonly believed that the earlier a defect is found the
cheaper it is to fix it. Software disciplines such as extreme programming
and the agile software development movement, adhere to a "test-driven
software development" model. In this process unit tests are written first,
by the programmers (often with pair programming in the extreme
programming methodology). Of course these tests fail initially, as they
are expected to. Then as code is written it passes incrementally larger
portions of the test suites. The test suites are continuously updated as
new failure conditions and corner cases are discovered, and they are
integrated with any regression tests that are developed. Unit tests are
maintained along with the rest of the software source code and
generally integrated into the build process (with inherently interactive
tests being relegated to a partially manual build acceptance process).
The software, tools, samples of data input and output, and
configurations are all referred to collectively as a test harness.
8.3 HISTORY
56
also went on to develop High Impact Inspection Technology that builds
upon traditional Inspections but utilizes a test driven additive.
Testing Methodologies-
➤ Black box Testing:
➤ White box Testing.
➤ Gray Box Testing.
Levels of Testing
➤ Unit Testing.
➤ Module Testing.
➤ Integration Testing.
➤ System Testing.
➤ User Acceptance Testing.
Types Of Testing
➤ Smoke Testing.
➤ Sanitary Testing.
➤ Regression Testing.
➤ Re-Testing.
➤ Static Testing.
➤ Dynamic Testing.
➤ Alpha-Testing.
➤ Beta-Testing.
➤ Monkey Testing.
➤ Compatibility Testing.
➤ Installation Testing.
➤ Adhoc Testing.
➤ Ext....
57
Manual Testing
Test Design: Here, testers meticulously craft test cases based on the
requirements and the test plan. Test cases outline specific scenarios
that will be used to evaluate the software's functionality,
performance, usability, and security.
58
the results, identify any defects or bugs encountered, and report
them for rectification.
TYPES OF TESTING:
Functional Testing:
59
functionalities. It involves re-running a subset of previously executed
test cases.
Non-Functional Testing:
Usability Testing: Here, testers assess how easy and intuitive it is for
users to navigate and interact with the software. Usability testing
helps identify any design flaws that might hinder user experience.
These are just some of the most common types of software testing. The
specific types of testing used will vary depending on the complexity of
the software, project requirements, and potential risks.
Test Case 1: Verify that the website logo and name are displayed
clearly.
Test Case 2: Check if all the navigation menus (e.g., departments,
categories, My Account) are functional and redirect to the correct
corresponding webpages.
Test Case 3: Ensure that all links and buttons on the webpage are
working properly and don't lead to broken pages.
60
Test Case 4: Verify that the product images are clear and of good
quality.
Test Case 5: Check if the search function works correctly for
searching products by name, brand, or category.
Test Case 12: Verify that adding items to the shopping cart works
correctly, updating the cart quantity and total price.
Test Case 13: Ensure that users can modify quantities
(increase/decrease) or remove items from the shopping cart.
Test Case 14: Check if the checkout process allows users to enter
valid shipping and billing addresses.
Test Case 15: Verify that different payment methods (e.g., credit
card, debit card) can be processed securely during checkout.
Test Case 16: Ensure that the order confirmation page displays
accurate order details, including items purchased, prices, and
estimated delivery time.
61
Search and Filters:
Test Case 17: Verify that the search function works for misspelled
product names, offering suggestions or correcting the search
query.
Test Case 18: Ensure that filters (e.g., organic, gluten-free) can be
combined effectively to refine search results precisely.
Test Case 19: Check if the search results are displayed in a
relevant order (e.g., by price, popularity) based on the selected
sorting criteria.
62
63
9.1 FUTURE ENCHANCEMENTS
Limitations of the system & Future Enhancements:
Some of the future enhancements that can be done to this system are:
64
9.2 PROJECT SUMMARY:
This application has been computed successfully and was also tested
successfully by taking test cases. It is user-friendly and has required
options which can be utilized by the user to perform the desired
operations. The Software is developed using FLASK a python web
framework as backend and HTML, CSS, JAVASCRIPT,BOOTSTRAP as
front-end. The goals that are achieved by the software are :
65
66
CONCLUSION
Work Done:
The development of the Grocery Website aimed to provide users
with a convenient and efficient platform for purchasing groceries online.
The project involved the implementation of essential features such as
user registration, login, product browsing, cart functionality, and
checkout process. Throughout the development process, several
enhancements were made to improve the website's functionality and
user experience.In conclusion, the development of the Grocery Website
has been a significant achievement, providing users with a convenient
and user-friendly platform for online grocery shopping.
Achievements:
67
68
BIBLIOGRAPHY
SlideShare: https://www.slideshare.net/
W3Schools: https://www.w3schools.com/
Codecademy: https://www.codecademy.com/
Google: https://www.google.com/
Wikipedia:https://www.wikipedia.org/
Creatly:https://www.creatly.com/
69