Certificate
This is to certify that I, __________ of class XII (Science),
student of Guru Nanak Higher Secondary School, have
successfully completed the research and practical work on the
below-mentioned project under the valuable guidance and
supervision of __________ (Subject Teacher) during the
academic year 2025–26.
The project titled “Fee Management” has been carried out with
sincere effort and dedication as a part of the partial fulfillment
of the Computer Science practical requirements prescribed by
the CBSE curriculum. This project reflects the understanding,
analytical ability, and practical knowledge gained during the
course, and it also demonstrates the student’s creative and
technical approach towards the subject.
_____________ ______________
Signature of Subject Teacher Signature of External
Examiner
1
Acknowledgement
I would like to express my sincere gratitude to Ranjit Bahadur
Sir, my Computer Science teacher, for his constant guidance,
valuable suggestions, and continuous encouragement
throughout the completion of this project titled “Fee
Management System.” His expert supervision and patient
support have helped me understand the practical application of
Python and MySQL in developing real-world solutions.
I am also deeply thankful to Capt. Dr. Sumit Kaur, Principal of
Guru Nanak Higher Secondary School, for providing an excellent
academic environment, modern facilities, and the motivation to
explore technology beyond textbooks.
This project has been prepared as part of the CBSE Class 12
Computer Science curriculum for the academic session 2025–26.
Working on the Fee Management System has enhanced my
technical knowledge and allowed me to apply theoretical
concepts of programming and database management in a
practical and meaningful way.
Lastly, I would like to express my heartfelt thanks to my parents
and friends for their constant support, encouragement, and
inspiration throughout the course of this project.
2
Index
[Link]. Topic
1 Abstract
2 Introduction
3 Need of the Project
4 Objective of the Project
5 Scope of the Project
6 Existing System
7 Proposed System
8 System Requirement
9 System Design- Data Flow
Diagram(Level 0)
10 System Design- Data Flow
Diagram(Level 1)
11 Database Management
12 SQL Table Creation
13 Python-MySQL Connection
14 Add Student Program
15 Add Fee Record Program
16 Update Fee Program
17 Search Record Program
18 Menu Driven Program
19 Sample Input Screen
3
20 Sample Output Screen
21 Exception Handling
22 Security Features
23 Advantages of the System
24 Limitations of the System
25 Future Scope
26 Learning Outcomes
27 Conclusion
28 Bibliography
4
Abstract
The Fee Management System is a software-based project
designed to digitalize the process of maintaining student
fee records in a school or coaching institute. The system
stores student details, fee structure, amount paid, and
pending balance.
It is developed using Python programming language with
MySQL as backend database. This system helps reduce
paperwork, improve accuracy, and provide quick access
to information.
5
Introduction
Fee management plays a very important role in every
educational institution such as schools, colleges and
coaching centres. Each student is required to pay
different types of fees like admission fee, tuition fee,
transport fee, activity fee, etc., and all these payments
must be recorded properly. Traditionally, fee records are
maintained manually in registers or notebooks. The
accountant writes the amount paid, pending balance and
receipt details by hand. As the number of students
increases, it becomes very difficult to maintain these
records accurately.
The manual system has many disadvantages. Searching
for an old record takes a lot of time. There are chances of
calculation mistakes, overwriting, missing entries or torn
pages. Maintaining yearly records becomes bulky and
requires a lot of storage space. Preparing reports such as
total fees collected or pending dues also becomes time-
6
consuming. If the register is damaged or lost, the entire
data is lost permanently.
To overcome these problems, a computerized Fee
Management System is required. In this project, a
software application has been developed using Python as
the front-end programming language and MySQL as the
database backend. This system stores student details
such as admission number, name, class, contact details
along with total fees, amount paid and balance amount.
The operator can easily add new students, update fee
payments and view pending [Link] system provides
quick search facilities, accurate calculations and secure
storage of data. Records can be retrieved instantly
without going through pages of registers. It reduces
paperwork and increases efficiency. The project also
helps in understanding important programming concepts
like database connectivity, modular programming,
conditional statements and loops.
Thus, the Fee Management System aims to digitalize and
simplify the fee handling process of educational
institutions and make it more reliable, organized and
user-friendly.
7
NEED OF THE PROJECT
Reasons the system is needed:
Manual fee records are time-consuming
Errors occur in calculations
Hard to track pending fees
Searching records takes time
Reports cannot be generated quickly
Hard to maintain large data
Hence, an automated system is required
8
Objective
The main objective of developing the Fee
Management System is to replace the traditional
manual method of maintaining fee records with a
computerized and automated system. In most
educational institutions, fee-related information is
stored in registers, which is difficult to maintain,
update and retrieve. This project aims to design a
simple, user-friendly and efficient system that can
handle all fee-related operations smoothly and
accurately.
The specific objectives of the project are:
To digitalize fee records so that student details, fee
structure, amount paid and pending dues are stored
safely in a database rather than handwritten registers.
To minimize human errors such as mis-calculations,
overwriting, duplication of entries and loss of data
which commonly occur in manual systems.
9
To make searching and retrieving records faster so
that any student’s fee details can be viewed instantly
using admission number or name.
To maintain updated and accurate records by
allowing easy modification and updating of fee
payments whenever required.
To provide proper calculation of balances and dues,
reducing dependence on manual calculations and
ensuring correctness.
To improve the efficiency of the institution’s
administrative process by saving time, reducing
paperwork and simplifying fee monitoring.
To generate fee-related information whenever
required, such as the amount paid by a student or
pending fees.
To enhance data security and privacy by storing
information digitally in a database instead of fragile
paper records.
To develop programming and logical thinking skills
through the use of Python and MySQL connectivity.
10
Overall, the objective of the Fee Management System
is to create a reliable, accurate and organized software
tool that simplifies the fee management process and
supports smooth functioning of educational
institutions.
11
SCOPE OF PROJECT
This project can be used in:
Schools
Coaching institutes
Training centers
It can be upgraded to support:
Online payment
SMS alerts
Receipt printing
12
EXISTING SYSTEM
(Expanded Version)
In most educational institutions, fee records are still
maintained manually using registers or paper files.
Whenever a student deposits the fee, the clerk writes
the amount, date and receipt number in the register.
The balance is calculated manually and updated each
time a payment is made. Separate registers are often
maintained for different classes or fee types, which
makes the process lengthy and complicated.
This manual system has several drawbacks. Searching
for an old record becomes very time-consuming,
especially when the number of students is large.
There is always a chance of calculation errors,
overwriting, misplaced entries or torn and damaged
pages. Preparing reports such as the list of students
with pending fees, total collection in a month, or
class-wise fee details requires a lot of effort and
repeated calculations. If the register is lost or
destroyed, the entire data is permanently lost.
13
Thus, although the manual fee management system is
simple to use, it is inefficient, error-prone and
unreliable in the long run. This clearly shows the
need for a computerized Fee Management System to
make the process faster, safer and more accurate.
14
PROPOSED SYSTEM
The proposed computerized Fee Management
System will:
Store data in database
Provide quick search
Generate reports
Maintain accuracy
Provide security
15
SYSTEM REQUIREMENTS
Hardware
PC/Laptop
4GB RAM
Keyboard & Mouse
Software
Windows / Linux
Python 3+
MySQL / MariaDB
MySQL Connector
16
SYSTEM DESIGN – DATA
FLOW DIAGRAM
System design refers to the process of planning how
the different parts of the project will work together.
Before actually developing the Fee Management
System, it is important to understand the flow of
data within the system. A Data Flow Diagram (DFD)
is used to represent how data moves between the
user, the processes and the database in a very
simple and clear way.
The Level-0 DFD, also known as the Context
Diagram, gives an overall view of the entire system
as a single process. In this diagram, the Fee
Management System is shown as one main
processing unit. The users of the system, such as
the fee clerk or administrator, interact with the
system by entering student details and fee
information. The data entered by the user is then
stored in the database. Similarly, whenever the user
17
wants to check fee details or generate reports, the
required information is retrieved from the database
and displayed back to the user.
So, at this level, the system mainly performs three
basic functions:
Takes input from the user (student details and fee
details)
Processes and stores the data in the database
Provides output back to the user (such as balance,
paid amount or fee status)
This diagram helps in understanding the complete
system in a simple way without going into internal
details. It shows that the Fee Management System
acts as a bridge between the user and the database,
ensuring smooth and accurate flow of information.
18
The Level-1 Data Flow Diagram
This shows the internal working of the Fee
Management System. The user enters student
details which are stored in the Student Database
through Process P1. When the fee is deposited, the
payment is recorded using Process P2. The system
then calculates the remaining balance through
Process P3. Finally, the user can view fee reports
and pending dues using Process P4. All data is
stored securely in the database and retrieved
whenever required.
19
Database Management
Table: Student
Field Type Key
admno INT PK
name VARCHAR
class VARCHAR
phone VARCHAR
Table:fee
Field Type
admno INT
Total_fee INT
paid INT
balance INT
20
Sql table creation
CREATE DATABASE feeproject;
USE feeproject;
CREATE TABLE student(
admno INT PRIMARY KEY,
name VARCHAR(50),
class VARCHAR(20),
phone VARCHAR(15)
);
CREATE TABLE fee(
admno INT,
total_fee INT,
paid INT,
balance INT,
FOREIGN KEY (admno) REFERENCES student(admno)
);
21
22
23
Python My sql
connection:
import [Link] as sql
con = [Link](
host="localhost",
user="root",
passwd="",
database="feeproject"
)
cur = [Link]()
24
25
Add student program
def add_student():
adm = int(input("Admission No: "))
nm = input("Name: ")
cls = input("Class: ")
ph = input("Phone: ")
q = "INSERT INTO student
VALUES(%s,%s,%s,%s)"
[Link](q,(adm,nm,cls,ph))
[Link]()
print("Student Added")
26
27
Add Fee Record
def add_fee():
adm = int(input("Admission No: "))
total = int(input("Total Fee: "))
paid = int(input("Paid Amount: "))
bal = total - paid
q = "INSERT INTO fee
VALUES(%s,%s,%s,%s)"
[Link](q,(adm,total,paid,bal))
[Link]()
print("Fee Record Added")
28
29
Update Payment
def update_fee():
adm = int(input("Admission No: "))
extra = int(input("Payment: "))
[Link]("SELECT paid,total_fee FROM fee
WHERE admno=%s",(adm,))
p,t = [Link]()
np = p + extra
nb = t - np
[Link]("UPDATE fee SET
paid=%s,balance=%s WHERE admno=%s",
(np,nb,adm))
[Link]()
print("Payment Updated")
30
31
Search Record
def search():
adm = int(input("Admission No: "))
[Link]("SELECT * FROM student WHERE
admno=%s",(adm,))
print([Link]())
[Link]("SELECT * FROM fee WHERE
admno=%s",(adm,))
print([Link]())
32
33
Menu Driven Programme
while True:
print("\n1 Add Student")
print("2 Add Fee")
print("3 Update Fee")
print("4 Search")
print("5 Exit")
ch = int(input("Enter choice: "))
if ch==1: add_student()
elif ch==2: add_fee()
elif ch==3: update_fee()
elif ch==4: search()
else: break
34
35
Sample Input Screen
36
Sample Output Screen
37
Exception Handling
Exception handling is an important part of any
program because errors can occur at any stage of
execution. These errors may be caused by invalid
input, wrong data type, missing files, logical
mistakes, or unexpected system behavior. If such
errors are not handled properly, the program may
stop suddenly, crash, or produce wrong results.
Therefore, exception handling ensures that the
program continues to run smoothly even when an
error occurs.
In this project, exception handling has been used to
detect and manage runtime errors in a safe way.
Instead of allowing the program to terminate, the
system displays meaningful error messages to the
user. This helps the user understand what went
wrong and prevents confusion. It also protects the
program from abnormal termination and data
corruption.
38
For example, when the user enters an invalid value
or leaves a required field empty, the program
identifies this situation as an exception. Instead of
crashing, it guides the user to re-enter the correct
information. Similarly, if there is an issue like
division by zero, file not found, or incorrect data
format, the exception handling mechanism ensures
that the error is handled gracefully.
Overall, exception handling improves the reliability,
stability, and user-friendliness of the project. It
ensures that unexpected errors do not interrupt the
normal functioning of the software and that the
user experience remains smooth. This makes the
system more secure and efficient for real-time use.
39
Security Features
Password-protected database
Limited access
Backup recommended
40
Advantages
Fast
Reliable
Accurate
Organized
Paperless
Limitation
Needs electricity
Requires computer
Database corruption risk
Needs training
41
FUTURE SCOPE
Online payment gateway
SMS reminders
Cloud backup
Mobile app
LEARNING
OUTCOMES
You learned:
Python programming
MySQL database
Connectivity
Problem solving
Documentation
42
Conclusion
The Fee Management System developed in this
project shows how computer applications can make
record keeping faster, easier, and more accurate. It
helps manage student details, calculate fees, store
payment information, and reduce the chances of
manual errors. While creating this project, I learnt
important programming concepts such as loops,
conditionals, functions, file handling, and exception
handling. It also improved my logical thinking and
problem-solving skills.
Although this is a simple, student-level project, it
still proves that automation can greatly support
school administration. There is also scope to
enhance this system in the future by adding
features like better security, online payment
options, and multi-user access. Overall, this project
has been a valuable learning experience and has
strengthened my interest in Computer Science.
43
Bibliography
NCERT, Computer Science (Class XII),
National Council of Educational Research and
Training, New Delhi.
Sumita Arora, Computer Science with Python –
Class XII, Dhanpat Rai & Co.
V. Rajaraman, Fundamentals of Computers,
Prentice Hall of India.
“Introduction to Database Management System,”
GeeksforGeeks,
[Link]
Accessed December 2025.
“SQL Tutorial,” W3Schools,
[Link]
Accessed December 2025.
“Software Development Life Cycle (SDLC),”
TutorialsPoint,
[Link]
.
44