STUDENT MANAGEMENT
SYSTEM
NOBLE PUBLIC SCHOOL, MANJERI
PROJECT REPORT
ON
CONTACT MANAGEMENT SYSTEM
(2024-2025)
Submitted in partial fulfillment of the requirements of
CBSE
CLASS-XII COMPUTER SCIENCE
UNDER THE GUIDANCE OF
MUHAMMED JAZEEL K.T
(FACULTY OF COMPUTER SCIENCE)
Submitted by:
SALMAN FARIZ C
CENTRAL BOARD SECONDARY EDUCATION
CERTIFICATE
This is to certify that the project work entitled
‘STUDENT MANAGEMENT SYSTEM’ is a bonafide
record of the original work done by Mr Salman Fariz C, Sahl
Muhammad Shafeek PV and Riswin Basheer Pattupara
in partial fulfillment of the requirements for the award of the
Senior Secondary Science, Central Board of Secondary
Education.We also certify that the work is original and has
been completed during the period of 2024-2025.
Mrs. Ameena Jahan Mr.Muhammed Jazeel K.T
Principal Internal Guide
Noble Public School Noble Public School
Manjeri Manjeri
Internal Examiner: External Examiner:
ACKNOWLEDGMENT
I take this opportunity to express my heartiest gratitude to
all, whose contribution in this project work can never be
forgotten. First of all I thank God Almighty who has been
ineffable source of strength, wisdom and inspiration for
completion of this project.
I would like to express our deep sense of gratitude to Mr.
Muhammed Jazeel K.T, PGT Computer Science, Noble
Public School, Manjeri, who is a constant source of
inspiration and whose guidance helped me in completing
the project successfully. I am extremely grateful to my
beloved teachers, especially our Principal Mrs. Ameena
Jahan for her effort and numerous suggestions and also for
her kind co-operation throughout this project.
Last but not the least I would like to thank my beloved
parents and friends who showered up on me love and
believed in our ability.
Once again I thank to all who has helped me directly and
indirectly for the successful completion of the project
work.
PROJECT ON CONTACT MANAGEMENT SYSTEM
INTRODUCTION
A Contact Management System (CMS) is a software solution
designed to help individuals and businesses organize, store, and
manage information about their contacts. These contacts may include
customers, prospects, vendors, partners, and even internal team
members. The primary goal of a CMS is to centralize contact
information such as names, phone numbers, email addresses, job
titles, company affiliations, and notes on interactions or preferences.
OBJECTIVES OF THE PROJECT
The objective of this project is to let the students apply the
programming knowledge into a real world situation and
exposed the students how programming skills helps in
developing a good software.
1. Write programs utilizing modern software tools.
2. Apply object oriented programming principles
effectively when developing small to medium sized
projects.
3. Write effective procedural code to solve small to medium
sized problems.
4. Students will demonstrate a breadth of knowledge in
computer science.
5. Students will demonstrate ability to conduct a research or
applied Computer Science project, requiring writing and
presentation skills which exemplify scholarly style in
computer science.
PROPOSED SYSTEM
The proposed Contact Management System (CMS) is designed as a
centralized solution for storing, organizing, and managing contact
information, aiming to streamline communication and enhance
relationship management. It will house contact details such as names,
addresses, emails, and company affiliations, with options for custom
fields to meet unique business needs. Key features include advanced
search, tagging, and filtering for efficient segmentation, along with
interaction tracking to log communication history, set follow-up
reminders, and assign tasks related to specific contacts. Integration
with external tools like email and CRM systems will ensure seamless
data flow, while reporting capabilities will help analyze contact
activity and engagement metrics. Role-based access control and
security measures, including data encryption and audit logs, will
safeguard sensitive information. Built on a scalable cloud platform
with an intuitive interface, this CMS will improve the efficiency of
team interactions and support organizational growth.
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
The systems development life cycle is a project management
technique that divides complex projects into smaller, more easily
managed segments or phases. Segmenting projects allows managers
to verify the successful completion of project phases before allocating
resources to subsequent phases.
Software development projects typically include initiation, planning,
design, developments, testing, implementation and maintenance
phases. However, the phases may be divided differently depending on
the organization involved.
For example, initial project activities might be designated as request,
requirements, definitions and planning phases or initiation,
conceptdevelopment 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.
PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE
INITIATION PHASE
The initiation phase beings when a business sponsor identifies a need
or an opportunity.
The purpose of the initiation phase is to:
• Identify and validate an opportunity to improve business
accomplishments of the organization or a deficiency related to a
business need.
• Identify significant assumptions and constraints on solutions to
that need.
• Recommend the exploration of alternative concepts and
methods to satisfy the needs including questioning the need for
technology, i.e., will a change in the business process offer a
solution?
• Assure executive business and executive technical sponsorship.
The sponsor designates a project manager and the business need
is documented in a concept proposal. The concept proposal
includes information about the business process and the
relationship to the Agency/Organization.
• Infrastructure and the strategic plan. A successful concept
proposal result in a project management charter which outlines
the authority of the project manager to begin the project.
Careful oversight is required to ensure projects support strategic
business objectives and resources are effectively implemented into an
organization’s enterprise architecture. The initiation phase begins
when an opportunity to add, improve or correct a system is identified
and formally requested throughout he presentation of a business case.
The business case should, at a minimum, describe a proposal’s
purpose, identify expected benefits and explain how the proposed
system supports one of the organizations business strategies. The
business case should also identify alternative solutions and detail as
many informational, functional and network requirements as possible.
SYSTEM CONCEPT DEVELOPMENT PHASE
The System Concept Development phase begins after a business need
or opportunity is validated by the Agency/Organization Program
Leadership and the Agency/Organization CIO.
The purpose of the System Concept Development Phase is to:
• Determine the feasibility and appropriateness of the
alternatives.
• Identify system interfaces.
• Identify basic functional and data requirements to satisfy the
business need.
• Establish system boundaries; identify goals, objectives, critical
success factors and performance measures.
• Evaluate costs and benefits of alternative approaches to satisfy
the basic functional requirements.
• Assess project risks
• Identify and initiate risk mitigation actions and develop
highlevel technical architecture, process 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.
PICTORIAL REPRESENTATION OF SDLC
PLANNING PHASE
The planning phase is the most critical step in completing
development, acquisition and maintaining the 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’s job is to coordinate discussions
between user, audit, security 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
approached 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.
REQUIREMENTS AND ANALYSIS PHASE
This phase formally defines the detailed functional user requirements
using high-level requirements identified in the Initiation, System
Concept, and Planning phases. It also delineates the requirements in
terms of data, system performance, security and maintainability
requirements for the system. The requirements are defined in this
phase to a level of detail sufficient for systems design to proceed.
They need to be measurable, testable and relate to the business 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.
The purposes of this phase are to:
• Further define and refine the functional and data requirements
and document them in the requirements document.
• Complete business process reengineering of the functions to be
supported (i.e., verify what information is generated, who
generates it, where does the information go and who processes
it).
• Develop detailed data and process models (system inputs,
outputs and the process.
• Develop the test and evaluation requirements that will be used to
determine acceptable system performance.
DESIGN PHASE
The design phase involves converting the informational, functional
and network requirements identified during the initiation and planning
phases into unified design specifications that developers use to script
programs during the development phase. Program designs are
constructed in various ways. Using a top-down approach, designers
first identify and link major program components and interfaces, then
expand design layouts as they identify and link smaller subsystems
and connections. Using a bottom-up approach, designers first identify
and link minor program components and interfaces then expand
design layouts as they identify and link larger systems and
connections. Contemporary design techniques often uses prototyping
tools that build mock-up designs of items such as application screens,
database layouts and system architectures. End users, designers,
developers, database managers and network administrators should
review and refine the prototype 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:
• Identifying potential risks and defining mitigating design
features.
• Performing a security risk assessment.
• Developing a conversion plan to migrate current data to the new
system.
• Determining the operating environment.
• Defining major subsystems and their inputs and outputs.
• Allocating processes to resources.
• Preparing detailed logic specifications for each software
module. The result is a draft System Design Document which
captures the preliminary design for the system.
• Everything requiring user input or approval is documented and
reviewed by the user. Once these documents have been
approved by the agency CIO and Business Sponsor the final
System Design Document is created to serve as the Critical/
Detailed design for the system.
• This document receives a rigorous review by agency technical
and functional representatives to ensure that it satisfies the
business requirements. Concurrent with the development of the
system design, the Agency Project Manager begins the
development of the Implementation Plan, Operations and
Maintenance Manual and Training Plan.
DEVELOPMENT PHASE
The development phase involves converting design specifications into
executable programs. Effective developments standards include
requirements that programmers and other project participants discuss
design specifications before programming begins. The procedures
help ensure programmers clearly understand program designs and
functional requirements. Programmers use various techniques to
develop computer programs. The large transaction oriented programs
associated with financial institutions have traditionally been
developed using procedural programming techniques. Procedural
programming involves the line-by-line scripting of logical instructions
that are combined to form a program. Effective completion of the
previous stages is a key factor in the success of the development
phase. The development phase consists of:
• Translating the detailed requirements and design into system
components.
• Testing individual elements (units) for usability.
• Preparing for integration and testing of the IT system.
INTEGRATION AND TEST PHASE
Subsystem integration, system, security and user acceptance testing is
conducted during the integration and test phase. The user with those
responsible for quality assurance validates that the functional
requirements, as defined in the functional requirements document, are
satisfied by developed or modified system. OIT Security staff assess
the system security and issue a security certification and accreditation
prior to installation/implementation.
Multiple levels of testing are performed, including:
• Testing at the development facility by the contractor and
possibly supported by end users.
• Testing as a deployed system with end users working together
with contract personnel.
• Operational testing by the end user alone performing all
functions. Requirements are traced throughout testing, a final
Independent Verification & Validation evaluation is performed
and all documentation is reviewed and accepted prior to
acceptance of the system.
IMPLEMENTATION PHASE
This phase is initiated after the system has been tested and accepted
by the user. In this phase, the system is installed to support the
intended business functions. System performance is compared to
performance objectives established during the planning phase.
Implementation includes user notification, user training, installation
of hardware installation of software onto production computers and
integration of the system into daily work processes. This phase
continues until the system is operating in production in accordance
with the defined user requirements.
OPERATIONS AND MAINTENANCE PHASE
The system operation is ongoing. The system is monitored for
continued performance in accordance with the user requirements and
needed system modifications are incorporated. Operations continue as
long as the system can be effectively adapted to respond to the
organization’s needs. When modifications or changes are identified,
the system may re enter the planning phase.
The purpose of this phase it to:
• Operate, maintain and enhance the system.
• Certify that the system can process sensitive information.
• Conduct periodic assessments of the system to ensure the
functional requirements continue to be satisfied.
• Determine when the system needs to be modernized, replaced or
retired.
SOURCE
CODE
import mysql.connector
from mysql.connector import Error
# Function to create a connection to the MySQL database
def create_connection():
try:
conn = mysql.connector.connect(
host='localhost', # Change if you're using a remote
MySQL server
database='students_management',
user='root', # Your MySQL username
password='123456' # Your MySQL password
)
if conn.is_connected():
print('Connected to MySQL database')
return conn
except Error as e:
print(f"Error: {e}")
return None
# Function to close the database connection
def close_connection(conn):
if conn.is_connected():
conn.close()
print("MySQL connection closed.")
# Function to add a student
def add_student(cursor, conn):
name = input("Enter student's name: ")
age = input("Enter student's age: ")
grade = input("Enter student's grade: ")
student_id=int(input("enter student_id"))
cursor.execute("INSERT INTO stu_dent (name, age,
grade,student_id) VALUES (%s, %s, %s,%s)", (name, age,
grade,student_id))
conn.commit()
print("Student added successfully!")
# Function to view all students
def view_students(cursor):
cursor.execute("SELECT * FROM stu_dent")
students = cursor.fetchall()
if students:
print("name|age|grade|student_id")
for students in students:
print(f"{students[0]} | {students[1]} | {students[2]} |
{students[3]}")
else:
print("No students found.")
# Function to delete a student by ID
def delete_student(cursor, conn):
student_id = input("Enter the student's ID to delete: ")
cursor.execute("DELETE FROM stu_dent WHERE
student_id = %s", (student_id,))
conn.commit()
print("Student deleted successfully!")
# Function to update a student's details
def update_student(cursor, conn):
student_id = input("Enter the student's ID to update: ")
print("Leave fields blank if you do not wish to update
them.")
name = input("Enter new name (or press Enter to skip): ")
age = int(input("Enter new age (or press Enter to skip): "))
grade = input("Enter new grade (or press Enter to skip): ")
if name:
cursor.execute("UPDATE stu_dent SET name = %s
WHERE student_id = %s", (name, student_id))
if age:
cursor.execute("UPDATE stu_dent SET age = %s
WHERE student_id = %s", (age, student_id))
if grade:
cursor.execute("UPDATE stu_dent SET grade = %s
WHERE student_id = %s", (grade, student_id))
conn.commit()
print("Student updated successfully!")
# Main menu function
def main():
conn = create_connection()
if not conn:
return
cursor = conn.cursor()
while True:
print("\n--- Student Management System ---")
print("1. Add Student")
add_student(cursor, conn)
elif choice == '2':
view_students(cursor)
elif choice == '3':
delete_student(cursor, conn)
elif choice == '4':
update_student(cursor, conn)
elif choice == '5':
print("Exiting... Goodbye!")
break
else:
print("Invalid choice, please try again.")
close_connection(conn)
# Run the program
if __name__ == '__main__':
main()
OUTPUT
TESTING
Software testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or
service under test[1], with respect to the context in which it is
intended to operate. Software Testing also provides an objective,
independent view of the software to allow the business to appreciate
and understand the risk at implementation of the software. Test
technique include, but are not limited to the process of executing a
program or application with the intent of finding software bugs.
It can also be stated as the process of validating and verifying that a
software program/application/product meets this business and
technical requirements that guided its design and development, so that
it works as expected and can be implemented with the same
characteristics. Software Testing, depending on the testing method
employed, can be implemented at any time in the development
process, however the most test effort is employed after the
requirements have been defined and coding process has been
completed.
TESTING METHODS
Software testing methods are traditionally divided into black box
testing and white box texting. These two approaches are used to
describe the point of view that a test engineer takes when designing
test cases.
BLACK BOX TESTING
Black box testing creates the software as a “black box”, without any
knowledge of internal implementation. Black box testing methods
include: equivalence partitioning, boundary value analysis, all-pairs
testing, first testing, model- based testing, traceability matrix,
exploratory testing and specification- based testing.
SPECIFICATION-BASED TESTING
Specification- based testing aims to test the functionality of software
according to the applicable requirements. [16] Thus, the tester inputs
data into and only sees the output from the test object. This level of
testing usually requires thorough test cases to be provided to the
tester, who then can simply verify that for a given input, the output
value (or behavior), either “is” or “is not” the same as the expected
value specified in the test case. Specification- based testing is
necessary, but it is insufficient to guard against certain risks.
PROS AND CONS
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 finds bugs where
programmers don’t. But, on the other hand, black box testing has been
said to be “like a walk in the 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.
WHITE BOX TESTING
White box testing, by contrast to black box testing, is when it has
access to the internal data structures and algorithms (and the code that
implement these).
Types of white box testing:-
The following types of white box testing exist:
• api testing: Testing of the application using Public and Private
APIs
• Code coverage: Creating tests to satisfy some criteria of code
coverage.
For example, the test designer can create tests to cause all statements
in the program to be executed at least once.
• Fault injection methods.
• Mutation testing methods.
• Static testing: White box testing includes all static testing.
CODE COMPLETENESS EVALUATION
White box testing methods can also be used to evaluate the
completeness of a test suite that was created with black box testing
methods. This allows the software team to examine parts of a system
that are rarely tested and ensures that the most important function
points have been tested.
Two common forms of code coverage are:
• Function Coverage: Which reports on functions executed.
• Statement Coverage: Which reports on the number of lines
executed to complete the test.
They both return coverage metric, measured as a percentage.
HARDWARE AND SOFTWARE REQUIREMENTS
• OPERATING SYSTEM : WINDOWS 10 AND ABOVE
• PROCESSOR : i3 OR AMD
• MOTHEBOARD : 1.845 OR 9758,995 FOR
PENTIUM OR MSI K9MM-V VIA
K8M800+8237R PLUS CHIPSET
FOR AMD ATHALON
• RAM : 512MB+
• HARD DISK : SATA 40 GB OR ABOVE
• MONITOR
SOFTWARE REQUIREMENTS:
• WINDOWS OS
• PYTHON
BIBLIOGRAPHY
• Kips Computer Science with Python for Class XII: Chetna
Goyal • Website: https://www.w3resource.com