D.A.V PUBLIC SCHOOL BSEB COLONY,PATNA Informatics Practices Project: "Fee Management System" (For the partial fulfilment of AISSCE 2020-2021) Guided by:- Submitted by:- Mrs. Swati Swarnim yashaswi Karan TGT, Department of I.P Class:- XII Maths Board Roll no.:- CERTIFICATE This is to certify that Yashaswi karan of Class XII Maths, Board Roll no. ______________, of DAV Public School, B.S.E.B Colony, Patna -23 has successfully completed the project for I.P (Informatics Practices) for the partial fulfilment of AISSCE Class XII Board Practical Examination 2020-21, under the guidance and consultation of Mrs. Swati Swarnim (Department of I.P). __________________ ___________________ Signature of External Signature of Internal Examiner Examiner ACKNOWLEDGEMENT First of all , I would thank God because of whose blessings, I was able to make this project. I would also like to thank our Principal sir, Dr V.S. Ojha. I am deeply indebted to my mentor and guide, my IP teacher, Mrs. Swati Swarnim as without her consultation and support , I could not be able to make this project My heartfelt thanks to CBSE for giving such an interesting project. I also express my deepest gratitude towards my parents. Finally, I would like to thank all my dear ones. INDEX 1. Introduction 2. System Requirements Specification 3. Python Coding 4. MySQL Coding 5. Output 6. Future scope of the project 7. Conclusion 8. References INTRODUCTION In the existing system, most of the records are maintained on paper. It becomes very inconvenient to modify the data. In the existing system, here is a possibility that the same data in different registers may have different values which means the entries of the same data do not match. This inconsistent state does not supply the concrete information which poses a problem in the case information related to particular search record. Our project is very useful. User is no longer required to check his register in search of records, as now it can be searched over the software by choosing some options. The user need not to type in most of the information. He/she is just required to enter the desired options. On the whole it liberates the user from keeping lengthy manual records. In a nutshell, it abates the work load of an organization. In today's world, no one likes to perform calculations on calculator or manually when computer is there. Everyone wants his/her work to be done by computer automatically and displaying the result for further manipulations. So this project is about providing convenience regarding fee management system. SYSTEM REQUIREMENTS Hardware Requirement :Processor-Intel® Core™ i3-1005G1 CPU@ 1.30GHz or above Disk space: 4 GB Software Requirement :- Operating system: Windows 10 Python Version: 3.8.6 MySQL Version: 5.5 Command Line Client PYTHON CODING import os import platform import mysql.connector import pandas as pd mydb=mysql.connector.connect(host="localhost", user="root", password="root", database="school") mycursor=mydb.cursor() def stuInsert(): L=[] roll=int(input("Enter the roll number : ")) L.append(roll) name=input("Enter the Name: ") L.append(name) age=int(input("Enter Age of Student : ")) L.append(age) classs=input("Enter the Class : ") L.append(classs) city=input("Enter the City ofthe Student : ") L.append(city) stud=(L) sql="insert into student (roll,name,age,class,city) values (%s,%s,%s,%s,%s)" mycursor.execute(sql,stud) mydb.commit() def stuView(): print("Select the search criteria : ") print("1. Roll") print("2. Name") print("3. Age") print("4. City") print("5. All") ch=int(input("Enter the choice : ")) if ch==1: s=int(input("Enter roll no : ")) rl=(s,) sql="select * from student where roll=%s" mycursor.execute(sql,rl) elif ch==2: s=input("Enter Name : ") rl=(s,) sql="select * from student where name=%s" mycursor.execute(sql,rl) elif ch==3: s=int(input("Enter age : ")) rl=(s,) sql="select * from student where age=%s" mycursor.execute(sql,rl) elif ch==4: s=input("Enter City : ") rl=(s,) sql="select * from student where City=%s" mycursor.execute(sql,rl) elif ch==5: sql="select * from student" mycursor.execute(sql) res=mycursor.fetchall() print("The Students details are as follows : ") print("(ROll, Name, Age, Class, City)") for x in res: print(x) def feeDeposit(): L=[] roll=int(input("Enter the roll number : ")) L.append(roll) feedeposit=int(input("Enter the Fee to be deposited : ")) L.append(feedeposit) month=input("Enter month of fee : ") L.append(month) fee=(L) sql="insert into fee (roll,feeDeposit,Month) values (%s,%s,%s)" mycursor.execute(sql,fee) mydb.commit() def feeView(): print("Please enter the details to view the fee details :") roll=int(input("Enter the roll number of the student whose fee is to be viewed : ")) sql="Select Student.Roll, Student.Name, Student.Class, sum(fee.feeDeposit), fee.month from Student INNER JOIN fee ON Student.roll=fee.roll and fee.roll = %s" rl=(roll,) mycursor.execute(sql,rl) res=mycursor.fetchall() for x in res: print(x) def removeStu(): roll=int(input("Enter the roll number of the student to be deleted : ")) rl=(roll,) sql="Delete from fee where roll=%s" mycursor.execute(sql,rl) sql="Delete from Student where roll=%s" mycursor.execute(sql,rl) mydb.commit() def MenuSet(): #Function For The Student Management System print("Enter 1 : To Add Student") print("Enter 2 : To View Student ") print("Enter 3 : To Deposit Fee ") print("Enter 4 : To Remove Student") print("Enter 5 : To View Fee of Any Student") try: #Using Exceptions For Validation userInput = int(input("Please Select An Above Option: ")) #Will Take Input From User except ValueError: exit("\nHy! That's Not A Number") #Error Message print("\n") #Print New Line if(userInput == 1): stuInsert() elif (userInput==2): stuView() elif (userInput==3): feeDeposit() elif (userInput==4): removeStu() elif (userInput==5): feeView() else: print("Enter correct choice. . . ") MenuSet() def runAgain(): runAgn = input("\nwant To Run Again Y/n: ") while(runAgn.lower() == 'y'): if(platform.system() == "Windows"): print(os.system('cls')) else: print(os.system('clear')) MenuSet() runAgn = input("\nwant To Run Again Y/n: ") runAgain() MenuSet() MySQL CODING OUTPUT To add a student: To view student: To deposit fee: To remove a student: Before: After To view fee of any student: FUTURE SCOPE OF THE PROJECT My project "FEE MANAGEMENT SYSTEM" will be able to implement in future after making some changes and modifications as we make our project at a very low level. So, the modifications that can be done in our project is to add one major change which can be done in this project is that to add the snaps of the student of which the record is entered. This will result in total identification of the given student. Similarly, various modifications can be done to enhance the usability of the given project as suitable for user's requirement. Conclusion From this project we can conclude that if this program is very useful in fee management as it provides more convenience than the manual work. It provides easy methods to manage the load of work easily for the users. It is much fast and more efficient as the data once entered can be modified and accessed easily. The program can be used per the requirement of the user as it is very easy to understand. REFERENCES 1. www.pythontrends.wordpress.com 2. 3. 4. 5. www.geeksforgeeks.org Stackoverflow.com Wikipedia.org Sumita arora class 12 informatices practices