S. D.
Adarsh Vidyalaya
SECTOR-47, SOHNA ROAD, GURUGRAM
A PROJECT REPORT
ON
“STUDENT MANAGEMENT SYSTEM”
FOR
AISSCE: 2023-24
[AS A PART OF THE COMPUTER SCIENCE (083)]
SUBMITTED BY:
Student’s Name: Omkarita singh
Board Roll No.:
UNDER THE GUIDANCE OF:
MS. HARSHA MONGA
PGT COMPUTER SCIENCE
CERTIFICATE
I hereby certify that the Project/Dissertation
titled "Student Management System," completed by
Omkarita Singh in Class XII for the academic
session 2023-24, is an original work. It was
conducted under my direct supervision and
guidance for the partial fulfillment of CBSE Board
Examination 2023-24. To the best of my knowledge,
no part of this work has been submitted for any
other examination, and it is not a component of any
other course undergone by the candidate.
………………………… ……………………………..
Signature of Student Signature of Teacher/Guide
Name: Omkarita singh Name: Ms. Harsha Monga
Roll No.: Designation: PGT (Comp.Sc.)
……….…………………
Signature of Principal
Name: MS. KALPNA KASHYAP
ACKNOWLEDGEMENT
I conducted this Project as part of my XII-Computer Science
course, utilizing my knowledge and experiences gained through
study and class work. Developing a software system is intricate
and time-consuming, demanding systematic study, insightful
vision, and a professional approach to design and development.
Throughout this process, the support, guidance, and well-wishes
of experienced individuals become invaluable.
I express my sincere thanks to my teacher, Ms. Harsha Monga, for
her guidance and support. I am grateful to our Principal, Ms.
Kalpna Kashyap, for dedicating valuable time and providing
moral support during the development of this software.
Special appreciation goes to my friends whose valuable
suggestions significantly contributed to the success of this
project.
Omkarita singh
Class XII
Table of Contents
Sno. Description Page no.
1. Preface 1
2. Introduction 2
3. Objective 3
4. Use of Technology 4-5
5. Problem Definition and Analysis 6
6. System Requirements 7
7. System Design and Development 8-9
8. Source Code 10-21
9. Output 22-33
10. Reference 34
1. Preface
The Student Management System detailed in this project
represents a holistic approach to digitizing and enhancing the
student information management process. The initiative arises
from the imperative to modernize and optimize conventional
student record-keeping systems, capitalizing on the progress in
computer science and database management.
This project is geared towards mitigating the shortcomings of
manual student information systems by introducing a robust,
database-driven solution. Leveraging SQL databases and
programming techniques, the system aims to furnish a user-
friendly interface for students while providing an efficient
backend system for educational administrators.
The core objective of this project is to design and implement a
scalable and secure student management system that simplifies
the information handling process, ensures real-time updates on
student records, and facilitates seamless management of
academic and personal data. The project encompasses
considerations for transaction handling, data integrity, and
system performance to guarantee a reliable and responsive
platform for both users and administrators.
The project's culmination involved a thorough examination of
existing student management systems, principles of database
design, and the application of various computer science concepts
to ensure a comprehensive and operational solution.
This documentation chronicles the evolution from
conceptualization to realization, elucidating the methodologies,
challenges, solutions, and the overarching architecture of the
Student Management System developed.
2. Introduction
In our contemporary, technology-driven era, the management of student-
related operations often involves copious paperwork and administrative
challenges. To enhance the efficiency of educational institutions, the
implementation of a dedicated software system is paramount.
This software is designed to streamline various student management
processes, simplifying tasks such as enrollment and information tracking.
It captures crucial student details, including:
Student Name
Age
Gender
Contact Number
Enrollment Date
Course Preferences
Academic Records, etc.
Traditionally, students would have to visit administrative offices or
contact educational institutions directly for enrollment and information
updates. However, this software empowers students to effortlessly manage
these tasks online, providing a user-friendly interface for enrollment,
course selection, and access to personalized academic information.
By adopting this software, educational institutions can significantly reduce
administrative burdens. It simplifies the enrollment process, offering
students a seamless experience, while allowing academic staff to
efficiently manage student records, course allocations, and academic
preferences.
This adaptation draws inspiration from the functionalities and advantages
of Hotel Management Systems, emphasizing the efficient capture of guest
information, streamlined reservation processes, and improved overall
efficiency for both students and educational staff.
3. Objective
The Student Management System is designed to:
1. Enhance Student Experience:
Prioritize creating a positive academic experience.
2. Optimize Operational Efficiency:
Streamline administrative processes for cost-effective
operations.
3. Provide Real-time MIS Reports:
Support data-driven decision-making for academic
administrators.
4. Facilitate Departmental Coordination:
Foster seamless communication among different
academic departments.
5. Enable Centralized Management:
Offer a centralized platform for top management
control.
The system efficiently manages student enrollment, course
allocation, and academic records. Developed using Python and
MySQL, it follows a structured and sequential model for
systematic development.
4. Use of Technology
1. MYSQL
MySQL is a relational DBMS that can run virtually all platforms, including
Linux, Unix and Windows.
Popular for web-based applications and online publishing, MySQL is a part
of open-source enterprise stack LAMP (Linux, Apache, MySQL, PHP).
MySQL is a freely available open source RDBMS that uses Structured
Query Language (SQL). It is down-loadable from site www.mysql.org.
MySQL is fast, reliable, scalable alternative to many of the commercial
RDBMs available today. MySQL provides you with a rich set of features
that support a secure environment for storing, maintaining, and accessing
data.
MySQL was created and supported by MySQL AB, a company based in
Sweden. This company is now a subsidiary of Sun Microsystems, which
holds the copyright to most of the codebase. On April 20th, 2009 Oracle
Corp., which develops and sells the proprietary Oracle database,
announced a deal to acquire Sun Microsystems.
SQL provides many different types of commands used for different
purposes. SQL commands can be divided into following categories:
i. Data Definition Language (DDL)
ii. Data Manipulation Language (DML)
iii. Transaction Control Language (TCL)
iv. Session Control Commands
System Control Commands
2. Python
Python is an interpreted, object-oriented, high-level programming
language with dynamic semantics. Its high-level built in data structures,
combined with dynamic typing and dynamic binding; make it very attractive
for Rapid Application Development, as well as for use as a scripting or glue
language to connect existing components together.
Python's simple, easy to learn syntax emphasizes readability and therefore
reduces the cost of program maintenance. Python supports modules and
packages, which encourages program modularity and code reuse.
The Python interpreter and the extensive standard library are available in
source or binary form without charge for all major platforms, and can be
freely distributed.
Often, programmers fall in love with Python because of the increased
productivity it provides. Debugging Python programs is easy: a bug or bad
input will never cause a segmentation fault. Instead, when the interpreter
discovers an error, it raises an exception.
A source level debugger allows inspection of local and global variables,
evaluation of arbitrary expressions, setting breakpoints, stepping through
the code a line at a time, and so on.
The debugger is written in Python itself, testifying to Python's introspective
power. On the other hand, often the quickest way to debug a program is to
add a few print statements to the source: the fast edit-test-debug cycle
makes this simple approach very effective.
5. Problem Definition and Analysis
The hardest part of building a software system is deciding precisely what to build.
No other part of the conceptual work is as difficult as establishing the detailed
technical requirement. Defining and applying good, complete requirements are hard
to work, and success in this endeavor has eluded many of us. Yet, we continue to
make progress.
Problem definition describes the what of a system, not how. The quality of a software
product is only as good as the process that creates it. Problem definition is one of the
most crucial steps in this creation process. Without defining a problem, developers
do not know what to build, customers do not know what to expect, and there is no
way to validate that the built system satisfies the requirement.
Problem definition and Analysis is the activity that encompasses learning about the
problem to be solved, understanding the needs of customer and users, trying to find
out who the user really is, and understanding all the constraints on the solution. It
includes all activities related to the following:
Identification and documentation of user’s needs.
Creation of a document that describes the external behavior and the association
constraints that will satisfies those needs.
Analysis and validation of the requirements documents to ensure consistency,
completeness, and feasibility
Evolution of needs.
After the analysis of the functioning of a Instant Messenger, the proposed
System is expected to do the following: -
To provide a user friendly, Graphical User Interface (GUI) based integrated
and centralized environment for computerized Instant Messenger.
The proposed system should maintain all the records, and should generate the
required reports and information when required.
To provide efficient and secured Information storage, flow and retrieval
system, ensuring the integrity and validity of records.
To provide graphical and user-friendly interface to interact with a centralized
database based on client-server architecture.
To identify the critical operation procedure and possibilities of simplification
using modern IT tools and practices.
6. System Requirements
SOFTWARE REQUIREMENTS: -
Operating System : Windows 7
Platform : Python IDLE 3.7
Database : MySQL SERVER 5.1
Languages : Python
HARDWARE REQUIREMENTS: -
Processor : Dual Core and above
Hard Disk : 40 GB
Ram : 1024 MB
Note: For Python-MySQL connectivity, the following data have been
used: -
Host- 127.0.0.1, user- root, password- kr@2006, database- railway_reservation
7. System Design & Development
7.1 Database Design:
An important aspect of system design is the design of data storage structure. To begin with
a logical model of data structure is developed first. A database is a container object which
contains tables, queries, reports and data validation policies enforcement rules or contraints
etc. A logical data often represented as a records are kept in different tables after reducing
anomalies and redundancies. The goodness of data base design lies in the table structure
and its relationship.
7.2 Table Creation:
1. STUDENT_INFO Table:
8. Source Code
# Establish MySQL connection
import mysql.connector
mydb = mysql.connector.connect(host="localhost",user="root",password="12345",database="student")
# Create cursor object to execute queries
cursor = mydb.cursor()
# Function to add a new student with additional details
def add_student_with_details(admission_number, roll_number, name, age, grade, email,
phone_number):
sql = "INSERT INTO student_info VALUES ('{}', '{}', '{}', '{}', '{}', '{}', '{}')".format(admission_number,
roll_number, name, age, grade, email, phone_number)
cursor.execute(sql)
mydb.commit()
print("Student added successfully")
# Function to display all students
def display_student():
cursor.execute("SELECT * FROM student_info")
students = cursor.fetchall()
for student in students:
print(student)
# Function to search for a student by name
def search_student(admission_number):
cursor.execute(f"SELECT * FROM student_info WHERE name = {int(admission_number)}")
student = cursor.fetchone()
if student:
print("Student found:", student)
else:
print("Student not found")
# Function to update student information with additional details by admission number
def update_student_with_details(admission_number, roll_number, name, age, grade, email,
phone_number):
sql = "UPDATE student_info SET roll_number = '{}', name = '{}', age = '{}', grade = '{}', email = '{}',
phone_number = '{}' WHERE admission_number = '{}'"
cursor.execute(sql.format(roll_number, name, age, grade, email, phone_number, admission_number))
mydb.commit()
print("Student information updated successfully")
# Function to delete a student by admission number
def delete_student(admission_number):
cursor.execute(f"DELETE FROM student_info WHERE admission_number = {admission_number}")
mydb.commit()
print("Student deleted successfully")
# Function to count the number of students
def count_students():
cursor.execute("SELECT COUNT(*) FROM student_info")
count = cursor.fetchone()[0]
print(f"Total number of students: {count}")
# Function to display statistics (highest and lowest grades)
def display_statistics():
cursor.execute("SELECT MAX(grade), MIN(grade) FROM student_info")
extremes = cursor.fetchone()
highest_grade, lowest_grade = extremes
print(f"Highest Grade: {highest_grade}")
print(f"Lowest Grade: {lowest_grade}")
# Function to display students by a specific grade
def display_students_by_grade(grade):
cursor.execute(f"SELECT * FROM student_info WHERE grade = {grade}")
students = cursor.fetchall()
if students:
print(f"Students in grade {grade}:")
for student in students:
print(student)
else:
print(f"No students found in grade {grade}")
# Function to count students in a specific grade
def count_students_by_grade(grade):
cursor.execute(f"SELECT COUNT(*) FROM student_info WHERE grade = {grade}")
count = cursor.fetchone()[0]
print(f"Total number of students in grade {grade}: {count}")
# Menu for user interaction
while True:
print("\nStudent Management System")
print("1. Add Student")
print("2. Display Students")
print("3. Search Student")
print("4. Update Student Information")
print("5. Delete Student")
print("6. Display Statistics")
print("7. Display Students by Grade")
print("8. Count Students by Grade")
print("9. Exit")
choice = input("Enter your choice: ")
if choice == '1':
admission_number = input("Enter student's admission number: ")
roll_number = input("Enter student's roll number: ")
name = input("Enter student's name: ")
age = int(input("Enter student's age: "))
grade = input("Enter student's grade: ")
email = input("Enter student's email: ")
phone_number = input("Enter student's phone number: ")
add_student_with_details(admission_number, roll_number, name, age, grade, email,
phone_number)
elif choice == '2':
print("\nList of Students:")
display_students()
elif choice == '3':
admission_number = input("Enter student admission number to search: ")
search_student(name)
elif choice == '4':
admission_number = input("Enter student admission number to update: ")
roll_number = input("Enter student's new roll number: ")
name = input("Enter student's new name: ")
age = int(input("Enter student's new age: "))
grade = input("Enter student's new grade: ")
email = input("Enter student's new email: ")
phone_number = input("Enter student's new phone number: ")
update_student_with_details(admission_number, roll_number, name, age, grade, email,
phone_number)
elif choice == '5':
admission_number = input("Enter student admission number to delete: ")
delete_student(admission_number)
elif choice == '6':
display_statistics()
elif choice == '7':
grade = input("Enter grade to display students: ")
display_students_by_grade(grade)
elif choice == '8':
grade = input("Enter grade to count students: ")
count_students_by_grade(grade)
elif choice == '9':
print("Exiting...")
break
else:
print("Invalid choice. Please enter a valid option.")
9. Output
Student Management System
1. Add Student
2. Display Students
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 1
Enter student's admission number: 105
Enter student's roll number: 5
Enter student's name: kartik
Enter student's age: 17
Enter student's grade: 93
Enter student's email: kartik@xyz.com
Enter student's phone number: 92837377XX
Student added successfully
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 2
List of Students:
(101, 1, 'aditaya', 17, '87', 'adi@xyz.com', '992773XXX')
(102, 2, 'bhannu', 18, '86', 'bhanu@xyz.com', '99282772XX')
(103, 3, 'karan', 18, '97', 'karma@xyz.com', '844748605X')
(104, 4, 'rohit', 17, '92', 'gigachad@xyz.com', '93737377XX')
(105, 5, 'kartik', 17, '93', 'kartik@xyz.com', '92837377XX')
(111, 1, 'adity', 17, '98', 'adity123@xyz.com', '99207XXXXX')
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 3
Enter student admission number to search: 111
Student not found
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 4
Enter student admission number to update: 104
Enter student's new roll number: 6
Enter student's new name: rohit
Enter student's new age: 18
Enter student's new grade: 94
Enter student's new email: gigachad@xyz.com
Enter student's new phone number: 883838XXX
Student information updated successfully
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 5
Enter student admission number to delete: 111
Student deleted successfully
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 6
Highest Grade: 97
Lowest Grade: 86
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 7
Enter grade to display students: 97
Students in grade 97:
(103, 3, 'karan', 18, '97', 'karma@xyz.com', '844748605X')
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 8
Enter grade to count students: 94
Total number of students in grade 94: 1
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 2
List of Students:
(101, 1, 'aditaya', 17, '87', 'adi@xyz.com', '992773XXX')
(102, 2, 'bhannu', 18, '86', 'bhanu@xyz.com', '99282772XX')
(103, 3, 'karan', 18, '97', 'karma@xyz.com', '844748605X')
(104, 6, 'rohit', 18, '94', 'gigachad@xyz.com', '883838XXX')
(105, 5, 'kartik', 17, '93', 'kartik@xyz.com', '92837377XX')
Student Management System
1. Add Student
2. Display Student
3. Search Student
4. Update Student Information
5. Delete Student
6. Display Statistics
7. Display Students by Grade
8. Count Students by Grade
9. Exit
Enter your choice: 9
Exiting...
10. Reference
In order to work on this project titled Student Management System ,the following books and
literature are refered by me during the various phases of development of the project.
(1) http://www.mysql.org/
(2) http://www.python.org/
(3) Computer Science for class XII
-by Sumita Arora & Preeti Arora
Other than the above-mentioned books, the suggestions and supervision of my teacher and my class
experience also helped me to develop this software project.