0% found this document useful (0 votes)
4 views9 pages

Half Project

Uploaded by

aakashstudy52
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)
4 views9 pages

Half Project

Uploaded by

aakashstudy52
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/ 9

Gita Vidya Mandir,

Gohana
(Session 2024-2025)

Project Report
On
“COMPLAINT-
MANAGEMENT”

Submitted To Submitted By
Mr. Mohit sir Aakash
(P.G.T) XII Sci.
CERTIFICATE

This is to certify that AAKASH, a


student of class XII has successfully
completed the project “COMPLAINT
MANAGEMENT” under the guidance
of Mr. Mohit Sir( Informatics
Practices) during the year 2024-2025
as part of the required submission for
practical examination conducted by
AISSCE, CBSE.

Signature of Signature of Informatics


examiner Practices Teacher
ACKNOWLEDGEMENT
In the scoomplishment of this project
successfully, many people have bestowed
upon me their blessings and the whole
hearted support.

Primarily I would thank my Informatics Practices teacher Mr

Mohit Sir whose valuable guidance and support has helped me

complete this project. His suggestions and instructions have

served as the major contributor towards completion of the

project.

Then I would like to thank my parents and friends who have

helped me with the suggestions and guidance during the

project.

Last bust not least I would like to thank my classmates who

have helped me a lot.


Index

●Description about the project

●Screen shots of the output

●Coding
Description about the project:-
“COMPLAINT MANAGEMENT”

Languages Used:- Python


Module Used:- Pandas, Matplotlib.pyplot
Storage:- CSV file

The following project is used to store, update, delete

and view the details of Complaints with Complaint

Number, Complaint Details, Date of Complaint, Status

(Pending / On Hold / Resolved), Remarks, Date of

Resolution of Compliant in to a csv file and using

dataframe to read it and after any updation like

addition, deletion or any changes the csv file is again

updated from the dataframe.The data is fetched from

the dataframe to plot different kinds of charts


import pandas as pd
import matplotlib.pyplot as plt

print('++++++++++++++++++++++++++++++++++++++++++++++++++')
print('+ +')
print('+ Welcome to Complaint Management +')
print('+ +')
print('++++++++++++++++++++++++++++++++++++++++++++++++++')
dfComplaint = pd.read_csv('complaints.csv',
header=None,
names=['compno','complaint',
'dateofcomplaint','status'
,'remarks','dateofresolution'])
choice = 0
while(choice != 6):
print('Choices for the module')
print('1. Add a new Complaint')
print('2. Update Complaint')
print('3. Delete Complaint')
print('4. Search & View Complaints')
print('5. View Charts')
print('6. Exit')
choice = int(input('Enter your choice : '))

if(choice == 1):
compno = int(input('Input Complaint Number : '))
complaint = input('Input Complaint Details : ')
dateofcomplaint = input('Input Date of Complaint : ')
status = input('Input Status (Pending/On Hold/Resolved) : ')
remarks = input('Input Remarks : ')
dateofresolution = input('Input Date of Resolution of complaint : ')
noofComplaints = len(dfComplaint)
dfComplaint.loc[noofComplaints] = [compno,complaint,dateofcomplaint,
status,remarks,dateofresolution]
print(dfComplaint)
dfComplaint.to_csv('complaints.csv',header=False,index=False)
elif (choice == 2):
compno = int(input('Enter Complaint Number To Update : '))
print(dfComplaint.loc[dfComplaint['compno'] == compno])
indexno = dfComplaint.loc[dfComplaint['compno'] == compno].index
print('1. Update Complaint Number')
print('2. Update Complaint Detail')
print('3. Update Date of Complaint')
print('4. Update Status')
print('5. Update Remarks')
print('6. Update Date of Resolution')
complaintchoice = int(input('Enter your choice for updateofcomplaint : '))
if (complaintchoice == 1):
newcompno = int(input('Enter new Complaint Number : '))
dfComplaint.loc[indexno,'compno'] = newcompno
dfComplaint.to_csv('complaints.csv',header=False,index=False)
elif (complaintchoice == 2):
newcomplaint = input('Enter Complaint Details : ')
dfComplaint.loc[indexno,'complaint'] = newcomplaint
dfComplaint.to_csv('complaints.csv',header=False,index=False)
elif (complaintchoice == 3):
newdateofcomplaint = input('Enter date of complaint : ')
dfComplaint.loc[indexno,'dateofcomplaint'] = newdateofcomplaint
dfComplaint.to_csv('complaints.csv',header=False,index=False)
elif (complaintchoice == 4):
newstatus = input('Enter Updated Status (Pending/On Hold/Resolved) : ')
dfComplaint.loc[indexno,'status'] = newstatus
dfComplaint.to_csv('complaints.csv',header=False,index=False)
elif (complaintchoice == 5):
newremarks = input('Enter Remarks : ')
dfComplaint.loc[indexno,'remarks'] = newremarks
dfComplaint.to_csv('complaints.csv',header=False,index=False)
elif (complaintchoice == 6):
newdateofresolution = input('Enter date of resolution : ')
dfComplaint.loc[indexno,'remarks'] = newdateofresolution
dfComplaint.to_csv('complaints.csv',header=False,index=False)
print(dfComplaint.loc[dfComplaint['compno'] == compno])
print('----Complaint Store Record Updateofcomplaintd----')

