Guru Harkrishan Public
School
Kalkaji, New Delhi
PROJECT FILE
Computer Science (083)
2024-2025
Aditya
Gupta
12th A
1. Introduction to School
Management System
2. Objectives of the Project
3. Python Overview
4. Hardware and Software Requirements
5. Description of Modules and Functions
Used
6. System Features and Functionality
7. Key Concepts Demonstrated
8. Limitations of the System
9. Sample Output and Screenshots
10. Data Files Structure
11. Troubleshooting Common Issues
12. Conclusion
13. Bibliography
This is to certify that Aditya Gupta of Class-
12, has successfully completed the project
entitled as for the
session
2025-26, in partial fulfillment of the
requirements of the Senior School Certificate
Examination-2026.
The project was completed to satisfaction
and has been submitted as part of the
practical examination for Computer Science
(083).
I would like to express my special
thanks of gratitude to my teacher Mr.
Avash Kumar as well as our principal
Mam. Mrs. Bhavjeet Kaur who gave me
the golden opportunity to do this
wonderful project on the topic
, which also helped me
in doing a lot of research and I came to
know about so many new things I am
really thankful to them.
Secondly, I would also like to thank my
parents and friends who helped me a lot
in finalizing this project within the
limited time frame.
Aditya gupta
A is a software
application that allows students to apply
for admission to a school, track their
application status, and manage relevant
student data. This system can simplify the
administrative tasks of a school, enhance
efficiency, and improve the experience for
both students and administrative staff.
Demonstrate mastery of file handling operations
including reading, writing, and updating CSV files
Show proficiency with Python data structures
particularly lists and dictionaries for organizing
information
Illustrate function modularity where each function
performs a specific, well-defined task
Implement input validation and error handling to
create robust programs that handle
unexpected situations gracefully
Apply string manipulation techniques for case-
insensitive searches and data formatting
Utilize date and time handling through the datetime
module for automatic date capture and
validation
Streamline administrative tasks that would be
time- consuming and error-prone when done
manually
Provide automatic calculation of attendance
percentages eliminating manual computation
errors
Enable quick information retrieval through
search functionality without scrolling
through complete lists
Transform raw data into meaningful insights
through statistical reporting capabilities
Create a user-friendly interface accessible to
users with limited technical expertise through
menu-driven design
Maintain data integrity through duplicate ID
prevention and comprehensive validation checks
Support decision-making by identifying patterns
such as students with low attendance requiring
intervention
provides comprehensive functionality for
reading from and writing to CSV files, with
[Link] creating objects that iterate over file
lines and [Link] creating objects that format
and write data properly
creates ASCII tables from data
structures, producing beautifully formatted
tables with borders and proper alignment using
various style options through the tablefmt
parameter
serves as the system initialization
routine, checking whether required CSV files exist
and creating them with appropriate headers if
missing
requests input from users and
validates that input is not empty, implementing
a validation loop that continues prompting until
non-empty values are provided
maintains data integrity by
preventing duplicate identification numbers, reading
through all records to verify uniqueness before
allowing new entries
orchestrates the complete
process of adding new students, validating ID
uniqueness, collecting required information,
automatically capturing admission dates, and
appending records to the CSV file
retrieves and displays all
student records in a formatted table with total
count, separating headers from data rows and
handling empty file scenarios
demonstrates data
filtering capabilities through case-insensitive
matching on both student IDs and names,
collecting and displaying all matching
records with result counts
allows modification of
existing records by reading entire files into memory,
locating specific
records, accepting new values, and writing modified
data back to files
removes records while
implementing safety mechanisms through confirmation
prompts, filtering out specified records and
providing feedback on operation success
parallel student
management functions for maintaining teaching
staff information separately
handles recording
attendance for all students on specified dates,
validating date formats and attendance inputs
while creating complete audit trails
generates comprehensive
statistics for specific students including total days,
present and absent counts, attendance percentages,
and warnings for low attendance
provides aggregate statistics
grouped by class, calculating average attendance
percentages across all students in each class
serves as the main control center,
displaying organized options, accepting user
choices, calling appropriate functions, and running
in continuous loops until exit
Adding new students captures unique identification
numbers, names, classes, and automatically
records admission dates
Viewing all students presents complete rosters in
formatted tables with clear column headers and
total enrollment counts
Searching for students allows quick retrieval
without scrolling through long lists using case-
insensitive matching on IDs or names
Updating student information addresses changing
data like class promotions or name corrections while
preserving IDs and admission dates
Deleting students handles record removal with
confirmation requirements to prevent accidental
data loss
Adding teachers maintains separate databases for
teaching staff with unique identification numbers,
names, and subject specializations
Viewing teachers provides complete rosters with
subject assignments clearly displayed
Preventing duplicate teacher IDs ensures each
teacher has unique identifiers in the system
Marking attendance efficiently presents each
student's name for simple present or absent
input with validation
Recording each attendance entry captures dates,
student IDs, and statuses for complete historical
tracking
Validating dates ensures all entries follow consistent
YYYY- MM-DD formats for proper sorting and
comparison
Generating student reports transforms raw
records into meaningful statistics including
attendance percentages and warnings for low
attendance
Creating class-wise summaries provides aggregate
views helping identify systemic issues or patterns
across different classes
Organizing functionality into logical menu groups
makes features easy to find and access
Providing visual feedback symbols offers
immediate understanding of operation results
through checkmarks for success, crosses for errors,
information symbols for neutral messages, and
warnings for situations requiring caution
Implementing confirmation prompts for
destructive operations prevents mistakes rather
than just handling them after occurrence
Displaying current values when updating records
helps users verify they are modifying correct
records
Opening files for reading demonstrates retrieving
previously stored information
Using append mode for writing shows adding new
data while preserving existing content
Employing write mode for updating illustrates
replacing file contents when making changes to
existing records
Utilizing with statements for file operations
demonstrates proper resource management and
automatic cleanup
Implementing error handling for file
operations shows awareness that files might
not exist or be inaccessible
Working with [Link] and [Link] objects
handles the complexity of parsing and formatting
CSV data
Separating headers from data rows shows
understanding of CSV file structure and consistent
handling
Processing structured data in text format
demonstrates practical data storage
techniques
Using lists extensively stores collections of
records in memory with nested list structures
representing tabular data
Employing list comprehensions provides concise
ways to filter and transform data
Utilizing dictionaries groups related data by keys
such as grouping students by class names
Organizing programs into functions
demonstrates the principle of modularity where
each function performs one well-defined task
Implementing function parameters and return values
shows how functions communicate with each
other
Separating concerns through distinct function
sets for different management areas makes code
easier to modify
Ensuring non-empty inputs through validation loops
prevents blank entries in databases
Validating dates using try-except catches parsing
errors and ensures format consistency
Checking for duplicate IDs represents complex
validation requiring comparison against existing
data
Removing whitespace with strip method cleans user
inputs
Converting to lowercase with lower method
enables case- insensitive searches
Normalizing inputs with upper method ensures
consistency in stored values
Formatting outputs with f-strings creates readable
displays with embedded variable values
Using if-elif-else chains in menu functions directs
program flow based on user choices
Employing conditional expressions provides
compact ways to choose values based on
conditions such as avoiding division by zero
Implementing while loops creates continuous
program operation until users choose to exit
Using for loops iterates over sequences of records
when processing files or marking attendance
Combining loops with CSV readers provides efficient
ways to process each file record
Calculating attendance percentages
demonstrates arithmetic operations with
proper order of operations
Using sum function with generator expressions
counts records matching conditions
efficiently
Implementing try-except blocks throughout
code demonstrates defensive
programming
Anticipating potential problems creates more
robust programs providing better user
experiences when issues occur
CSV files do not support concurrent access,
risking data corruption if multiple users access
simultaneously
Lack of transactional capabilities means partial writes
could occur if programs crash during file
operations
Reading entire files into memory becomes
impractical with very large numbers of records
Plain text storage in CSV files allows anyone with file
access to view or modify contents directly
No authentication mechanism allows anyone with
computer access to run programs and modify all
data
Absence of different permission levels means all
users have complete access regardless of their
roles
No audit trail tracking prevents determining who
made what changes and when
Lack of data encryption leaves sensitive
information vulnerable to unauthorized
access
No automatic backup mechanism risks permanent
data loss if files are accidentally deleted or
corrupted
Inability to restore previous versions of records
means incorrect changes cannot be reversed
No version control makes it impossible to track how
records changed over time
Search functionality only supports ID or name
searches without advanced filtering
capabilities
Basic reporting requires new functions for each
type of analysis needed
No flexible query interface forces users to work
within predefined search and report options
Cannot perform complex queries combining multiple
criteria without additional development
Console-based interface is less intuitive than
graphical user interfaces
No operation cancellation capability forces
users to complete operations even if
mistakes are noticed
Lack of undo functionality makes all operations
immediately permanent
Users must remember option numbers or repeatedly
refer to menus for navigation
Limited validation beyond duplicate ID checking
allows questionable data values
No constraints preventing orphaned records if related
data is deleted
Cannot enforce referential integrity between related
records
No standardization of data formats for fields
like class names
Requiring attendance marking for all students
at once prevents individual student
processing
No ability to update attendance after initial marking
makes corrections impossible
No support for different types of absences such as
excused versus unexcused
No handling of partial days when students are
present for only some periods
SOURCE CODE
Problem indicates Python is not installed or not
added to system PATH
Solution requires reinstalling Python
ensuring "Add Python to PATH" is checked
during installation
Problem shows tabulate library is not installed
Solution requires running pip install
tabulate from Command Prompt
Problem occurs when special symbols
appear as question marks
Solution involves running program from
terminal supporting UTF-8 such as Visual
Studio Code integrated terminal
Problem happens when directory lacks
write permissions or files are open in
another program
Solution requires closing programs that
might have CSV files open and ensuring write
permissions exist
Problem suggests CSV files might be
corrupted or improperly formatted
Solution involves deleting corrupted files to
allow program to create fresh versions or
manually fixing formatting issues
Problem occurs when attendance status
is not recorded exactly as "Present" with
capital P
Solution requires checking that attendance
marking saves values in correct case-
sensitive format
BIBLIOGRAPHY