Student Management System
Student Management System
PROJECT REPORT ON
STUDENT MANAGEMENT SYSTEM
ROLL NO :
NAME : Harpreet Kaur, Jasmeen kaur,Armanpreet Kaur
CLASS : XII
SUBJECT : Information Practices
SUB CODE : 065
1
Bhai Mastan Singh Public School, Sri Muktsar Sahib
CERTIFICATE
External: (Mrs.Monika)
PGT {IP}
Name: _______________
Signature:
Principal
2
TABLE OF CONTENTS [ T O C ]
01 ACKNOWLEDGEMENT 04
02 INTRODUCTION 06
04 PROPOSED SYSTEM 07
07 FLOW CHART 18
08 SOURCE CODE 21
09 OUTPUT 24
10 TESTING 28
11 INSTALATION PROCEDURE 31
13 BIBLIOGRAPHY 34
3
ACKNOWLEDGEMENT
4
PROJECT ON STUDENT MANAGEMENT SYSTEM
INTRODUCTION
PROPOSED SYSTEM
5
competition where not to wise saying “to err is human” no
longer valid, it’s outdated to rationalize your mistake. So,
to keep pace with time, to bring about the best result without
malfunctioning and greater efficiency so to replace the
unending heaps of flies with a much sophisticated hard disk of
the computer.
6
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
7
For example, initial project activities might be
designated as request, requirements-definition, and planning
phases, or initiation, concept-development, and planning
phases. End users of the system under development should be
involved in reviewing the output of each phase to ensure the
system is being built to deliver the needed functionality.
INITIATION PHASE
8
the project.
9
models, data models, and a concept of operations. This
phase explores potential technical solutions within the
context of the business need.
It may include several trade-off decisions such as the
decision to use COTS software products as opposed to
developing custom software or reusing software
components, or the decision to use an incremental
delivery versus a complete, onetime deployment.
Construction of executable prototypes is encouraged to
evaluate technology to support the business process. The
System Boundary Document serves as an important reference
document to support the Information Technology Project
Request (ITPR) process.
The ITPR must be approved by the State CIO before the
project can move forward.
PLANNING PHASE
10
The planning phase is the most critical step in
completing development, acquisition, and maintenance projects.
Careful planning, particularly in the early stages of a
project, is necessary to coordinate activities and manage
project risks effectively. The depth and formality of project
plans should be commensurate with the characteristics and
risks of a given project. Project plans refine the information
gathered during the initiation phase by further identifying
the specific activities and resources required to complete a
project.
A critical part of a project manager’ sjob is to
coordinate discussions between user, audit, security, design,
development, and network personnel to identify and document as
many functional, security, and network requirements as
possible. During this phase, a plan is developed that
documents the approach to be used and includes a discussion of
methods, tools, tasks, resources, project schedules, and user
input. Personnel assignments, costs, project schedule, and
target dates are established.
A Project Management Plan is created with components
related to acquisition planning, configuration management
planning, quality assurance planning, concept of operations,
system security, verification and validation, and systems
engineering management planning.
11
need or opportunity identified in the Initiation Phase. The
requirements that will be used to determine acceptance of the
system are captured in the Test and Evaluation Master Plan.
DESIGN PHASE
12
layouts, and system architectures. End users, designers,
developers, database managers, and network administrators
should review and refine the prototyped designs in an
iterative process until they agree on an acceptable design.
Audit, security, and quality assurance personnel should be
involved in the review and approval process. During this
phase, the system is designed to satisfy the functional
requirements identified in the previous phase. Since problems
in the design phase could be very expensive to solve in the
later stage of the software development, a variety of elements
are considered in the design to mitigate risk. These include:
13
DEVELOPMENT PHASE
14
Multiple levels of testing are performed, including:
IMPLEMENTATION PHASE
15
changes are identified, the system may re-enter the planning
phase.
16
START
DISPLAY
WELCOME NOTE
FLOW CHART
CONNECT TO DATABASE
CHECK
COURSES
TABLE (IS
IT EMPTY?)
NO
YES
17
WHILE TRUE ALWAYS EXECUTES
DISPLAY OPTIONS
YES
NO IF
OPTION == 1
YES
MANAGE STUDENTS
MENU
IF
NO
OPTION == 2
YES
MANAGE GRADES
MENU
18
NO
IF
OPTION == 3
YES
MANAGE GRADES
MENU
IF NO
OPTION == 4
YES
CLOSE CONNECTION
STOP
19
SOURCE CODE
import mysql.connector
import pandas as pd
import matplotlib.pyplot as plt
# Function Definitions
def print_welcome_note():
print("""
==============================================================
==================
WELCOME TO BUNNY'S STUDENT MANAGEMENT SYSTEM
==============================================================
==================
""")
def create_database_connection(password):
return mysql.connector.connect(host="localhost",
user="root", passwd=password, database="stud_manage")
if len(data) == 0:
courses_table(cursor, db)
else:
pass
20
cursor.execute("INSERT INTO COURSES VALUES (208,\"Data
Structures and Algorithm \")")
cursor.execute("INSERT INTO COURSES VALUES (215,\"Security
and Cyber Laws\")")
cursor.execute("INSERT INTO COURSES VALUES (211,\"Discrete
Mathematics\")")
cursor.execute("INSERT INTO COURSES VALUES (212,\"Software
Engineering\")")
cursor.execute("INSERT INTO COURSES VALUES
(213,\"Professional Skills and Ethics\")")
cursor.execute("INSERT INTO COURSES VALUES (214,\"Design
and Analysis of Algorithm\")")
db.commit()
def create_tables(cursor):
cursor.execute("CREATE TABLE IF NOT EXISTS students (id
INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")
cursor.execute("CREATE TABLE IF NOT EXISTS courses
(course_id INT PRIMARY KEY, course_name VARCHAR(255))")
cursor.execute("CREATE TABLE IF NOT EXISTS grades
(student_id INT, course_id INT, grade INT)")
21
def update_student(cursor, student_id, updated_data):
cursor.execute("SELECT ID FROM STUDENTS")
data = cursor.fetchall()
flag = 0
for s_id in data:
if str(s_id[0]) == student_id:
flag = 1
cursor.execute("UPDATE students SET name=%s,
age=%s WHERE id=%s", (updated_data['name'],
updated_data['age'], student_id))
print("\nUPDATED SUCCESSFULLY.")
if flag == 0:
print("\nINVALID STUDENT ID.")
22
print(df)
def list_all_students(cursor):
cursor.execute("SELECT * FROM students")
data = cursor.fetchall()
cols = ["ID", "NAME", "AGE"]
df = pd.DataFrame(data, columns = cols)
print("\n")
print(df)
return cursor.fetchall()
23
cursor.execute("UPDATE grades SET grade=%s WHERE
student_id=%s AND course_id=%s", (grade, student_id,
course_id))
print("\nUPDATED SUCCESSFULLY.")
if flag == 0:
print("\nINVALID STUDENT OR COURSE ID.")
def generate_report(cursor):
s_id = int(input("ENTER STUDENT ID:"))
cursor.execute("SELECT ID, NAME FROM STUDENTS")
stu_ids = cursor.fetchall()
flag = 0
for stu_id in stu_ids:
if stu_id[0] == s_id:
flag = 1
cursor.execute(f"SELECT C.COURSE_NAME, G.GRADE
from COURSES C, GRADES G WHERE C.COURSE_ID = G.COURSE_ID AND
G.STUDENT_ID = '{s_id}'")
data = cursor.fetchall()
if len(data) == 0:
print("\nSORRY... NO DATA.")
else:
df = pd.DataFrame(data, columns=['Course',
'Grade'])
print("\n\t\t" + stu_id[1].upper() + "\'s
REPORT")
print(df)
df.plot(kind='bar', x='Course', y='Grade')
plt.title(stu_id[1].upper())
plt.ylabel("GRADES")
plt.xlabel("COURSES")
plt.xticks(rotation=9, fontsize = 8)
plt.show()
24
if flag == 0:
print("\nINVALID STUDENT ID.")
def print_main_menu():
print("\nMain Menu")
print("1. Manage Students")
print("2. Manage Grades")
print("3. Generate Reports")
print("4. Exit")
def manage_students(cursor):
while True:
print("\n--- Manage Students ---")
print("1. Add Student")
print("2. Update Student")
print("3. Delete Student")
print("4. View Student Details")
print("5. List All Students")
print("6. Back to Main Menu")
25
elif choice == '4':
student_id = input("Enter student ID: ")
print("\nStudent Details:")
get_student_data(cursor, student_id)
def manage_grades(cursor):
while True:
print("\n--- Manage Grades ---")
print("1. Assign Grade")
print("2. Update Grade")
print("3. Back to Main Menu")
26
update_grade(cursor, student_id, course_id, grade)
print(f"Grade: {grade}")
elif choice == '3':
break
def main():
db_connection = create_database_connection("root") #
Replace with your actual password
cursor = db_connection.cursor(buffered = True)
create_tables(cursor)
check_courses(cursor, db_connection)
while True:
print_main_menu()
choice = input("\nEnter your choice: ")
if choice == '1':
manage_students(cursor)
elif choice == '2':
manage_grades(cursor)
elif choice == '3':
generate_report(cursor)
elif choice == '4':
print("Exiting the system. Goodbye!")
break
else:
print("Invalid choice, please try again.")
db_connection.commit()
db_connection.close()
if __name__ == "__main__":
main()
27
OUTPUT
28
29
30
31
TESTING
TESTING METHODS
Software testing methods are traditionally divided into
black box testing and white box testing. These two approaches
are used to describe the point of view that a test engineer
takes when designing test cases.
32
SPECIFICATION-BASED TESTING
The black box tester has no "bonds" with the code, and a
tester's perception is very simple: a code must have bugs.
Using the principle, "Ask and you shall receive," black box
testers find bugs where programmers don't. But, on the other
hand, black box testing has been said to be "like a walk in a
dark labyrinth without a flashlight," because the tester
doesn't know how the software being tested was actually
constructed.
That's why there are situations when (1) a black box
tester writes many test cases to check something that can be
tested by only one test case, and/or (2) some parts of the
back end are not tested at all. Therefore, black box testing
has the advantage of "an unaffiliated opinion," on the one
hand, and the disadvantage of "blind exploring," on the other.
33
WHITE BOX TESTING
34
INSTALATION PROCEDURE
Pre-Requisites :-
Installation :-
I) mysql.connector
II) matplotlib.
III) pandas
35
3. Open the files in any python editors and run it to
start and work on the software.
CAUTION :-
36
HARDWARE AND SOFTWARE REQUIREMENTS
SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
37
BIBLIOGRAPHY
By : Praveen M Jigajinni
3. Website: https://www.w3resource.com
***
38