elif (choice == 3):


compno = int(input('Enter Complaint Number to Delete : '))
print(dfComplaint.loc[dfComplaint['compno'] == compno])
indexno = dfComplaint.loc[dfComplaint['compno'] == compno].index
confirm = input('Are you sure you want to delete it (Y/N) : ')
if (confirm == 'Y' or confirm == 'y'):
dfComplaint = dfComplaint.drop(indexno)
dfComplaint.to_csv('complaints.csv',header=False,index=False)
print('---------- Record Deleted ---------')

elif (choice == 4):


print('1. Display all ')
print('2. Display top ___ records')
print('3. Display bottom ___ records')
print('4. Display on the basis of date of complaint')
print('5. Display on the basis of status')
print('6. Display on the basis of date of resolution')
dispchoice = int(input('Enter your choice : '))
if (dispchoice == 1):
print(dfComplaint)
elif (dispchoice == 2):
top = int(input('Enter how many top records to be displayed : '))
print(dfComplaint.head(top))
elif (dispchoice == 3):
bottom = int(input('Enter how many bottom records to be displayed : '))
print(dfComplaint.tail(bottom))
elif (dispchoice == 4):
dateofcomplaint = input('Enter date of complaint to search : ')
print(dfComplaint.loc[dfComplaint['dateofcomplaint'] == dateofcomplaint])
elif (dispchoice == 5):
status = input('Enter status Capacity : ')
print(dfComplaint.loc[dfComplaint['status'] == status])
elif (dispchoice == 6):
dateofresolution = input('Enter Date of Resolution : ')
print(dfComplaint.loc[dfComplaint['dateofresolution'] ==
dateofresolution])
elif (choice == 5):
print('1. Bar Chart - Date Wise Total Complaints')
print('2. Line Chart - Status Wise Number of Complaints')
print('3. Back Menu')
chartchoice = int(input('Enter your choice : '))
if (chartchoice == 1):
dftemp = dfComplaint.groupby ('dateofcomplaint').aggregate('count')
dateofcomplaint = dftemp.index.to_list()
Complaintcount = dftemp['compno']
plt.bar(dateofcomplaint,Complaintcount)
plt.xlabel('Date')
plt.ylabel('Number of Complaints')
plt.title('Date Wise Total Complaints')
plt.show()
elif (chartchoice == 2):
dftemp = dfComplaint.groupby ('status').aggregate('count')
status = dftemp.index.to_list()
Complaintcount = dftemp['compno']
plt.plot(status,Complaintcount)
plt.xlabel('Status')
plt.ylabel('Number of Complaints')
plt.title('Status Wise Number of Complaints')
plt.show()

print('---------------Thank You---------------------')
Bibliography

➔ I.P. Necrt Book


➔ Google
➔ youtube.com
➔ Mohit sir

You might also like