INVESTIGATORY
PROJECT
SCHOOL FEE BILL
MANAGEMENT
SUBMITTED BY :-
YASH BAGHEL XII-B
CERTIFICATE OF
AUTHENTICITY
This is to certify that the project titled “School Fee
Management System” submitted by Yash Baghel,
student of class XII - B, has been completed under my
supervision and guidance. This project is an original
piece of work carried out by the student and has not
been submitted to any other institution or examination
prior to this.
The project is undertaken as part of the requirements
for the Computer Science curriculum for the
academic session 2025-2026
I hereby confirm that the work done is authentic to the
best of my knowledge and belief.
Head Teacher External
Internal
Examiner
Examiner
Date : / /26
Department of : Computer Science
Principal
ACKNOWLEDGEMENTS
I would like to express my heartfelt gratitude to my
respected teacher, Mr. Ashok Goel, for their constant
guidance, encouragement, and invaluable support
throughout the completion of this project. Their
expertise, constructive feedback, and inspiring
suggestions have helped me at every stage of this
work, from planning to execution. I am deeply thankful
for the time and effort they devoted to explaining the
concepts clearly and helping me overcome challenges.
I would also like to extend my sincere thanks to our
Principal,
Mrs. Suhasini K. Nath, for providing a conducive
learning environment and necessary facilities that
made this project possible. My gratitude also goes to
my school, D.A.V Public School, for the opportunity to
work on this project, which enhanced my knowledge
and practical understanding of the subject.
Lastly, I am thankful to my parents and friends for their
constant support, motivation, and assistance during
this project. Without the guidance and encouragement
of all these individuals, the successful completion of
this work would not have been possible.
PROJECT IDEA
The School Fee Management System is a software
application developed using Python and MySQL to
manage and automate the process of handling school
fee transactions. In traditional systems, fee
management is often done manually, which can lead to
errors, delays, and data mismanagement. This project
aims to digitalize the entire process, making it faster,
more accurate, and user-friendly. The system allows
administrators to maintain student details, track fee
payments, generate receipts, and view outstanding
dues, all within a centralized database.
Aim of the Project
The primary aim of the School Fee Management System
is to simplify and automate the fee collection
process, ensuring:
Accuracy in maintaining student fee records
Time efficiency by reducing manual work
Easy access to student payment history and
pending dues
Secure and organized storage of financial
records
OBJECTIVE
The primary objective of the School Fee
Management System is to create an efficient and
reliable application for managing school fee
transactions digitally. The system is designed to
address the limitations of manual record-keeping and
provide a secure, user-friendly, and automated solution.
The objectives of this project can be summarized as
follows:
1. Automation of Fee Management
To eliminate manual processes of fee collection and
record-keeping.
To automate the entire process from student
registration to fee receipt generation.
2. Accuracy in Record Maintenance
To maintain precise and error-free records of all
student payments.
To minimize human errors in calculations and data
entry.
3. Efficient Data Storage and Retrieval
To store all student and fee-related data in a
structured MySQL database.
To enable quick retrieval of data such as payment
history, pending dues, and fee reports.
4. Transparency and Accountability
To ensure transparent transactions by maintaining
detailed records.
To provide an easily accessible history of payments
for auditing and verification.
5. Tracking of Pending Fees
To identify students with outstanding dues and
notify administrators.
To generate reports for pending and collected fees
for better financial management.
6. Quick Receipt Generation
To generate and print fee receipts instantly after
payment.
To maintain a digital copy of each receipt for future
reference.
7. User-Friendly Interface
To develop a simple and easy-to-use interface for
administrators and staff.
To minimize the need for technical expertise for
operating the system.
8. Time and Cost Efficiency
To reduce the time spent on manual fee
management tasks.
To lower administrative costs by reducing
paperwork and manual labor.
9. Security and Data Integrity
To protect sensitive student and financial data
using secure database practices.
To ensure that only authorized users can access
and modify records.
INTRODUCTION
The School Fee Management System is a software
application developed using Python and MySQL to
simplify and automate the process of managing school
fees. Manual fee management often results in errors,
delays, and inefficiency. This project provides a digital
solution that ensures accuracy, saves time, and offers a
user-friendly interface for school administrators. It helps
in maintaining student records, tracking payments, and
generating reports in an organized manner.
Key Highlights
Developed using Python (frontend) and MySQL
(backend database).
Manages student details and fee records
securely.
Automates fee collection, receipt generation,
and pending fee tracking.
Provides quick data retrieval and report
generation for analysis.
Aims to reduce manual effort and eliminate
calculation errors.
Designed to be user-friendly, requiring minimal
technical knowledge.
Need for a Better Fee
Management System
Managing school fees manually is a time-consuming
and error-prone process that often leads to inefficiency,
data loss, and mismanagement of records. As schools
handle large amounts of student data and financial
transactions, a modern and reliable system is essential
to ensure accuracy, speed, and security. A better fee
management system is necessary to overcome these
limitations and improve administrative efficiency.
Why is a Better System Needed?
Eliminate Manual Errors – Manual calculations and
record-keeping often lead to mistakes.
Save Time and Effort – Automates repetitive tasks
like tracking payments and generating receipts.
Ensure Data Accuracy – Maintains correct records
of fees paid, pending dues, and receipts.
Secure Data Storage – Protects sensitive financial
and student data from loss or theft.
Quick Access to Information – Allows easy retrieval
of records and reports when needed.
Transparency and Accountability – Maintains a
clear record of all transactions for auditing.
Better Financial Planning – Provides detailed
reports for analysis and future planning.
Adaptation to Digital Era – Replaces outdated
manual systems with modern technology.
Supports Scalability – Handles increasing student
numbers without performance issues.
Improves Communication – Enables notifications
and updates for parents and school staff
Hardware and Software
Requirements
To successfully develop and run the School Fee
Management System, certain hardware and software
resources are required. These ensure the system
operates efficiently without performance issues.
Hardware Requirements
Processor: Intel Core i3 or higher
RAM: Minimum 4 GB (8 GB recommended for
better performance)
Hard Disk: At least 500 GB free space
Monitor: 15” or higher resolution display
Keyboard & Mouse: Standard input devices
Software Requirements
Operating System: Windows 10 / 11 or Linux
Programming Language: Python 3.10 or above
Database: MySQL 5.7 or above
Database Connector: MySQL Connector for Python
IDE: PyCharm / VS Code / IDLE
Additional Libraries:
o mysql-connector-python (for database
connectivity)
o tkinter (for GUI, if using)
Other Tools:
o XAMPP / WAMP (optional, for MySQL server)
o Printer Drivers (if printing receipts)
CODE
[Link]
import pymysql
# Connect to MySQL (change username/password if needed
and creates all the necessary database and tables)
conn = [Link](
host="localhost",
user="root",
password="yourpassword"
)
cur = [Link]()
# Create database
[Link]("CREATE DATABASE IF NOT EXISTS school_fee")
[Link]("USE school_fee")
# Create table
[Link]("""
CREATE TABLE IF NOT EXISTS students(
admission_no INT PRIMARY KEY,
name VARCHAR(50),
class VARCHAR(10),
section VARCHAR(5),
fee INT,
fee_status VARCHAR(20),
due_fee INT
);
""")
print("Database and table created successfully!")
[Link]()
[Link]()
[Link] (the main programe)
import pymysql
conn = [Link](
host="localhost",
user="root",
password="yourpassword",
database="school_fee"
)
cur = [Link]()
# ---------------------------- FUNCTIONS -----------------------------
def add_student():
adm = int(input("Enter admission number: "))
name = input("Enter name: ")
cls = input("Enter class: ")
sec = input("Enter section: ")
fee = int(input("Enter total fee: "))
fee_status = input("Enter fee status (paid/unpaid): ")
due = int(input("Enter due fee: "))
sql = "INSERT INTO students VALUES (%s,%s,%s,%s,%s,%s,
%s)"
[Link](sql, (adm, name, cls, sec, fee, fee_status, due))
[Link]()
print("Student added successfully!\n")
def remove_student():
adm = int(input("Enter admission number to remove: "))
sql = "DELETE FROM students WHERE admission_no=%s"
[Link](sql, (adm,))
[Link]()
print("Student removed!\n")
def view_student():
adm = int(input("Enter admission number: "))
sql = "SELECT * FROM students WHERE admission_no=%s"
[Link](sql, (adm,))
data = [Link]()
if data:
print("\n--- Student Details ---")
print("Admission No:", data[0])
print("Name:", data[1])
print("Class:", data[2])
print("Section:", data[3])
print("Fee:", data[4])
print("Fee Status:", data[5])
print("Due Fee:", data[6])
print()
else:
print("No student found!\n")
def view_all_students():
[Link]("SELECT * FROM students")
data = [Link]()
print("\n--- All Students ---")
for row in data:
print(row)
print()
def list_fee_delay():
[Link]("SELECT * FROM students WHERE
fee_status='unpaid'")
data = [Link]()
print("\n--- Students With Unpaid Fees ---")
for row in data:
print(row)
print()
def update_fee_status():
adm = int(input("Enter admission number: "))
status = input("Enter new fee status (paid/unpaid): ")
due = int(input("Enter updated due fee: "))
sql = "UPDATE students SET fee_status=%s, due_fee=%s
WHERE admission_no=%s"
[Link](sql, (status, due, adm))
[Link]()
print("Fee status updated!\n")
# ---------------------------- MAIN MENU -----------------------------
while True:
print("""
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
""")
choice = int(input("Enter your choice: "))
if choice == 1:
add_student()
elif choice == 2:
remove_student()
elif choice == 3:
view_student()
elif choice == 4:
view_all_students()
elif choice == 5:
list_fee_delay()
elif choice == 6:
update_fee_status()
elif choice == 7:
print("Exiting...")
break
else:
print("Invalid choice! Try again.\n")
[Link]()
OUTPUT
SCREEN
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
Enter your choice: 1
Enter admission number: 4
Enter name: Pakhi
Enter class: 12
Enter section: B
Enter total fee: 100000
Enter fee status (paid/unpaid): unpaid
Enter due fee: 100000
Student added successfully!
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
Enter your choice: 3
Enter admission number: 2
--- Student Details ---
Admission No: 2
Name: Aryan
Class: 12
Section: B
Fee: 1000
Fee Status: unpaid
Due Fee: 1000
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
Enter your choice: 4
--- All Students ---
(1, 'Yash', '12', 'B', 1000, 'paid', 0)
(2, 'Aryan', '12', 'B', 1000, 'unpaid', 1000)
(3, 'Tanvi', '12', 'C', 1000, 'paid', 0)
(4, 'Pakhi', '12', 'B', 100000, 'unpaid',
100000)
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
Enter your choice: 2
Enter admission number to remove: 3
Student removed!
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
Enter your choice: 5
--- Students With Unpaid Fees ---
(2, 'Aryan', '12', 'B', 1000, 'unpaid', 1000)
(4, 'Pakhi', '12', 'B', 100000, 'unpaid',
100000)
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
Enter your choice: 6
Enter admission number: 2
Enter new fee status (paid/unpaid): paid
Enter updated due fee: 0
Fee status updated!
===== SCHOOL FEE MANAGEMENT =====
1. Add Student
2. Remove Student
3. View Student (by Admission No)
4. View All Students
5. List Fee Delay (unpaid students)
6. Update Fee Status
7. Exit
Enter your choice: 7
Exiting...
Future Scope of the
Project
The School Fee Management System, in its current
form, provides an efficient way to handle school fee
records and payment processes. However, there is
significant potential for future enhancements to make
the system more robust, user-friendly, and
technologically advanced. These improvements can
enhance automation, security, and accessibility.
Future Enhancements
Online Payment Integration – Enable students or
parents to pay fees through online gateways like
UPI, debit/credit cards, or net banking.
SMS/Email Notifications – Send automatic
reminders and confirmations for fee payments and
due dates.
Mobile Application – Develop an Android/iOS app
for easier access and convenience for parents and
school staff.
Multi-Branch Support – Extend the system to
manage multiple branches of a school or an entire
school group.
Advanced Reporting – Include graphical
dashboards, charts, and analytics for better
financial insights.
Role-Based Access Control – Provide different user
roles (Admin, Accountant, Principal) with specific
permissions.
Data Backup and Cloud Storage – Implement
automatic backup and cloud integration for secure
data storage.
Fee Installment and Scholarship Management –
Add features to manage partial payments,
discounts, and scholarships.
Integration with ERP Systems – Connect the system
with full school management ERP for complete
automation.
AI-Based Predictive Analysis – Predict future fee
collections, defaulters, and financial trends using AI
tools.
BIBLIOGRAPHY
Sumita Arora
Sultan Chand
[Link]
[Link]
THANK YOU