0% found this document useful (0 votes)
22 views

Ip Project

Uploaded by

UG BHAI
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)
22 views

Ip Project

Uploaded by

UG BHAI
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/ 21

A.I.S.S.C.

E
2024-2025
CLASS XII
INFORMATICS PRACTICES

(065)

PROJECT FILE

BANK MANAGEMENT SYSTEM

ROLL NUMBER:
CERTIFICATION

This is to certify that Abhisiddha Ray student of Indus


Valley World School, Grade XII (2024 -25), Roll Number
_________________ has completed Informatics Practices
Project.

He has shown sincerity in his work and has abided by all


the CBSE guidelines pertaining to the Project work.

SIGNATURE OF PRINCIPAL __________

SIGNATURE OF INTERNAL EXAMINER _________


EXAMINER NUMBER _________

SIGNATURE OF EXTERNAL EXAMINER __________


EXAMINER NUMBER _________
ACKNOWLEDGEMENT

I would like to thank my school authorities for all the


support I have received in the last year.

I am especially grateful to my teacher Ms. Nivedita Roy


for her guidance which has helped me to complete my
Project.
INDEX

SERIAL TOPIC PAGE


NO. NO.
1 Introduction 5
2 System Requirements 6
3 Code 7-12
4 Output 13-18
5 Conclusion 19
6 Bibliography 20
INTRODUCTION
Effective inventory and billing management is crucial for
both small and large enterprises in the cutthroat
business world of today. This billing software project
intends to simplify the billing process, allowing firms to
handle product sales, maintain inventories, and create
invoices more quickly. This software, written in Python,
CSV files, and Matplotlib, provides a lightweight and
user-friendly solution for handling common billing
activities without the need for sophisticated databases or
hefty infrastructure.

Objective of the project:


The main objective of this project is to create a billing
software that enhances the efficiency of billing
operations in a business. Key objectives include:
1. Efficient Inventory Management.
2. Simplified Billing Process.
3. Data Persistence with CSV Files.
4. Sales Analysis and Visualization.
5. User-Friendly Interface.

Group Member: Bishal Podder


SYSTEM REQUIREMENTS

HARDWARE REQUIREMENTS
 A Computer/laptop with Operating System Windows 7
or above x86 64-bit CPU (Intel/AMD architecture) 2GB
RAM.

 5-10 GB free disk space.

SOFTWARE REQUIREMENTS
 Operating system- Windows 10
 Platform- Python IDLE 3.8.3
 Database- CSV File
 Language- Python

PYTHON REQUIREMENTS
 Library: Pandas
 Module: matplotlib.pyplot
CODE
import csv # importing csv
import matplotlib.pyplot as plt # importing
matplotlib
import os # For checking if files exist

PRODUCTS_FILE = 'products.csv' # Defining


file paths
SALES_FILE = 'sales.csv'

def initialize_files(): # Check for product and


sales files

if not os.path.exists(PRODUCTS_FILE):
with open(PRODUCTS_FILE, 'w', newline='') as
file:
writer = csv.writer(file)
writer.writerow(['ProductID', 'Name', 'Price'])

if not os.path.exists(SALES_FILE):
with open(SALES_FILE, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['BillID', 'ProductID',
'ProductName', 'Quantity', 'Price'])
def add_product(): # Add a new product

prodct_id = input("Enter Product ID: ")


name = input("Enter Product Name: ")
try:
price = float(input("Enter Product Price: "))
except ValueError:
print("Invalid input for price. Please enter a
number.")
return
with open(PRODUCTS_FILE, 'a', newline='') as
file:
writer = csv.writer(file)
writer.writerow([product_id, name, price])

print(f"Product '{name}' added successfully!")

def view_products(): # View all products


print("\nAvailable Products:")
with open(PRODUCTS_FILE, 'r') as file:
reader = csv.reader(file)
next(reader) # Skip header row
for row in reader:
print(f"ID: {row[0]}, Name: {row[1]}, Price:
{row[2]}")

def create_bill(): # Create a bill and save it


bill_id = input("Enter Bill ID: ")
total = 0 # Total amount for the bill
items = [] # List to store items in the current bill

while True:
view_products()
product_id = input("Enter Product ID to add to
bill (or type 'x' to finish): ")
if product_id.lower() == 'x':

break

try:
quantity = int(input("Enter Quantity: "))
except ValueError:
print("Invalid input for quantity. Please enter
an integer.")
continue

with open(PRODUCTS_FILE, 'r') as file:


reader = csv.reader(file)
next(reader)
for row in reader:
if row[0] == product_id:
name, price = row[1], float(row[2])
total_price = price * quantity
total += total_price
items.append([bill_id, product_id, name,
quantity, total_price])

else:
print("Product not found. Please try
again.")

with open(SALES_FILE, 'a', newline='') as file:


writer = csv.writer(file)
writer.writerows(items)

print(f"\nBill created successfully! Total Amount:


{total}\n")

def sales_report(): # Generate and display a sales


report
products = {}
with open(SALES_FILE, 'r') as file:
reader = csv.reader(file)
next(reader)
for row in reader:
product_name = row[2]
total_price = float(row[4])
if product_name in products:
products[product_name] += total_price
else:
products[product_name] = total_price

if products:
plt.figure(figsize=(10, 6))
plt.bar(products.keys(), products.values(),
coluor='purple', width=0.5)
plt.xlabel('Products')
plt.ylabel('Total Sales')
plt.title('Sales Report')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
else:
print("No sales data available to visualize.")
def main(): # Main function
initialize_files()
while True:
print("\nBilling Software Menu:")
print("1. Add Product")
print("2. View Products")
print("3. Create Bill")
print("4. Visualize Sales")
print("5. Exit")

choice = input("Enter your choice: ")

if choice == '1':
add_product()
elif choice == '2':
view_products()
elif choice == '3':
create_bill()
elif choice == '4':
sales_report()
elif choice == '5':
print("Exiting the software.")
break
else:
print("Invalid choice. Please try again.")

if __name__ == "__main__": # Run the main


function
OUTPUT
This is the main screen:
Task 1: Add Product:
Task 2: After adding few more products. The
new products are automatically added in the
“Product.csv’’:

Task 3: View Products:


Task 4: Create a Bill:
Task 5: Displaying Sales Report:
Task 6: Sales Report database:
Task 7: Exit
CONCLUSION
Python may be used to develop a useful and effective solution for
handling sales and inventories in a company setting, as this billing
software project effectively illustrates. The usage of CSV files for
data storage keeps the software lightweight and accessible, avoiding
the need for complicated database systems and assuring data
permanence. The presence of a command-line interface facilitates
interaction, making the application appropriate even for users with
limited technical knowledge.
Furthermore, the inclusion of Matplotlib delivers important insights
through data visualization, allowing organizations to see sales trends
and make informed decisions. This project has underlined the
importance of code structure, error management, and user
experience in software design.
All things considered, small and medium-sized enterprises
may rely on this billing software to streamline sales
monitoring, inventory management, and billing while
maintaining scalability for future improvements. The project
not only demonstrates Python's adaptability, but it also
provides a solid framework for future growth, such as adding
features like customer administration, thorough reporting,
and graphical interfaces.
BIBLIOGRAPHY
Books referred:
 Informatics Practices by Preeti Arora for Grade XII

 Informatics Practices by Sumita Arora for Grade XII

Websites referred:
 www.pythonbasics.org

 www.w3schools.com

You might also like