PROECT_hhhh HHHHHWUIQIPQWIH (1)
PROECT_hhhh HHHHHWUIQIPQWIH (1)
Project File
SUBMITTED TO:
SUBMITTED BY:
Ms V K Remya ARNAV
Grover
Class - XII C
Roll No. -
Bluebells School International
CERTIFICATE
Ms V.K. Remya
ACKNOWLEDGEMENT
I take this opportunity to express my deep sense of gratitude to all those who
have been instrumental in preparation of this project. I am sincerely grateful to
Ms. V.K. Remya for her encouragement and valuable guidance during the entire
period of work. Last but not least, I would like to thank my peers and classmates
for their helpful input and well-timed advice.
Arnav Grover
Class XII-C
TABLE OF CONTENTS
SR
TOPIC PG NO SIGN
NO
1 Certficate
2 Acknowledgement
Introduction
A. Problem Statement
3
B. Objectives
C. System Requirements
Coding :
4. A. Source Code
B. Outputs Screenshots
5. Future Scope
6. Bibliography
INTRODUCTION
PROBLEM STATEMENT
Inefficient Purchasing:
o Lack of data on stock usage and consumption patterns makes it difficult to
optimize purchasing decisions.
o Potential for overstocking or understocking, leading to increased costs and lost
revenue.
Hardware:
o Computers or workstations with sufficient processing power and storage
capacity.
o Printers for generating reports and labels.
Software:
o Python programming language.
o Libraries: csv, pandas, matplotlib.pyplot, potentially libraries for barcode
generation and integration with other business systems.
o Database: Consider migrating to a relational database (e.g., MySQL,
PostgreSQL) for improved performance and scalability.
Data:
o CSV files: Product.csv (including details like paper type, size, weight),
Consumables.csv, Raw Materials.csv, Stock.csv, Order.csv, Supplier.csv.
Product Module:
o add_product(): Add new product entries (paper, ink, chemicals, etc.) with
detailed specifications.
o modify_product(): Update product information (e.g., price, specifications,
supplier).
o delete_product(): Remove obsolete products from the system.
o view_product_details(): Retrieve and display detailed information
about specific products.
Stock Module:
o stock_in(): Record stock receipts with details like product ID, quantity,
supplier, and purchase date.
o stock_out(): Record stock usage (e.g., for production orders, wastage).
o view_stock_levels(): Display real-time stock levels for all items.
o generate_stock_reports(): Generate reports on stock levels, stock
movements, and stock value.
Order Module:
o create_order(): Create new production orders with detailed
specifications.
o track_order_progress(): Monitor order progress and track material
usage.
o fulfill_order(): Record order completion and update stock levels
accordingly.
Supplier Module:
o add_supplier(): Add new supplier information (contact details, pricing,
etc.).
o manage_supplier_relations(): Maintain and update supplier
information.
Reporting Module:
o sales_reports(): Generate reports on sales trends, customer orders,
and revenue.
o production_reports(): Generate reports on production output,
material usage, and production costs.
o inventory_valuation_reports(): Calculate the value of inventory
on hand.
o supplier_performance_reports(): Analyze supplier performance
based on factors like delivery times and quality.
CODING
CODING
import pandas as pd
import matplotlib.pyplot as plt
import os
class InventoryManagementSystem:
def __init__(self):
self.product_file = 'Product.csv'
self.stock_file = 'Stock.csv'
self.seller_file = 'Seller.csv'
self.order_file = 'Order.csv'
def view_products(self):
product_data = self.load_data(self.product_file)
print("\nProduct Data:")
print(product_data)
def view_stocks(self):
stock_data = self.load_data(self.stock_file)
print("\nStock Data:")
print(stock_data)
def view_orders(self):
order_data = self.load_data(self.order_file)
print("\nOrder Data:")
print(order_data)
def view_sellers(self):
seller_data = self.load_data(self.seller_file)
print("\nSeller Data:")
print(seller_data)
def generate_reports(self):
print("\nGenerating Reports...")
while True:
print("\nMain Menu:")
print("1. Product Module")
print("2. Stock Module")
print("3. Order Module")
print("4. Seller Module")
print("5. Report Module")
print("6. Exit")
if choice == '1':
while True:
print("\nProduct Module:")
print("1. Add Product")
print("2. Modify Product")
print("3. Delete Product")
print("4. View All Product Data")
print("5. Back to Main Menu")
if sub_choice == '1':
prod_id = input("Enter Product ID: ")
name = input("Enter Product Name: ")
type = input("Enter Product Type: ")
price = float(input("Enter Price: "))
ims.add_product(prod_id, name, type,
price)
elif sub_choice == '2':
prod_id = input("Enter Product ID to
Modify: ")
name = input("Enter New Product Name
(leave blank to skip): ")
type = input("Enter New Product Type
(leave blank to skip): ")
price = input("Enter New Price (leave
blank to skip): ")
ims.modify_product(prod_id, name or None,
type or None, float(price) if price else None)
elif sub_choice == '3':
prod_id = input("Enter Product ID to
Delete: ")
ims.delete_product(prod_id)
elif sub_choice == '4':
ims.view_products()
elif sub_choice == '5':
break
else:
print("Invalid choice. Try again.")
if sub_choice == '1':
stock_id = input("Enter Stock ID: ")
prod_id = input("Enter Product ID: ")
quantity = int(input("Enter Quantity: "))
dop = input("Enter Date of Purchase (DOP):
")
seller_id = input("Enter Seller ID: ")
ims.add_stock(stock_id, prod_id, quantity,
dop, seller_id)
elif sub_choice == '2':
stock_id = input("Enter Stock ID to
Modify: ")
quantity = input("Enter New Quantity
(leave blank to skip): ")
dop = input("Enter New Date of Purchase
(leave blank to skip): ")
seller_id = input("Enter New Seller ID
(leave blank to skip): ")
ims.modify_stock(stock_id, int(quantity)
if quantity else None, dop or None, seller_id or None)
elif sub_choice == '3':
stock_id = input("Enter Stock ID to
Delete: ")
ims.delete_stock(stock_id)
elif sub_choice == '4':
ims.view_stocks()
elif sub_choice == '5':
break
else:
print("Invalid choice. Try again.")
if sub_choice == '1':
order_id = input("Enter Order ID: ")
prod_id = input("Enter Product ID: ")
date_of_order = input("Enter Date of
Order: ")
quantity = int(input("Enter Quantity: "))
ims.add_order(order_id, prod_id,
date_of_order, quantity)
elif sub_choice == '2':
order_id = input("Enter Order ID to
Remove: ")
ims.remove_order(order_id)
elif sub_choice == '3':
order_id = input("Enter Order ID to
Modify: ")
prod_id = input("Enter New Product ID
(leave blank to skip): ")
date_of_order = input("Enter New Date of
Order (leave blank to skip): ")
quantity = input("Enter New Quantity
(leave blank to skip): ")
ims.modify_order(order_id, prod_id or
None, date_of_order or None, int(quantity) if quantity else
None)
elif sub_choice == '4':
ims.view_orders()
elif sub_choice == '5':
break
else:
print("Invalid choice. Try again.")
elif choice == '4':
while True:
print("\nSeller Module:")
print("1. Add Seller Details")
print("2. Remove Seller Details")
print("3. Modify Seller Details")
print("4. View All Seller Data")
print("5. Back to Main Menu")
if sub_choice == '1':
seller_id = input("Enter Seller ID: ")
name = input("Enter Seller Name: ")
address = input("Enter Seller Address: ")
phone = input("Enter Seller Phone: ")
email = input("Enter Seller Email: ")
ims.add_seller(seller_id, name, address,
phone, email)
elif sub_choice == '2':
seller_id = input("Enter Seller ID to
Remove: ")
ims.remove_seller(seller_id)
elif sub_choice == '3':
seller_id = input("Enter Seller ID to
Modify: ")
name = input("Enter New Seller Name (leave
blank to skip): ")
address = input("Enter New Address (leave
blank to skip): ")
phone = input("Enter New Phone (leave
blank to skip): ")
email = input("Enter New Email (leave
blank to skip): ")
ims.modify_seller(seller_id, name or None,
address or None, phone or None, email or None)
elif sub_choice == '4':
ims.view_sellers()
elif sub_choice == '5':
break
else:
print("Invalid choice. Try again.")
else:
print("Invalid choice. Try again.")
if __name__ == "__main__":
main()
USER INTERFACE
REPORT
OUTPUT SCREENSHOTS
Seller.CSV
Product.csv
Stock.csv
Order.csv
FUTURE SCOPE
Integration with Production Planning: Integrate the system with production planning
software to optimize material usage and minimize waste.
Barcode Integration: Utilize barcode scanning technology for faster and more
accurate stock tracking.
Mobile App Development: Develop a mobile app for real-time inventory tracking and
order management.
Cloud Deployment: Deploy the system on cloud platforms for improved scalability,
accessibility, and disaster recovery.