0% found this document useful (0 votes)
57 views27 pages

CS Project

This document is a project report submitted by Ankan Karmakar of Durgapur Public School on a School Management System. It includes sections on certificate, acknowledgment, declaration, project description, system requirements, and coding details. The coding section shows SQL queries to create tables to store student, employee, fees, attendance, and school data, along with Python code to connect to the database and implement functions for student, employee, fees and attendance management.

Uploaded by

karmakaramulya46
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)
57 views27 pages

CS Project

This document is a project report submitted by Ankan Karmakar of Durgapur Public School on a School Management System. It includes sections on certificate, acknowledgment, declaration, project description, system requirements, and coding details. The coding section shows SQL queries to create tables to store student, employee, fees, attendance, and school data, along with Python code to connect to the database and implement functions for student, employee, fees and attendance management.

Uploaded by

karmakaramulya46
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/ 27

DURGAPUR PUBLIC

SCHOOL
VILLAGE & P.O- BEKIDANGA, P.S- ITAHAR, DISTT- U/DINAJPUR

A PROJECT REPORT ON
“SCHOOL MANAGEMENT SYSTEM”

SUBMITTED TO SUBMITTED BY:


MR. ARITRA SAHA ANKAN KARMAKAR
P.G.T.(COMP. SC)
CERTIFICATE

This is to certify that ANKAN KARMAKAR of class


XII of DURGAPUR PUBLIC SCHOOL has done his/her
project on SCHOOL MANAGEMENT SYSTEM under my
supervision. He/She has taken interest and has shown at
most sincerity in completion of this project.

I certify this Project up to my expectation & as per


guidelines issued by CBSE, NEW DELHI.

Internal Examiner External Examiner

Principal
ACKNOWLEDGMENT

It is with pleasure that I acknowledge my sincere gratitude


to our teacher, ARITRA ROY who taught and undertook
the responsibility of teaching the subject computer science.
I have been greatly benefited from his classes.

I am especially indebted to our Principal PARTHA PRATIM


SAMANTA who has always been a source of
encouragement and support and without whose inspiration
this project would not have been a successful I would like
to place on record heartfelt thanks to him.

Finally, I would like to express my sincere appreciation for


all the other students of my batch for their friendship & the
fine times that we all shared together.

DECLARATION
I hereby declare that the project work entitled SCHOOL
MANAGEMENT SYSTEM submitted to the CBSE, New
Delhi, is a record of an original work done by me under the
guidance of ARITRA ROY, PGT Computer Science,
Durgapur Public School, and this project work is submitted
in the partial fulfillment of the requirements for computer
science practical examination of CBSE AISSCE 2024. The
information and findings of this project is not presented
anywhere else.
PROJECT DESCRIPTION

This Python code is your all-in-one school management


tool. Add students, update info, issue certificates – it
handles it all. Manage staff too, from onboarding to
updates and departures. This code can deal with lot of
school functionalities such as School fees, Attendance,
School details, and lot others.

Behind the scenes, it seamlessly connects to a secure


"schoolmgt" database, storing and retrieving data
efficiently. It shows existing records before changes and
confirms critical actions like deletions.

The menu guides you step-by-step, and a warm "Thank


you" tops off your session. This code has been designed
and developed to keep distractions and unwanted
obstructions away, leaving you more time to focus on what
matters most.
SYSTEM REQUIREMENTS

Hardware
- Personal Computer
- Pen Drive

Software
- PYTHON (3.12.1)
- MySQL Database (8.0.35)
- MySQL Python Connector (8.2.0)
CODING

------------ MySQL Part -------------


create database schoolmgt;
create table st
(admno int primary key,
name varchar(20),
class varchar(20),
city varchar(20),
dob date);
create table emp
(empno int primary key,
name varchar(20),
job varchar(20),
hiredate date);
create table fees
(admno int primary key,
fees float,
monthunpaid varchar(20));
create table attendance
(admno int primary key,
name varchar(20),
present int,
totalpresent int,
per float);
create table school
(id integer primary key,
sname varchar(20),
noofstudent int,
noofemployee int,
nooflabs int);
-------- PYTHON Part --------
import mysql.connector as sq
#PROGRAM FOR DATABASE CONNECTIVITY
def connect():
db=sq.connect(user='root', password='1233', host='localhost',
database='schoolmgt')
if db.is_connected==False:
print("notconnected")
return db

#PROGRAM FOR USING SCHOOL MANAGEMENT

def select():
print("-----------WELCOME TO SCHOOL MANAGEMENT--------------")
print("1.STUDENT MANAGEMENT")
print("2.EMPLOYEE MANAGEMENT")
print("3.DISPLAY FEE")
print("4.ATTENDANCE MANAGEMENT")
print("5.DISPLAY SCHOOL DETAILS")

