Acknowledgement I would like to express my special thanks of gratitude to my teacher Mrs Gayatri Ghadiali aswell as our principal sir Mr Sreehari Kulur who gave me the golden opportunity to do this wonderful project of informatics practices Secondly I would also like to thank my parentsand friends who helped me a lot finishing this project within the limited time. Name: BHAVYA MULANI Class: 12th commerce Subject: Infromatics Practices Project title: Automated Super Market Team members: 1) Maaz Damania 2) Subhodeep Sengupta School name: Shree Swaminarayan Gurukul,CHALA Submitted to: Mrs. Gayatri Ghadiali Project for the year 20222023 Introduction of The project This software project is developed to automate the functionalities of super store. The purpose of the software project is to develop the Management Information System (MIS) to automate the record keeping of customer entry, order entry and item entry with a view to enhance the decision . A MIS mainly consists of a computerized database, a collection of interrelated tables for a particular subject or purpose, capable to product different reports relevant to the user. An application program is tied with the database for easy access and interface to the database. Using Application program or front-end, we can store, retrieve and manage all information in proper way. This software, being simple in design and working, does not require much of training to users, and can be used as a powerful tool for automating a super store System. Objective of The project The Objective of the software project is to let students apply programming knowledge into real world situation and exposed the students how programming skills helps in developing a good software. The main objective of the project on Automated Super store is that Even in the Absence Of Owner the staff of shop can sell the items to customer , Add items ,delete items or update items just by doing some entries. It manages all the information like Customer Details , Visualisation , Transaction Details , and Item Details . The purpose of the project is to build an application program to reduce the manual work for Sales , Purchase ,Addition ,Deletion or Updation Of Items , Customer Details , Transaction details. ❖ It manages all the information of Items . ❖It Deals with Visualisations Of Sales Per Year. ❖ It Deals With Monitoring The Information And Data Analysis of Most Items Purchased By Customer Or Least Items Purchased By Customer . ❖ It Tracks All The Details About The Items Sold , Customer Details Etc. Hardware and software reqirement Hardware: Processor : dual core or above Hard disk : 40 GB Ram : 2gb Key board Monitor Mouse Software: Operating system : windows 10 Platform : Python Idle 3.10 Languages : Python Programme Source Code import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime as dt #**************************************************************** def Menu(): print(" Welcome to automated Super Market print("*****************") print(" 1- Item print(" 2- Customers_Details print(" 3- Transcations print(" 4- Visuallisation print(" 5- Exit h=int(input("Enter your choice(1-5):")) print() if h==1: Submenu() elif h==2: Submenu2() elif h==3: Submenu3() elif h==4: Submenu4() else: ") ") ") ") ") ") print("Thank you visit again") def Sales_Graph(): bill=pd.read_csv("E:\\bhavya 5\\Ip Project\\Item.csv") x=bill.Product y=bill.Price plt.bar(x,y) plt.show() Submenu4() def Graph2(): df=pd.read_csv("E:\\bhavya 5\\Ip Project\\transaction.csv") df['Bill_Date']=pd.to_datetime(df['Bill_Date']) newdf=pd.DataFrame(df.groupby(df['Bill_Date'].dt.month)['Total'].sum(),columns=['Total']) plt.bar(newdf.index,newdf.Total) plt.xlabel('month name') plt.ylabel('Total Sales') plt.xticks(np.arange(1,13),['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec']) plt.title('monthwise Total Sales') plt.show() Submenu4() def Graph3(): df=pd.read_csv("E:\\bhavya 5\\Ip Project\\transaction.csv") df['Bill_Date']=pd.to_datetime(df['Bill_Date']) newdf=pd.DataFrame(df.groupby(df['Bill_Date'].dt.year)['Total'].sum(),columns=['Total']) print(newdf.index) plt.bar(newdf.index,newdf.Total) plt.xlabel('Year') plt.ylabel('Total Sales') plt.xticks(newdf.index) plt.title('yearwise Total Sales') plt.show() Submenu4() #**************************************************************** def Add_Bill(): e='Y' while e=='Y' or e=='y': bill=pd.read_csv("E:\\bhavya 5\\Ip Project\\transaction.csv") cust=pd.read_csv("E:\\bhavya 5\\Ip Project\\Customer.csv",index_col=0) df=pd.read_csv("Item.csv",index_col=0) #print(cust) #print(df) Bno=(bill.Bill_No).max()+1 dat=input("Enter date(YYYY-MM-DD):") print(cust) Cid=int(input("Enter Cutomer_Id")) if Cid in cust.index: Cnam=cust.loc[Cid,'Cust_Name'] print("Customer_Name:",Cnam) else: print("Wrong Customer_Id") print("Try Again") break if Cid in cust.index: Cno=cust.loc[Cid,'Cust_Number'] print("Customer_Number:",Cno) if Cid in cust.index: Cadd=cust.loc[Cid,'Cust_Address'] print("Customer_Address:",Cadd) print(df) Icod=int(input("Enter Item Code:")) if Icod in df.index: Inam=df.loc[Icod,'Product'] print("Item_Name:",Inam) else: print("Wrong Item_Code") print("Try Again") break Iqty=int(input("Enter Stock:")) if Icod in df.index: x=df.loc[Icod,'Stock'] y=x-Iqty df.loc[Icod,'Stock']=y if Icod in df.index: Ipri=df.loc[Icod,'Price'] print("Item_Price:",Ipri) price=Ipri print("Total Price:",price*Iqty) n=Ipri*Iqty d=int(input("Enter Amt of discount:")) dis=n-d/100 print("Discount:",d) gtax=dis*0.18 print("Total TAX:",gtax) total=dis+gtax print("Total:",total) bill.loc[len(bill.Bill_No),:]=[Bno,dat,Cnam,Cno,Cadd,Inam,Iqty,price,n,d,gtax,total] df.to_csv("E:\\bhavya 5\\Ip Project\\Item.csv") bill.to_csv("E:\\bhavya 5\\Ip Project\\transaction.csv",index=False) print("Record added successfully") print(bill) e=input("do you want to add more records,Y or N:") Submenu3() #*************************************************************** def Delete_Bill(): h='Y' while h=='Y' or h=='y': bill=pd.read_csv("E:\\bhavya 5\\Ip Project\\transaction.csv",index_col=0) print(bill) l=int(input("Enter Bill_NO to be deleted")) bill=bill.drop(index=[l],axis=0) bill.to_csv("E:\\bhavya 5\\Ip Project\\transaction.csv") print(bill) print("Record has been deleted successfully:") h=input("Do yo want to delete more records,Y or N:") Submenu3() #*************************************************************** def Update_Bill(): b="Y" while b=='Y' or b=='y': bill=pd.read_csv("E:\\bhavya 5\\Ip Project\\transaction.csv",index_col=0) print(bill) bno=int(input("Enter Bill NO to be Updated:")) if bno in bill.index: x=bill.loc[bno:,] print("Bill:",x) print("Select Column To Be Updated") print(bill.columns) Ccl=input("Enter Column Name to be updated:") x=bill.loc[bno,Ccl] print("Values:",x) print("Enter Value to be updated:".format(Ccl)) val=input("Enter new value:") bill.loc[bno,Ccl]=val bill.to_csv("E:\\bhavya 5\\Ip Project\\transaction.csv") print(bill) print("Record Updated Successfully") b=input("Do you want to update more records,Y or N:") Submenu3() else: print("Wrong Bill_No") print("Please Try Again") Submenu3() #**************************************************************** def Show_Bill(): bill=pd.read_csv("E:\\bhavya 5\\Ip Project\\transaction.csv") bill_no=int(input("enter bill_no to see details")) if bill_no in bill['Bill_No'].values: print(bill.loc[bill['Bill_No']==bill_no,:]) else : print("wrong cust_id") print("Please Try Again") Submenu3() #**************************************************************** def Show_Customer(): cust=pd.read_csv("E:\\bhavya 5\\Ip Project\\Customer.csv") cust_id=int(input("enter customer id to see details")) if cust_id in cust['Cust_ID'].values: print(cust.loc[cust['Cust_ID']==cust_id,:]) else : print("wrong cust_id") print("Please Try Again") Submenu2() #*************************************************************** def Add_Customer(): ans="Y" while ans=='Y' or ans=='y': cust=pd.read_csv("E:\\bhavya 5\\Ip Project\\Customer.csv") Cco=(cust.Cust_ID).max()+1 Cnam=input("Enter Customer Name") Cno=int(input("Enter Contact No")) Cadd=input("Enter Customer Address") cemail=input('Enter Email:') cust.loc[len(cust),:]=[Cco,Cnam,Cno,Cadd,cemail] cust.to_csv("E:\\bhavya 5\\Ip Project\\Customer.csv",index=False) print(cust) print("Record Added Successfully") ans=input("Do you want to add more record,Y or N:") Submenu2() #**************************************************************** def Delete_customer(): ans="Y" while ans=='Y' or ans=='y': cust=pd.read_csv("E:\\bhavya 5\\Ip Project\\Customer.csv",index_col=0) print(cust) index=int(input("Enter Cust_ID")) if index in cust.index: cust=cust.drop([index],axis=0) cust.to_csv("E:\\bhavya 5\\Ip Project\\Customer.csv") print(cust) print("Record deleted successfully") else: print("Wrong Cust_Id") Submenu2() ans=input("Do you want to delete more records,Y or N:") Submenu2() #**************************************************************** def Edit_Customer(): ans="Y" while True: cust=pd.read_csv("E:\\bhavya 5\\Ip Project\\Customer.csv") Cid=int(input("Enter Cust_Code to be Updated:")) if Cid in cust['Cust_ID'].values: print("Select Column To Be Updated") print(cust.columns) Ccl=input("Enter Column Name to be updated:") print("Enter Value to be updated:".format(Ccl)) val=input("Enter new value:") cust.loc[cust['Cust_ID']==Cid,Ccl]=val cust.to_csv("E:\\bhavya 5\\Ip Project\\Customer.csv",index=False) print(cust) print("Record Updated Successfully") ans=input("Do you want to update more records,Y or N:") Submenu2() else: print("customer Id not exists") ans=input("Do you want to update more records,Y or N:") Submenu2() #**************************************************************** def Add_Items(): ans="Y" while ans=='Y' or ans=='y': df=pd.read_csv("E:\\bhavya 5\\Ip Project\\Item.csv") icod=(df.Item_Code).max()+1 pro=input("Enter Product Name:") pri=int(input("Enter Price:")) s=int(input("enter item stock:")) Bno=input('ENter Batch No:') df.loc[len(df),:]=[icod,pro,s,pri,Bno] df.to_csv("E:\\bhavya 5\\Ip Project\\Item.csv",index=False) print(df) print("Record added successfully") ans=input("Do you want to add more record,Y or N:-") Submenu() #**************************************************************** def Delete_Item(): ans="Y" while ans=='Y' or ans=='y': df=pd.read_csv("E:\\bhavya 5\\Ip Project\\Item.csv",index_col=0) print(df) index=int(input('Enter Item_Code')) df=df.drop([index],axis=0) df.to_csv("E:\\bhavya 5\\Ip Project\\Item.csv") print("Record added successfully") print(df) ans=input("Do you want to add more record,Y or N:-") Submenu() #**************************************************************** def Edit_Item(): ans="Y" while True: df=pd.read_csv("E:\\bhavya 5\\Ip Project\\Item.csv") im=int(input("Enter Item Code to be update")) if im in df['Item_Code'].values: print("Select Column to be updated") print(df.columns) cl=input("Enter column name to update:") print("enter a value to be updated".format(cl)) val=input("Enter new value if in string value give in quotes:") df.loc[df['Item_Code']==im,cl]=val df.to_csv("E:\\bhavya 5\\Ip Project\\Item.csv",index=False) print(df) print("Record updated successfully") ans=input("Do you want to update more records,Y or N:") Submenu() #**************************************************************** def Show_Item(): df=pd.read_csv("E:\\bhavya 5\\Ip Project\\Item.csv") Item_Code=int(input("enter item_code to see details")) if Item_Code in df['Item_Code'].values: print(df.loc[df['Item_Code']==Item_Code,:]) Submenu() #**************************************************************** def Submenu4(): print(" Analytics Menu") print("***********") print(" 1-Sales Graph") print(" 2-Monthwise Sales") print(" 3-Yearwise Sales") print(" 4-Back") h=int(input("Enter your choice:")) if h==1: Sales_Graph() if h==2: Graph2() if h==3: Graph3() else: print("Going back to Main Menu") Menu() #**************************************************************** def Submenu3(): print(" Transcations Menu") print("************") print(" 1-Add Bill") print(" 2-Delete Bill") print(" 3-Update Bill") print(" 4-Show Bill") print(" 5-Back") o=int(input("Enter your choice(1-5):")) if o==1: Add_Bill() elif o==2: Delete_Bill() elif o==3: Update_Bill() elif o==4: Show_Bill() else: print("Going back to print menu") Menu() #**************************************************************** def Submenu2(): print(" Customers Menu ") print("************") print(" 1-Add Customer's Details print(" 2-Delete Customer's Details print(" 3-Edit details of the customer") print(" 4-Show details of the customer") print(" 5-B A C K") i=int(input("Enter your choice(1-5):")) if i==1: Add_Customer() elif i==2: ") ") Delete_customer() elif i==3: Edit_Customer() elif i==4: Show_Customer() else: print("Going Back to Main Menu") Menu() #*************************************************************** def Submenu(): print(" Item MENU ") print("***********") print(" 1-Add new Item ") print(" 2-Delete Item print(" 3-Edit details of the Item") print(" 4-Show details of the Item") print(" 5-B A C K") ") c=int(input("Enter your choice (1-5):")) if c==1: Add_Items() Submenu() elif c==2: Delete_Item() Submenu() elif c==3: Edit_Item() Submenu() elif c==4: Show_Item() Submenu() else: print("Going back to main menu") Menu() print() #*************************************************************88* Menu() Programme Output Welcome To Our Super Store 1.Item To Add Items To Delete Items To Edit Items To Show Details Of Items Go Back To Sub menu 2.Customer Details Add Customer Details Delete Customer Details Edit Customer Details Show Customer Details Go Back To Sub menu 3. Transactions Add Bill Delete Bill Update Bill Show Bill Go Back To Sub menu 4. Visualisation Sales Graph Month Wise Sales Year Wise Sales Go Back To Sub menu Exit Shop Backend csv’s 1) Item 2) Customer 3) Transaction Future scope and further enhancements of the project In its current scope , the software enables the user to retrieve and update the information from centralized database designed with Phython . The software does not require much training time of the user due to limited functionality and simplicity. Despite of best effort of the developer, the following limitations and functional boundaries are visible, which limits the scope of this application software. 1. This software can store records and produce reports in pre –designed format in soft copy. There is no facility yet to produce customized reports. Only specified reports are covered. 2. There is no provision to calculate fine or penalty etc, for defaulter members;however it can be developed easily with the help of adding modules . So far as future scope of the project is concerned, firstly it is open to any modular expansion i.e other modules or functions can be designed and embedded to handel the user need in future. Any part of the software and reports can be modified independently without much effort. References/Bibliography Class 12th infromatics practicesreference book published by sumita arora www.wikipedia.com www.google.com