KANYA KUBJA PUBLIC SCHOOL
91, CANTT., THE MALL, KANPUR
Project Work
IN
PYTHON
1. Title of Work: SCHOOL MAMAGMENT SYSTEM
2. Student’s Name : __________________________________________
3. Class____________________Section________Session____________________
4. Roll No. allotted by C. B. S. E. ______________________________
5. Name & Sign of Internal Examiner:______________________________
6. Name & Sign of External Examiner:______________________________
Verified by:
Ms Pooja Sehgal
(Principal)
1
CERTIFICATE
This is to certify that Mr./Ms. ______________________________ of
class ___________ (_____________________) of Kanya Kubja Public
School has worked under my supervision by showing a great
interest and completed his/her project to my total satisfaction.
I certify that this project is up to my expectation and as per
the guidelines issued by C. B. S. E.
Mr Anurag KumarShukla
(PGT Computer Science)
Signature:
Date:
Verified by : Mrs. Pooja Sehgal
(Principal)
Signature:
Date:
2
ACKNOWLEDGEMENT
It would be my utmost pleasure to express my
sincere thanks to my Computer Science Teacher Mr
Anurag Kumar Shukla in providing a helping hand
in this project. His valuable guidance, support and
supervision all through this project titled is
responsible for attaining its present form.
C.B.S.E. Roll No. Name: ___________________
Date: Class: XII – ______________
3
Contents
1. Introduction of the Project.
2. System Requirements of the Project.
3. Python Coding.
4. Output of the Project.
5. References.
4
Introduction of the Project
We the students of CLASS XIIC of KENDRIYA VIDYALAYA PALAMPUR
HOLTA have been assigned the work of “SCHOOL MAMAGMENT
SYSTEM”.
To perform this task the students were divided into the group of three
students named as AKHL, HARSH, JAGDISH. AKHIL is assigned the
work of coding of program while the other group members HARSH
AND JAGDISH were assigned the work of analyzing the program and
lead the program to the conclusion.
The project starts with –
Enter1: New admission
Enter2: Display students data
Enter3: Update students data
Enter4: Issue transfer certificate
Enter5: Add students marks detail
Enter6: Generate all students report card
Enter7: Generate students wise report card
Enter8: Pay students fee
Enter9: Generate students wise fee receipt
Enter10: Generate students fee receipt
Enter11: Exit
We are so glad that this work has been assigned to us, yet we haven’t
done this work before .SH. SANJEEV SHARMA our subject teacher
has also helped us a lot to complete this project.
We have learnt all this work with the help of our sir, we are also
thankful to our respected We feel so blessed that principal SH. LALIT
KUMAR GUPTA for providing us various facilities to complete this
project.
As we are the students of CLASS XII A and we haven’t done this type
of project before, we have performed all that which we have learnt
from our CBSE PROGRAMMING. Hence, we know that this
5
programming would be further done on a big platform. Since we have
started this programming from SEPTEMBER 2019 month, we believe
that this programming would further help us a lot in our future.
We are also thankful to our group mates for cooperating with each
other while performing this task we have also polished the skills of
group activity.
PROCESS
FIRSTLY, we have done the planning in a paper work regarding what
have to do on the assigned project “SCHOOL MAMAGMENT
SYSTEM”.
SECONDLY, we discussed our planning with our subject teacher and
then he provided us the right path to perform the work.
NEXT, we started our project on foot paths of our subject teacher.
THEN, we started our coding, coding took around 2 and half months
for completion.
NEXT, we analyzed the mistakes done and then we corrected them.
THEN, we prepared the project format as shown above.
THANKS TO ALL OF WORTHY TEACHERS AND PRINCIPAL AND MY
DEAR GROUP MATES, ALSO A GREAT THANKS TO KENDRIYA
VIDYALAYA SANGATHAN FOR PROVIDING US THIS GOLDEN
OPPORTUNITY …………
6
System Requirements of the Project
Recommended System Requirements
Processors: Intel® Core™ i3 processor 4300M at 2.60 GHz.
Disk space: 2 to 4 GB.
Operating systems: Windows® 10, MACOS, and UBUNTU.
Python Versions: 3.X.X or Higher.
Minimum System Requirements
Processors: Intel Atom® processor or Intel® Core™ i3 processor.
Disk space: 1 GB.
Operating systems: Windows 7 or later, MACOS, and UBUNTU.
Python Versions: 2.7.X, 3.6.X.
Prerequisites before installing MySQL Connector Python
You need root or administrator privileges to perform the installation
process.
Python must be installed on your machine.
Note: – MySQL Connector Python requires python to be in the
system’s PATH. Installation fails if it doesn’t find Python.
On Windows, If Python doesn’t exist in the system’s PATH, please
manually add the directory containing python.exe yourself.
7
Python Coding
import mysql.connector
# GLOBAL VARIABLES DECLARATION
myConnnection =""
cursor=""-
userName=""
password =""
#MODULE TO CHECK MYSQL CONNECTIVITY
def MYSQLconnectionCheck ():
global myConnection
global userName
global password
userName = input("\n ENTER MYSQL SERVER'S USERNAME : ")
password = input("\n ENTER MYSQL SERVER'S PASSWORD : ")
myConnection=mysql.connector.connect(host="localhost",user=userName,passwd
=password , auth_plugin='mysql_native_password' )
if myConnection:
print("\n CONGRATULATIONS ! YOUR MYSQL CONNECTION HAS BEEN
ESTABLISHED !")
cursor=myConnection.cursor()
cursor.execute("CREATE DATABASE IF NOT EXISTS SMS")
cursor.execute("COMMIT")
cursor.close()
return myConnection
else:
print("\nERROR ESTABLISHING MYSQL CONNECTION CHECK
USERNAME AND PASSWORD !")
#MODULE TO ESTABLISHED MYSQL CONNECTION
def MYSQLconnection ():
8
global userName
global password
global myConnection
myConnection=mysql.connector.connect(host="localhost",user=userName,passwd
=password , database="SMS" , auth_plugin='mysql_native_password' )
if myConnection:
return myConnection
else:
print("\nERROR ESTABLISHING MYSQL CONNECTION !")
myConnection.close()
#MODULE FOR NEW ADMISSION
def newStudent():
if myConnection:
cursor=myConnection.cursor()
createTable ="""CREATE TABLE IF NOT EXISTS STUDENT(SNAME
VARCHAR(30),FNAME VARCHAR(30),MNAME VARCHAR(30)
,PHONE VARCHAR(12), ADDRESS VARCHAR(100),SCLASS
VARCHAR(5),SSECTION VARCHAR(5),
SROLL_NO VARCHAR(5),SADMISSION_NO VARCHAR(10)
PRIMARY KEY)
"""
cursor.execute(createTable)
sname=input("\n ENTER STUDENT'S NAME : ")
fname=input(" ENTER FATHER'S NAME : ")
mname=input(" ENTER MOTHER'S NAME : ")
phone=input(" ENTER CONTACT NO. : ")
address=input(" ENTER ADDRESS : ")
sclass =input(" ENTER CLASS : ")
ssection=input(" ENTER SECTION : ")
sroll_no=input(" ENTER ROLL_NO : ")
sadmission_no=input(" ENTER ADMISSION_NO : ")
sql="INSERT INTO
student(SNAME,FNAME,MNAME,PHONE,ADDRESS,SCLASS,SSECTION,SROLL_
NO,SADMISSION_NO) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)"
values=(sname,fname,mname,phone,address
,sclass,ssection,sroll_no,sadmission_no)
cursor.execute(sql,values)
cursor.execute("COMMIT")
cursor.close()
print("\nNew Student Enrolled Successfully !")
9
else:
print("\nERROR ESTABLISHING MYSQL CONNECTION !")
#MODULE TO DISPLAY STUDENT'S DATA
def displayStudent():
cursor=myConnection.cursor()
if myConnection:
cursor.execute("SELECT * FROM STUDENT")
data=cursor.fetchall()
print(data)
cursor.close()
else:
print("\nSomthing Went Wrong ,Please Try Again !")
#MODULE TO UPDATE STUDENT'S RECORD
def updateStudent():
cursor=myConnection.cursor()
if myConnection:
admission_no=input("ENTER ADMISSION NO")
sql="SELECT * FROM STUDENT WHERE SADMISSION_NO= %s"
cursor.execute(sql,(admission_no,))
data=cursor.fetchall()
if data:
print("PRESS 1 FOR NAME")
print("PRESS 2 FOR CLASS")
print("PRESS 3 FOR ROLL NO")
choice=int(input("Enter Your Choice"))
if choice==1:
name=input("ENTER NAME OF THE STUDENT :")
sql="UPDATE STUDENT SET SNAME= %s WHERE SADMISSION_NO =
%s"
cursor.execute(sql,(name,admission_no))
cursor.execute("COMMIT")
print("NAME UPDATED")
elif choice == 2:
std=input("ENTER CLASS OF THE STUDENT :")
sql="UPDATE STUDENT SET SCLASS= %s WHERE SADMISSION_NO=
%s"
cursor.execute(sql,(std,admission_no))
cursor.execute("COMMIT")
print("CLASS UPDATED")
elif choice==3:
roll_no=int(input("ENTER ROLL NO OF THE STUDENT :"))
10
sql="UPDATE STUDENT SET SROLL_NO= %s WHERE
SADMISSION_NO = %s"
cursor.execute(sql,(roll_no,admission_no))
cursor.execute("COMMIT")
print("ROLL NO UPDATED")
else:
print("Record Not Found Try Again !")
cursor.close()
else:
print("\nSomthing Went Wrong ,Please Try Again !")
#MODULE TO ENTER MARKS OF THE STUDENT
def marksStudent () :
if myConnection:
cursor=myConnection.cursor()
createTable ="""CREATE TABLE IF NOT EXISTS MARKS(SADMISSION_NO
VARCHAR(10) PRIMARY KEY,HINDI INT,ENGLISH INT ,MATH INT ,
SCIENCE INT,SOCIAL INT,COMPUTER INT,TOTAL INT ,AVERAGE
DECIMAL)
"""
cursor.execute(createTable)
admission_no=input("ENTER ADMISSION NO OF THE STUDENT :")
hindi=int(input("\n ENTER MARKS OF HINDI : "))
english=int(input("\n ENTER MARKS OF ENGLISH : "))
math=int(input("\n ENTER MARKS OF MATH : "))
science=int(input("\n ENTER MARKS OF SCIENCE : "))
social=int(input("\n ENTER MARKS OF SOCIAL : "))
computer =int(input("\n ENTER MARKS OF COMPUTER : "))
total = hindi + english + math + science + social + computer
average = total/6
sql="INSERT INTO
MARKS(SADMISSION_NO,HINDI,ENGLISH,MATH,SCIENCE,SOCIAL,COMPUTER,
TOTAL,AVERAGE) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)"
values=(admission_no,hindi,english,math,science,social,computer , total ,
average)
cursor.execute(sql,values)
cursor.execute("COMMIT")
cursor.close()
print("\nMarks of the Student Entered Successfully !")
else:
print("\nERROR ESTABLISHING MYSQL CONNECTION !")
#MODULE TO GENERATE REPORT CARD OF ALL STUDENTS
11
def reportCardAllStudent () :
cursor=myConnection.cursor()
if myConnection:
cursor.execute("SELECT * FROM MARKS")
data=cursor.fetchall()
print(data)
cursor.close()
else:
print("\nSomthing Went Wrong ,Please Try Again !")
#MODULE TO GENERATE REPORT CARD OF ONE STUDENTS
def reportCardOneStudent():
cursor=myConnection.cursor()
if myConnection:
admission_no=input("ENTER ADMISSION NO OF THE STUDENT :")
cursor=myConnection.cursor()
sql="SELECT * FROM MARKS WHERE SADMISSION_NO= %s"
cursor.execute(sql,(admission_no,))
data=cursor.fetchall()
if data:
print(data)
else:
print("Record Not Found , Please Try Again !")
cursor.close()
else:
print("\nSomthing Went Wrong ,Please Try Again !")
#MODULE TO ENTER FEES OF THE STUDENTS
def feeStudent () :
if myConnection:
cursor=myConnection.cursor()
createTable ="""CREATE TABLE IF NOT EXISTS FEES(SADMISSION_NO
VARCHAR(10) PRIMARY KEY,MONTH INT ,TUTION_FEES INT,VVN INT
,COMPUTER_FEES INT ,
MUSIC_FEES INT, TOTAL INT)
"""
cursor.execute(createTable)
admission_no=input("ENTER ADMISSION NO OF THE STUDENT :")
month=int(input("\n ENTER MONTH IN NUMERIC FORM (1-12) : "))
tutionfee=int(input("\n ENTER TUTION FEES : "))
vvn=int(input("\n ENTER VVN : "))
computerfee=int(input("\n ENTER COMPUTER FEES : "))
musicfee=int(input("\n ENTER MUSIC FEES : "))
total = tutionfee + vvn + computerfee + musicfee
12
sql="INSERT INTO
FEES(SADMISSION_NO,MONTH,TUTION_FEES,VVN,COMPUTER_FEES,MUSIC_
FEES,TOTAL) VALUES(%s,%s,%s,%s,%s,%s,%s)"
values=(admission_no,month,tutionfee,vvn,computerfee,musicfee,total)
cursor.execute(sql,values)
cursor.execute("COMMIT")
cursor.close()
print("\nFees of Student Accepted Successfully !")
else:
print("\nERROR ESTABLISHING MYSQL CONNECTION !")
#MODULE TO GENERATE FEES RECEIPT OF ALL STUDENTS
def feeReceiptAllStudent():
cursor=myConnection.cursor()
if myConnection:
cursor.execute("SELECT * FROM FEES")
data=cursor.fetchall()
print(data)
cursor.close()
else:
print("\nSomthing Went Wrong ,Please Try Again !")
#MODULE TO GENERATE FEES RECEIPT OF ONE STUDENT
def feeReceiptOneStudent():
cursor=myConnection.cursor()
if myConnection:
admission_no=input("ENTER ADMISSION NO OF THE STUDENT :")
cursor=myConnection.cursor()
sql="SELECT * FROM FEES WHERE SADMISSION_NO= %s"
cursor.execute(sql,(admission_no,))
data=cursor.fetchall()
if data:
print(data)
else:
print("Record Not Found , Please Try Again !")
cursor.close()
else:
print("\nSomthing Went Wrong ,Please Try Again !")
#MODULE TO ISSUE TRANSFER CERTIFICATE
def transferStudent():
cursor=myConnection.cursor()
13
if myConnection:
admission_no=input("ENTER ADMISSION NO OF THE STUDENT :")
cursor=myConnection.cursor()
sql="SELECT * FROM STUDENT WHERE SADMISSION_NO= %s"
cursor.execute(sql,(admission_no,))
data=cursor.fetchall()
if data:
sql=("DELETE FROM STUDENT WHERE SADMISSION_NO=%s")
cursor.execute(sql,(admission_no,))
cursor.execute("COMMIT")
print("Student's Transfer Certificate Generated !!!")
else:
print("Record Not Found , Please Try Again !")
cursor.close()
else:
print("\nSomthing Went Wrong ,Please Try Again !")
#MODULE TO PROVIDE HELP FOR USER
def helpMe():
print("Please, Visit The Offcial Website Of Vidyalaya To Download The Mannual
!!!")
# MAIN SCREEN OF THE SYSTEM
print("#############################################################
#######")
print("\n| WELCOME |")
print("\n| SCHOOL MAMAGMENT SYSTEM |")
print("\n| |")
print("#############################################################
#######")
#STARTING POINT OF THE SYSTEM
14
myConnection = MYSQLconnectionCheck ()
if myConnection:
MYSQLconnection ()
while(1):
print("| |")
print("| Enter 1 - New Admission. |")
print("| Enter 2 - Display Student's Data. |")
print("| Enter 3 - Update Students's Data . |")
print("| Enter 4 - Issue Transfer Certififcate . |")
print("| Enter 5 - Add Student's Marks Detail. |")
print("| Enter 6 - Generate All Student's Report Card. |")
print("| Enter 7 - Generate Student Wise Report Card. |")
print("| Enter 8 - Pay Student's Fee. |")
print("| Enter 9 - Generate Student Wise Fees Receipt. |")
print("| Enter 10 - Generate Student's Fee Receipt. |")
print("| Enter 11- Exit. |")
print("| |")
print("| Enter 0(ZERO) - Help. |")
print("| |")
choice=int(input("PLEASE ENTER YOUR CHOICE : "))
if choice==1:
newStudent()
elif choice==2:
displayStudent()
elif choice==3:
updateStudent()
elif choice==4:
transferStudent()
elif choice==5:
marksStudent()
elif choice==6:
reportCardAllStudent()
elif choice==7:
reportCardOneStudent()
elif choice==8:
feeStudent()
elif choice==9:
feeReceiptAllStudent()
elif choice==10:
feeReceiptOneStudent()
elif choice==11:
myConnection.close()
break
elif choice==0:
15
helpMe()
else:
print("Sorry ,May Be You Are Giving Me Wrong Input, Please Try Again !!! ")
else:
print("Check Your MYSQL Connection First !!! ")
# END OF THE PROJECT
16
Output of the Project
Finally, we conclude our work and present the output of the Project.
NEW ADMISSION
17
NEW ADMISSION
18
NEW ADMISSION
19
DISPLAY STUDENT'S DATA
20
UPDATE STUDENTS'S DATA
21
ISSUE TRANSFER CERTIFIFCATE
22
ADD STUDENT'S MARKS DETAIL
23
GENERATE ALL STUDENT'S REPORT CARD
24
GENERATE STUDENT WISE REPORT CARD
25
PAY STUDENT'S FEE
26
GENERATE STUDENT WISE FEES RECEIPT
27
GENERATE STUDENT'S FEE RECEIPT
28
FEE RECEIPT
29
HELP
30
MYSQL DATABASE AND TABLES USED IN
THIS PROJECT
DATABASE
TABLE STRUCTURE
31
TABLE STRUCTURE
BACKEND DATA GENERATED THROUGH
SOFTWARE
32
References
1. python.org
2. Code Academy
3. tutorialsPoint.com
4. PythonChallenge.com
5. Google’s Python Class
6. LearnPython.org
7. layak.in
33
END
OF
PROJECT
34