ch=int(input("enter your choice(1-5):-"))


if ch==1:
print("\n-----------WELCOME TO STUDENT MANAGEMENT-------------\n")
print("a.NEW ADMISSION")
print("b.UPDATE DETAILS")
print("c.ISSUE TC")
print("\nEXISTING RECORDS ARE\n")
def displayst():
con=connect()
cur=con.cursor()
cur.execute("select * from st")
for i in cur.fetchall():
admno=i[0]
name=i[1]
clas=i[2]
city=i[3]
dob=i[4]
print("(admno=%d,name=%s,class=%s,city=%s,dob=%s)"%
(admno,name,clas,city,dob))
displayst()
c=input("enter your choice(a-c):-")
if c=='a':
def insertst():
name=input("enter student name:-")
admno=int(input("enter admission number:-"))
clas=input("enter class:-")
city=input("enter city:-")
dob=input("enter date of birth(year-month-time):-")
con=connect()
cur=con.cursor()
cur.execute("insert into
st(name,admno,class,city,dob)values('%s','%d','%s','%s','%s')"%
(name,admno,clas,city,dob))
con.commit()

insertst()
print("MODIFIED RECORDS ARE")
displayst()

elif c=='b':
def updatest():
con=connect()
cur=con.cursor()
clas=input("ENTER NEW CLASS:-")
admno=int(input("ENTER ADMISSION NO. :-"))
cur.execute("update st set class=%s where admno=%d"%
(clas,admno))
con.commit()

updatest()
print("\nMODIFIED DETAILS ARE:-\n")
displayst()
elif c=='c':
def deletest():
con=connect()
cur=con.cursor()
admno=int(input("ENTER ADMISSION NO. TO BE DELETED:-"))
ans=input("ARE YOU SURE YOU WANT TO DELETE(y/n):-")
if ans=='y' or ans=='Y':
cur.execute("delete from st where admno=%d"%(admno))
con.commit()

deletest()
print("\nMODIFIED DETAILS ARE:-\n")
displayst()

elif ch==2:
print("/n------------------WELCOME TO EMPLOYEE------------------/n")
print("a. NEW EMPLOYEE")
print("b. UPDATE STAFF DETAILS")
print("c. DELETE EMPLOYEE")
e=input("enter your choice(a-c)")
print("\nEXISTING RECORDS ARE\n")
def displayemp():
con=connect()
cur=con.cursor()
cur.execute("select * from emp")
for i in cur.fetchall():
empno=i[0]
name=i[1]
job=i[2]
hiredate=i[3]
print("(empno=%d,name=%s,job=%s,hiredate=%s)"%
(empno,name,job,hiredate))

displayemp()
if e=='a':
def insertemp():
empno=int(input("enter empno:-"))
name=input("enter employee name:-")
job=input("enter designation:-")
hiredate=input("enter hiredate(year-month-time):-")
con=connect()
cur=con.cursor()
cur.execute("insert into
emp(empno,name,job,hiredate)values('%d','%s','%s','%s')"%
(empno,name,job,hiredate))
con.commit()

insertemp()

def displayemp():
con=connect()
cur=con.cursor()
cur.execute("select * from emp")
for i in cur.fetchall():
empno=i[0]
name=i[1]
job=i[2]
hiredate=i[3]
print("(empno=%d,name=%s,job=%s,hiredate=%s)"%
(empno,name,job,hiredate))

print("\nMODIFIED RECORDS ARE\n")


displayemp()
elif e=='b':
def updateemp():
con=connect()
cur=con.cursor()
job=input("ENTER NEW JOB:-")
empno=int(input("ENTER EMPLOYEE NO:-"))
cur.execute("update emp set job='%s' where empno=%d"%
(job,empno))
con.commit()

updateemp()
print("\nMODIFIED RECORDS ARE\n")
displayemp()
elif e=='c':
def deleteemp():
con=connect()
cur=con.cursor()
d=int(input("ENTER EMPNO TO BE DELETED:-"))
ans=input("ARE YOU SURE YOU WANT TO DELETE RECORD(y/n):-")
if ans=='y' or ans=='Y':
cur.execute("delete from emp where empno=%d"%(d))
con.commit()

deleteemp()
print("\nMODIFIED RECORDS ARE\n")
displayemp()

elif ch==3:
print("\n--------------WELCOME TO DISPLAY FEES------------------\n")
print("a.INSERT FEES")
print("b.UPDATE FEES")
print("c.EXEMPT FEES")
print("\n EXISTING RECORDS ARE:-\n")
def displayfee():
con=connect()
cur=con.cursor()
cur.execute("select * from fees")
for i in cur.fetchall():
admno=i[0]
fees=i[1]
monthunpaid=i[2]
print("(admno=%d,fees=%f,monthunpaid=%s)"%
(admno,fees,monthunpaid))

