PODAR INTERNATIONAL SCHOOL
AHMEDABAD
A PROJECT REPORT ON
THICCBASKET
SUBMITTED TO SUBMITTED BY:
MR. MITUL BHATT DEVMALYA SARASWATI
PGT - COMPUTER XI-B1
9
CERTIFICATE
This is to certify that Devmalya Saraswati of class:
XI B1 of PODAR INTERNATIONAL SCHOOL has
done his project on THICCBASKET under my
supervision. He has taken interest and has shown at
most sincerity in completion of this project.
I certify this Project up to my expectation & as per
guidelines issued by CBSE.
Examiner
Principal
ACKNOWLEDGMENT
It is with pleasure that I acknowledge my sincere
gratitude to our teacher, _______________ who taught
and undertook the responsibility of teaching the
subject computer science. I have been greatly
benefited from his classes.
I am especially indebted to our Principal
_______________ who has always been a source of
encouragement and support and without whose
inspiration this project would not have been a
successful I would like to place on record heartfelt
thanks to him.
Finally, I would like to express my sincere
appreciation for all the other students for my batch
their friendship & the fine times that we all shared
together.
HARDWARE AND SOFTWARE REQUIRED
Operating System: Modern versions of Windows, macOS, or Linux.
Python: Python 3.8 or newer
PyQt5: Version 5.15 or newer
RAM: Minimum 4GB, recommended 8GB
Processor: Dual-core or better
Graphics: Modern Gpu which can support a standard desktop environment
HARDWARE
RAM: 32GB
Processor: AMD 5 5600x 6 core processor
Graphics: NVIDIA RTX 3060 12 GB
SOFTWARE
Operating System : Windows 10 Pro
Python: Python 3.10
PyQt5: Version 6.8
integrated development environment (IDE): Spyder
CODING
import pyfiglet
class Product:
def __init__(self, name, price, discounted_price):
self.name = name
self.price = price
self.discounted_price = discounted_price
def show_title_page():
print("=" * 50)
title = pyfiglet.figlet_format("THICCBASKET")
slogan = pyfiglet.figlet_format("We deliver in 9m", font="slant")
print(title)
print(slogan)
print("=" * 50)
def display_categories():
print("\n" + "=" * 50)
print(pyfiglet.figlet_format("Categories", font="digital"))
categories = ["1. Dairy", "2. Bakery", "3. Vegetables", "4. Fruits", "5. Snacks", "6. Beverages",
"7. Personal Care"]
for category in categories:
print(f" {category}")
print("=" * 50)
def display_products(category_name, products):
print("\n" + "=" * 50)
print(pyfiglet.figlet_format(category_name, font="bubble"))
for idx, product in enumerate(products, 1):
print(f"{idx}. {product.name} - Original Price: ₹{product.price}, Discounted Price: ₹
{product.discounted_price}")
print("=" * 50)
def display_cart(cart):
print("\n" + "=" * 50)
print(pyfiglet.figlet_format("Your Cart", font="bubble"))
print("=" * 50)
if not cart:
print(pyfiglet.figlet_format("Cart is Empty", font="digital"))
else:
for idx, (product, quantity) in enumerate(cart, 1):
print(f"{idx}. {product.name} - ₹{product.discounted_price} x {quantity} = ₹
{product.discounted_price * quantity}")
print("=" * 50)
def display_checkout_summary(cart, delivery_charge, gst_rate=0.18):
print("\n" + "=" * 50)
print(pyfiglet.figlet_format("Checkout", font="block"))
print("=" * 50)
subtotal = sum(product.discounted_price * quantity for product, quantity in cart)
gst = round(subtotal * gst_rate, 2)
total = subtotal + gst + delivery_charge
print(f"Subtotal: ₹{subtotal}")
print(f"GST (18%): ₹{gst}")
print(f"Delivery Charges: ₹{delivery_charge}")
print(pyfiglet.figlet_format(f"Grand Total: ₹{total}", font="digital"))
print("=" * 50)
def main():
show_title_page()
categories = {
"Dairy": [
Product("Milk", 50, 45),
Product("Cheese", 100, 90),
Product("Butter", 150, 140),
],
"Bakery": [
Product("Bread", 40, 35),
Product("Cake", 500, 450),
Product("Pastry", 60, 55),
],
"Vegetables": [
Product("Potato", 30, 25),
Product("Tomato", 40, 35),
Product("Onion", 50, 45),
],
"Fruits": [
Product("Apple", 150, 140),
Product("Banana", 60, 50),
Product("Orange", 80, 70),
],
"Snacks": [
Product("Chips", 20, 18),
Product("Biscuits", 30, 25),
Product("Popcorn", 50, 45),
],
"Beverages": [
Product("Tea", 100, 90),
Product("Coffee", 150, 140),
Product("Juice", 120, 110),
],
"Personal Care": [
Product("Soap", 40, 35),
Product("Shampoo", 200, 180),
Product("Toothpaste", 80, 70),
],
}
cart = []
while True:
display_categories()
category_choice = input("Choose a category by number (or 'q' to quit): ")
if category_choice.lower() == 'q':
break
try:
category_name = list(categories.keys())[int(category_choice) - 1]
except (ValueError, IndexError):
print("Invalid category choice. Please try again.")
continue
products = categories[category_name]
display_products(category_name, products)
while True:
product_choice = input("Choose a product by number (or 'b' to go back): ")
if product_choice.lower() == 'b':
break
try:
product = products[int(product_choice) - 1]
quantity = int(input(f"Enter quantity for {product.name}: "))
cart.append((product, quantity))
except (ValueError, IndexError):
print("Invalid product choice or quantity. Please try again.")
while True:
display_cart(cart)
action = input("Type 'checkout' to proceed to checkout, or 'remove' to remove items: ")
if action.lower() == 'checkout':
break
elif action.lower() == 'remove':
try:
item_idx = int(input("Enter the item number to remove: ")) - 1
if 0 <= item_idx < len(cart):
cart.pop(item_idx)
else:
print("Invalid item number.")
except ValueError:
print("Invalid input. Please try again.")
print("\nChoose delivery speed:")
print("1. Within half an hour (₹50)")
print("2. Same day (₹30)")
print("3. 1-2 days (₹10)")
try:
delivery_choice = int(input("Enter your choice: "))
delivery_charge = [50, 30, 10][delivery_choice - 1]
except (ValueError, IndexError):
print("Invalid choice. Defaulting to 1-2 days (₹10).")
delivery_charge = 10
display_checkout_summary(cart, delivery_charge)
if __name__ == "__main__":
main()
OUTPUT
BIBLIOGRAPHY
1. Mitul Bhatt
o Special thanks to Mitul Bhatt, an exceptional educator, for providing invaluable
guidance and support in learning Python and inspiring the creation of this project.
2. Pyfiglet Documentation
o Pyfiglet library for creating ASCII art titles and slogans.
o Source: Pyfiglet on PyPI
3. Python Official Documentation
o Comprehensive documentation for Python programming language.
o Source: Python.org
4. Real Python
o Tutorials and articles on advanced and beginner-friendly Python concepts.
o Source: Real Python
5. GeeksforGeeks
o Educational resources and examples for Python programming concepts.
o Source: GeeksforGeeks
6. Stack Overflow
o For troubleshooting issues and finding answers to specific Python programming
challenges.
o Source: Stack Overflow
7. W3Schools
o Step-by-step Python tutorials and syntax explanations.
o Source: W3Schools Python Tutorial