0% found this document useful (0 votes)
32 views20 pages

Compoter Science Final Project

pot

Uploaded by

agag206125
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views20 pages

Compoter Science Final Project

pot

Uploaded by

agag206125
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Page 1 of 20

CERTIFICATE

This is to cer fy that ANSHUL GAUTAM of class


12th-A of ‘GYAN STHALI SCHOOL’ has successfully
completed his project work “VEGETABLE SHOP
MANAGEMENT APPLICATION” for class XII
prac cal examina on of the Central Board
Secondary Educa on in the year 2024-2025.
I further cer fy that this project is the individual
work of the student.

Signature:
Date:

Page 2 of 20
ACKNOWLEDGEMENT

I would like to take this opportunity to extend my


sincere gra tude and apprecia on to my computer lab
teacher Miss. MISS. SHREYASH TOMAR for providing
guidance and support throughout the process of
comple ng my computer project for school. I am also
thankful to my principal Mrs. CHANDRA SHRIVASTAV
for allowing me the opportunity to explore and work
on this project in the school environment.
Addi onally, I would like to express my hear elt thanks
to my family for their unwavering support and
encouragement during the comple on of this project.
I am grateful for the opportunity to showcase my work
to my class, and I am proud to have contributed to the
educa onal environment at our school.

Page 3 of 20
Index

Sr. No. Contents Page No.


01. Cer ficate 02

02. Acknowledgement 03

03. Title 05

04. Introduc on 06

05. Process of Crea on 06

06. Working 07

07. Program Code 09

08. Program Run 18

09. References 20

10

Page 4 of 20
Page 5 of 20
Introduc on
This Python program is a vegetable shop management system that enables owners to manage
inventory and customers to place orders. It provides features like viewing vegetables, upda ng stock,
placing orders, and genera ng bills. The program uses a MySQL database to store and manage
inventory data and presents output through plain console prints instead of tabular forma ng.

Process of Crea ng the Vegetable Shop Management Applica on

1. Understanding Requirements:
 Begin by understanding the requirements of the VEGETABLE SHOP MANAGEMENT
APPLICATION.
 Iden fy the key func onali es it should offer, such as displaying menus, placing orders,
viewing orders, and genera ng bills.

2. Designing Class structure:


 Plan the class structure for the program.
 Create a VEGETABLE class to represent individual vegetables with a ributes like name and
price.
 Design a VEGETABLE SHOP MANAGEMENT APPLICATION class to manage the overall system.

3. Implemen ng Method Class:


 Within the VEGETABLE SHOP MANAGEMENT APPLICATION class, implement methods to
handle different func onali es:
 __init__: Ini alize the system with VEGETABLES op ons, names, and an empty list for
orders.
 show_vegetables: Display the available VEGETABLES and QUANTITY.
 choose_vegetable: Allow users to place orders by selec ng VEGETABLES and QUANTITY.
 show_cart: Display all placed orders with their details.
 generate_bill: Calculate and display the bill for all placed orders.

4. Handling User Interac ons:


 Develop a user interface (such as a command-line interface) in the main func on to
interact with VEGETABLE SHOP MANAGEMENT APPLICATION.
 Implement input prompts and op ons for users to navigate through different
func onali es:
 Display menu op ons.
 Prompt for user inputs to place orders, view orders, generate bills, or
 exit the system.

5. Error Handling and refinement:


 Implement error handling mechanisms to handle invalid inputs or edge cases.

Page 6 of 20
 Refine the program by ensuring proper flow, handling excep ons, and displaying clear
messages for users.

6. Tes ng and Debugging:


 Test the program thoroughly to ensure all func onali es work as intended.
 Debug any errors or issues that arise during tes ng.

7. Review and Op misa on:


 Review the code for any poten al op miza ons or improvements in code structure,
readability, or performance.

8. Documenta on and Summary:


 Provide comments and documenta on within the code to explain the logic and
func onali es of different sec ons.
 Summarize the program's usage and func onali es in a brief overview for users or
collaborators.

Working of VEGETABLE SHOP MANAGEMENT APPLICATION

1. Database Setup and Connec on

 connect_to_db(): Establishes a connec on to the MySQL database.

 create_database(): Creates a database vegetable_shop and a table vegetables with


columns for vegetable details (veg_id, name, price, stock).

2. Common Func onali es for Both Users

 fetch_vegetables(): Loads the list of vegetables and their details (price, stock) into a
global dic onary.

 show_vegetables(): Displays available vegetables along with their price and stock.

 choose_vegetable(name, quan ty): Allows a user to add a vegetable to the cart and
reduces its stock accordingly.

 calculate_total(): Computes the total price of items in the cart.

 show_cart(): Displays the items added to the cart along with their quan es and total
price.

Page 7 of 20
 generate_bill(): Provides a detailed bill of purchased items, including their quan ty,
price, and total amount

3. Owner-Specific Features

 Login Requirement: Owner logs in using a predefined password.

 update_vegetables(): Allows the owner to:

 Add new vegetables.

 Update vegetable price, stock, or addi onal informa on.

 Ensure vegetable IDs are unique and validate entries before commi ng changes to the