displayfee()

f=input("ENTER YOUR CHOICE(a-c):-")


if f=='a':
def insertfee():
admno=int(input("ENTER ADMISSION NO. :-"))
fees=float(input("ENTER AMOUNT OF FEES TO BE PAID:-"))
monthunpaid=input("ENTER MONTH OF WHICH FEES TO BE PAID:-")
con=connect()
cur=con.cursor()
cur.execute("insert into fees(admno,fees,monthunpaid) values
('%d','%f','%s')"%(admno,fees,monthunpaid))
con.commit()

insertfee()
print("\nMODIFIED RECORDS ARE:-\n")
displayfee()

elif f=='b':
def updatefee():
month=input("ENTER MONTH TO BE UPDATED:-")
admno=int(input("ENTER ADMISSION NO.:-"))
con=connect()
cur=con.cursor()
cur.execute("update fees set monthunpaid='%s'where admno=%d"%
(month,admno))
con.commit()

updatefee()
print("\nMODIFIED RECORDS ARE\n")
displayfee()

elif f=='c':
def deletefee():
admo=int(input("ENTER ADMISSION NO.:-"))
a=input("ENTER ARE YOU SURE YOU WANT TO EXEMPT FEE(y/n):-")
con=connect()
cur=con.cursor()
if a=='Y' or a=='y':
cur.execute("delete from fees where admno=%d"%(admo))
con.commit()

deletefee()
print("\nMODIFIED RECORDS ARE\n")
displayfee()

elif ch==4:
print("\n------------------WELCOME TO ATTENDANCE
MANAGEMENT------------------\n")
print("a.INSERT DETAILS")
print("b.UPDATE DETAILS")
print("c.DELETE DETAILS")
print("\nEXISTING DETAILS ARE:-")
def displayatt():
con=connect()
cur=con.cursor()
cur.execute("select * from attendance")
for i in cur.fetchall():
admno=i[0]
name=i[1]
present=i[2]
totalpresent=i[3]
per=i[4]
print("(admno=%d,name=%s,present=%d,totalpresent=%d,per=%f)"%
(admno,name,present,totalpresent,per))
displayatt()
a=input("enter your choice")
if a=='a':
def insertatt():
admno=int(input("ENTER ADMISSION NO.:-"))
name=input("ENTER STUDENT NAME:-")
present=int(input("ENTER CLASS ATTENDED DURING THE YEAR:-"))
totalpresent=int(input("ENTER TOTAL CLASS ATTENDED DURING THE
YEAR:-"))
per=float(input("ENTER PERCENTAGE:-"))
con=connect()
cur=con.cursor()
cur.execute("insert into
attendance(admno,name,present,totalpresent,per) values
('%d','%s','%d','%d','%f')"%(admno,name,present,totalpresent,per))
con.commit()

insertatt()
print("\nMODIFIED DETAILS ARE:-\n")
displayatt()

elif a=='b':
def updateatt():
present=int(input("ENTER CLASS ATTENDED DURING THE YEAR:-"))
per=float(input("ENTER PERCENTAGE:-"))
admno=int(input("ENTER ADMISSION NO.:-"))
con=connect()
cur=con.cursor()
cur.execute("update attendance set present='%d',per='%f'
where admno='%d'"%(present,per,admno))
con.commit()

updateatt()
print("\nMODIFIED DETAILS ARE:-\n")
displayatt()

elif a=='c':
def deleteexam():
admno=int(input("ENTER ADMISSION NO.:-"))
f=input("ARE YOU SURE YOU WANT TO DELETE(y/n):-")
con=connect()
cur=con.cursor()
if f=='y' or f=='Y':
cur.execute("delete from attendance where admno='%d'"%
(admno))
con.commit()

deleteexam()
print("\nMODIFIED DETAILS ARE:-\n")
displayatt()

elif ch==5:
print("\n------------------WELCOME TO DISPLAY SCHOOL RELATED
DETAILS------------------\n")
print("a.INSERT DETAILS")
print("b.UPDATE DETAILS")
print("c.DELETE DETAILS")
print("\nEXISTING DETAILS ARE:-\n")
def displaysc():
con=connect()
cur=con.cursor()
cur.execute("select * from school")
for i in cur.fetchall():
sid=i[0]
sname=i[1]
noofstudent=i[2]
noofemployee=i[3]
nooflabs=i[4]
print("(id=%d,sname='%s',noofstudent=%d,noofemployee=
%d,nooflabs=%d)"%(sid,sname,noofstudent,noofemployee,nooflabs))

displaysc()
s=input("ENTER YOUR CHOICE")
if s=='a':
def insertsc():
sid=int(input("ENTER SCHOOL ID:-"))
sname=input("ENTER SCHOOL NAME:-")
noofstudent=int(input("ENTER NUMBER OF STUDENT:-"))
noofemployee=int(input("ENTER NUMBER OF EMPLOYEE:-"))
nooflabs=int(input("ENTER NUMBER OF LABS:-"))
con=connect()
cur=con.cursor()
cur.execute("insert into
school(id,sname,noofstudent,noofemployee,nooflabs)values(%d,'%s',%d,%d,%d)"%
(sid,sname,noofstudent,noofemployee,nooflabs))
con.commit()

insertsc()
print("\nMODIFIED DETALIS ARE:-\n")
displaysc()
elif s=='b':
def updatesc():
noofstudent=int(input("ENTER NUMBER OF STUDENT:-"))
noofemployee=int(input("ENTER NUMBER OF EMPLOYEE:-"))
nooflabs=int(input("ENTER NUMBER OF LABS:-"))
sid=int(input("ENTER SCHOOL ID:-"))
con=connect()
cur=con.cursor()
cur.execute("update school set noofstudent=%d,noofemployee=
%d,nooflabs=%d where id=%d"%(noofstudent,noofemployee,nooflabs,sid))
con.commit()
updatesc()
print("\nMODIFIED DETALIS ARE:-\n")
displaysc()

elif s=='c':
def deletesc():
sid=int(input("ENTER SCHOOL ID:-"))
con=connect()
cur=con.cursor()
cur.execute("delete from school where id=%d"%(sid))
con.commit()
deletesc()
print("\nMODIFIED DETALIS ARE:-\n")
displaysc()
d=input("DO YOU WANT TO USE THE DATABASE AGAIN(y/n)")
if d=='y'or d=='Y':
select()
elif d=='n' or d=='N':
print("\n------------------THANKS FOR VISITING SCHOOL
MANAGEMENT------------------\n")

select()
OUTPUT
Inserting a Data

Inserting the data of a newly admitted student in the Student


Management section of the School Management System.
Inserting the data of a newly recruited teaching faculty in the
Employee Management section of the School Management
System.
Inserting the fees of the newly admitted student in Fees Records.
Inserting the attendance of a student into the Attendance
Management Section of the School Management System.
Inserting the information about the school to display.
Updating an Existing Data :

Updating the data of an existing teaching faculty of the school and changing job
from PGT Computer Science to PGT IT without altering the rest of his details.

Updating the data of an existing student of the school and changing his class from
12 to 11 without altering the rest of his details.
Deleting a Data :

Deleting the data of a student who took a TC from the school.

Deleting the data of a teacher who left the school.


LIMITATIONS

• Limited Access and Security: The code lacks a login


system, allowing anyone with access to the machine to view
and potentially modify sensitive data. This raises concerns
about confidentiality and unauthorized access.

• User Interface: While the menu-driven interface is user-


friendly, it's confined to text-based interactions. A more visual
interface (GUI) would enhance user experience and streamline
navigation.

• Error Handling: The code doesn't seem to have robust error


handling mechanisms. Unexpected inputs or database errors
could lead to crashes or data loss.

• Reporting and Analytics: The code focuses on data


management but lacks comprehensive reporting or analytical
features. This limits its ability to generate insights or track
trends, which are crucial for school management.

• Scalability: As the school grows, the code might face


performance issues due to its reliance on a single database
and a text-based interface. It might not be able to handle
large volumes of data or multiple users efficiently.
FUTURE PROSPECTS

These are areas where further development can be done.


Enhancing Functionality:
• Data-driven insights: Build powerful reports and analytics to
track performance, attendance, and finances, aiding decision-
making.
• Secure access control: Implement logins and access levels
for different users, safeguarding sensitive data.
• Modern interface: Develop a user-friendly GUI for easy
navigation and intuitive data management.
Expanding Scope:
• Beyond students: Integrate modules for curriculum, library,
and communication, creating a holistic school management
system.
• Automated processes: Automate notifications, reminders,
and reports for streamlined operations.
• Financial control: Track expenses, income, and generate
budgets for financial transparency and sustainability.

Technical Advancements:

• Cloud-based future: Migrate to a cloud platform for


improved accessibility, scalability, and security.
• Data fortress: Implement robust data encryption and
security measures to protect student and staff information.
• Intelligent insights: Explore AI and ML potential to glean
insights and optimize school management.
BIBLIOGRAPHY

Websites:
1. W3Schools (SQL Tutorials): https://www.w3schools.com/sql/
2. Real Python (MySQL Database Tutorial):
https://realpython.com/python-mysql/
3. TutorialsPoint (School Management System in Python):
https://data-flair.training/blogs/python-school-students-
management-system/
Books:
1. “Computer Science with Python” – Sumita Arora
2. “Computer Science for class 12” - NCERT

You might also like