database.

4. Customer-Specific Features

 Access to Shop: Customers can browse available vegetables, add items to their cart, view the
cart, and generate a bill.

 No Database Modifica ons: Customers can only interact with stock quan es for their
purchase

5. User Switching

 login(): Determines if the user is an Owner or Customer based on their choice and login
creden als.

 switch_user(): Switches between the Owner and Customer roles during run me

6. Main Program Flow

 main():

 Ini alizes the database and loads vegetable data.

 Directs the program flow based on the user type (Owner/Customer).

 Provides dis nct menus for Owners and Customers.

 Handles opera ons like showing vegetables, upda ng details, placing orders, and exi ng the
shop.

Key Features

 Cart Management: Allows customers to select vegetables and tracks their purchases.

 Database-Driven: Stores vegetable details in a MySQL database for persistence.

 Role-Based Access: Dis nguishes func onali es between Owners and Customers.

 Error Handling: Validates inputs, ensures database integrity, and provides


appropriate error messages.

#This program can be extended with features like payment integra on or online ordering
for a complete e-commerce system.

Page 8 of 20
PROGRAM CODE

import mysql.connector

vegetables = {}

veg_id={}

cart = {}

owner_password = "123" # Example owner password

def connect_to_db():

conn = mysql.connector.connect(

host="localhost",

user="root",

password="BILLU"

return conn

def create_database():

conn = connect_to_db()

cursor = conn.cursor()

cursor.execute("CREATE DATABASE IF NOT EXISTS vegetable_shop")

cursor.execute("USE vegetable_shop")

cursor.execute("""CREATE TABLE IF NOT EXISTS vegetables (

S_No int primary key AUTO_INCREMENT,

veg_id VARCHAR(5),

name VARCHAR(50),

price FLOAT,

stock FLOAT

)""")

conn.commit()

conn.close()

Page 9 of 20
def fetch_vegetables():

global vegetables

conn = connect_to_db()

cursor = conn.cursor()

cursor.execute("USE vegetable_shop")

cursor.execute("SELECT name, price, stock FROM vegetables")

result = cursor.fetchall()

conn.close()

vegetables = {row[0]: {'price': row[1], 'stock': row[2]} for row in result}

def show_vegetables():

print("Available Vegetables:")

for veg, details in vegetables.items():

print(f"{veg}: Rs {details['price']} per kg (Stock: {details['stock']}


kg)")

def choose_vegetable(name, quantity):

if name in vegetables:

cart[name] = cart.get(name, 0) + quantity

vegetables[name]['stock'] -= quantity

print(f"Added {quantity} kg of {name} to cart.")

else:

print(f"Sorry, we don't have {name}.")

def calculate_total():

total = 0

for veg, quantity in cart.items():

total += vegetables[veg]['price'] * quantity

return total

def show_cart():

if not cart:

print("Your cart is empty.")

else:

Page 10 of 20
print("Your cart:")

for veg, quantity in cart.items():

print(f"{veg}: {quantity} kg")

print(f"Total Price: Rs {calculate_total()}")

def generate_bill():

print("Generating Bill...")

if not cart:

print("Your cart is empty.")

else:

print("Bill Details:")

for veg, quantity in cart.items():

price = vegetables[veg]['price'] * quantity

print(f"{veg}: {quantity} kg - Rs {price}")

print(f"Total Amount: Rs {calculate_total()}")

def switch_user():

print("Switching user...")

new_user_type = login()

if new_user_type is not None:

user_type = new_user_type

print(f"User switched to {user_type}.")

else:

print("Invalid input. Please try again.")

def update_vegetables():

"""Allow the owner to update vegetable details."""

conn = connect_to_db()

cursor = conn.cursor()

cursor.execute("USE vegetable_shop")

while True:

print("\nUpdate Vegetables Menu:")

print("1. Add New Vegetable")

print("2. Update Vegetable Price")

print("3. Update Vegetable Quantity")

Page 11 of 20
print("4. Update Vegetable Info")

print("5. Back to Main Menu")

choice = input("Enter your choice: ")

if choice == '1':

name = input("Enter vegetable name: ").lower()

veg_id = name[:3]

price = float(input("Enter price per kg: "))

stock = float(input("Enter stock in kg: "))

info = input("Enter additional information: ")

try:

cursor.execute(

"INSERT INTO vegetables (veg_id, name, price, stock, info)


VALUES (%s, %s, %s, %s, %s)",

(veg_id, name, price, stock, info),

conn.commit()

print(f"{name.capitalize()} added with ID {veg_id}, Price: Rs


{price}, Stock: {stock} kg, Info: {info}")

except mysql.connector.IntegrityError as e:

print("Error: Vegetable ID must be unique. Try again.")

elif choice == '2':

veg_id = input("Enter vegetable ID to update price: ").lower()

price = float(input("Enter new price per kg: "))

cursor.execute("SELECT veg_id FROM vegetables WHERE veg_id = %s",


(veg_id,))

if cursor.fetchone():

cursor.execute("UPDATE vegetables SET price = %s WHERE veg_id =


%s", (price, veg_id))

conn.commit()

print(f"Price updated for vegetable ID {veg_id}.")

else:

print(f"Vegetable ID {veg_id} does not exist. Please check and try


again.")

Page 12 of 20
elif choice == '3':

veg_id = input("Enter vegetable ID to update quantity: ").lower()

stock = float(input("Enter new stock quantity in kg: "))

cursor.execute("SELECT veg_id FROM vegetables WHERE veg_id = %s",


(veg_id,))

if cursor.fetchone():

cursor.execute("UPDATE vegetables SET stock = %s WHERE veg_id =


%s", (stock, veg_id))

conn.commit()

print(f"Stock updated for vegetable ID {veg_id}.")

else:

print(f"Vegetable ID {veg_id} does not exist. Please check and try


again.")

elif choice == '4':

veg_id = input("Enter vegetable ID to update info: ").lower()

info = input("Enter new information: ")

cursor.execute("SELECT veg_id FROM vegetables WHERE veg_id = %s",


(veg_id,))

if cursor.fetchone():

cursor.execute("UPDATE vegetables SET info = %s WHERE veg_id =


%s", (info, veg_id))

conn.commit()

print(f"Information updated for vegetable ID {veg_id}.")

else:

print(f"Vegetable ID {veg_id} does not exist. Please check and try


again.")

elif choice == '5':

break

else:

print("Invalid choice. Please try again.")

conn.close()

Page 13 of 20
def exit_shop():

print("Thank you for visiting SHOBHA'S VEGETABLE SHOP. Have a great day!")

def login():

while True:

print("___________________________________________________________________________
________________")

user_type = input("Are you the owner or a customer?


(owner/customer)\n1.Owner\n2.Customer\nEnter your choice-->> ")

if user_type == "1":

password = input("Enter the owner password: ")

if password == owner_password:

print("Login successful. Welcome, Owner!")

return "1"

else:

print("Incorrect password. Please try again.")

elif user_type == "2":

print("Welcome, Customer!")

return "2"

else:

print("___________________________________________________________________________
________________")

print("Invalid input. Please enter 'owner' or 'customer'.")

user_type = input("Please re-enter your role


(owner/customer)\n1.Owner\n2.Customer\nEnter your choice-->> ")

if user_type == "1":

password = input("Enter the owner password: ")

if password == owner_password:

print("Login successful. Welcome, Owner!")

Page 14 of 20
return "1"

else:

print("Incorrect password. Please try again.")

elif user_type == "2":

print("Welcome, Customer!")

return "2"

def switch_user():

print("Switching user...")

return login()

def main():

create_database()

fetch_vegetables()

user_type = login()

if user_type is None:

return

while True:

if user_type == "1":

print("1. Show Vegetables")

print("2. Place Order")

print("3. View Cart")

print("4. Generate Bill")

print("5. Update Vegetables")

print("6. Switch User")

print("7. Exit")

choice = input("Enter your choice: ")

if choice == '1':

show_vegetables()

print("___________________________________________________________________________
________________")

elif choice == '2':

Page 15 of 20
name = input("Enter the vegetable name: ")

quantity = float(input("Enter the quantity in kg: "))

choose_vegetable(name, quantity)

print("___________________________________________________________________________
________________")

elif choice == '3':

show_cart()

print("___________________________________________________________________________
________________")

elif choice == '4':

generate_bill()

print("___________________________________________________________________________
________________")

elif choice == '5':

update_vegetables()

print("___________________________________________________________________________
________________")

elif choice == '6':

user_type = switch_user() # Update user_type variable

print("___________________________________________________________________________
________________")

elif choice == '7':

exit_shop()

print("___________________________________________________________________________
________________")

break

else:

print("Invalid choice. Please try again.")

Page 16 of 20
print("___________________________________________________________________________
________________")

elif user_type == "2":

print("1. View Available Vegetables")

print("2. Add Vegetables to Cart")

print("3. View Cart")

print("4. Generate Bill")

print("5. Switch User")

print("6. Exit")

choice = input("Enter your choice: ")

if choice == '1':

show_vegetables()

print("___________________________________________________________________________
________________")

elif choice == '2':

name = input("Enter the vegetable name: ")

quantity = float(input("Enter the quantity in kg: "))

choose_vegetable(name, quantity)

print("___________________________________________________________________________
________________")

elif choice == '3':

show_cart()

print("___________________________________________________________________________
________________")

elif choice == '4':

generate_bill()

elif choice == '5':

user_type = switch_user() # Update user_type variable

print("___________________________________________________________________________
________________")

Page 17 of 20
elif choice == '6':

exit_shop()

print("___________________________________________________________________________
________________")

break

if __name__ == "__main__":

main()

Program Run

Page 18 of 20
Page 19 of 20
References

 Computer Science with python-12 (Sumita Arora).


 Chat GPT.
 Google Chrome.
 Microsoft Edge.
 Other relevant sources.

Page 20 of 20

You might also like