Modern Py
Modern Py
SESSION-2023-24
TOPIC: STUDENT MANAGEMENT SYSTEM
1
1
CERTIFICATE
This is to certify that PALAK RAWAT,SMITA SAJWAN,ABHINAV
RAWAT,SHEKHAR BAHUGUNA Of Class XII A has prepared the report on
the Project entitled “STUDENT MANAGEMENT SYSTEM". The report is
the result of her/his efforts & endeavors. The report is found worthy of
acceptance as final project report for the subject Computer Science of
Class XII. She/he has prepared the report under my guidance.
Er Abhishek Dangwal
01 ACKNOWLEDGEMENT
02 INTRODUCTION
04 PROPOSED SYSTE M
08 FLOW CHART
09 OUTPUT
10 TESTING
3
TABLE OF CONTENTS [T.O.C]
ACKNOWLEDGEMENT
I am really grateful for the opportunity of
this project and sincerely thanks my
computer teacher Er. Abhishek Dangwal.
He will remain one of my favorite teachers
for contributing his valuable time and effort
to help me with this project. Their
suggestions and feedback helped me a lot to
improve the practical quality from the
implementation.
Secondly, I would like to thank my parents,
family member and friends who have always
been there whenever needed.
Lastly, I thank them all from my heart and
wish that they will continue to support me
like this.
4
4
INTRODUCTION:
1. **Database Setup:**
2. **User Authentication:**
- The program prompts the user to enter a username and password for
authentication.
5
- If the provided credentials match the hardcoded values ('computer' for
username and '12345' for password), the user is granted access to the
main menu; otherwise, an invalid credential message is displayed.
- The main menu presents several options to the user, such as adding a
new student record, displaying all records, searching for a student by roll
number, deleting a student record, updating a student's fees, and exiting
the system.
4. **Operations:**
- **Add Record:** Allows the user to input details for a new student, such
as roll number, name, class, and fees. The information is then inserted into
the MySQL database.
- **Display Record:** Retrieves all student records from the database and
displays them in a tabular format using the PrettyTable library.
5. **User Interface:**
- The program uses a loop to maintain interaction with the user until the
user chooses to exit.
7
PROPOSED SYSTEM
Today one cannot afford to rely on the fallible human
beings of be really wants to stand against today’s
merciless 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.
One has to use the data management software. Software
has been an ascent in atomization various organizations.
Many software products working are now in markets,
which have helped in making the organizations work
easier and efficiently. Data management initially had to
maintain a lot of ledgers and a lot of paper work has to be
done but now software product on this organization has
made their work faster and easier. Now only this software
has to be loaded on the computer and work can be done.
This prevents a lot of time and money. The work becomes
fully automated and any information regarding the
organization can be obtained by clicking the button.
Moreover, now it’s an age of computers of and automating
such an organization gives the better look.
8
SYSTEM DEVELOPMENT LIFE
CYCLE (SDLC)
9
each phase to ensure the system is being built to deliver the needed
functionality
11
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
12
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.
13
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 drives the business process,
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
14
These include:
DEVELOPMENT PHASE
15
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:
This phase is initiated after the system has been tested and
accepted by the user. In this phase, the system is installed to
16
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
userrequirements
.
OPERATIONS AND MAINTENANCE PHASE
SOURCE CODE
17
from prettytable import PrettyTable
import mysql.connector
mydatabase =
mysql.connector.connect(host="localhost",
user="root", password="PHWa089#lly")
18
while True:
print(".................................................................................
...........................................................")
print("********************************** MAIN
MENU*******************************")
print(".................................................................................
...........................................................")
print("1. Add Record")
print("2. Display Record")
print("3. Search Record")
print("4. Delete Record")
print("5. Update Record")
print("6. Exit")
print(".................................................................................
...........................................................")
19
# Add Record
a = int(input("Enter your choice:"))
if a == 1:
print(".................................................................................
...........................................................")
print("********************************** Enter
Details of Student**************************")
print(".................................................................................
...............................................................")
R = int(input("Enter Roll no:")) # Convert
to int
N = input("Enter Name:")
F = input("Enter Class:")
D = int(input("Enter Fees:")) # Convert to
int
mycursor = mydatabase.cursor()
20
sql = "INSERT INTO students (Rollno,
Name, Class, Fees) VALUES (%s, %s, %s, %s)"
values = (R, N, F, D)
mycursor.execute(sql, values)
mydatabase.commit()
print("\t \t \t \tInformation Saved")
print(".................................................................................
...................................................................")
21
t.add_row([Rollno, Name, Cls, Fee])
print(t)
print(".................................................................................
............................................................")
print("********************************** Search
student by roll no****************************")
print(".................................................................................
....................................................................")
r_1 = input("Enter Student Rollno:")
mycursor = mydatabase.cursor()
mycursor.execute("SELECT * FROM
students WHERE Rollno=" + r_1)
myresult = mycursor.fetchall()
22
t = PrettyTable(['Rollno', 'Name', 'Class',
'Fee'])
for Rollno, Name, Cls, Fee in myresult:
t.add_row([Rollno, Name, Cls, Fee])
print(t)
print(".................................................................................
...........................................................")
print("********************************** Delete
Student Information By Roll*****************")
print(".................................................................................
...............................................................")
r_1 = input("Enter Student Rollno Whose
Information You Want To Delete=")
mycursor = mydatabase.cursor()
23
mycursor.execute("DELETE FROM
students WHERE Rollno=" + r_1)
mydatabase.commit()
print("\t \t \t \tRecord Deleted
Successfully!!!")
print(".................................................................................
................................................................")
print(".................................................................................
...........................................................")
print("**********************************
Update Student Information By Roll
*****************")
print(".................................................................................
...............................................................")
24
r_1 = input("Enter Student Rollno Whose
fees you want to update:")
new_fees = int(input("New Fees:")) #
Convert to int
mycursor = mydatabase.cursor()
mycursor.execute("SELECT * FROM
students WHERE Rollno=" + r_1)
myresult = mycursor.fetchall()
if myresult:
t = PrettyTable(['Rollno', 'Name', 'Class',
'Fees'])
for Rollno, Name, Cls, Fees in myresult:
t.add_row([Rollno, Name, Cls, Fees])
print("Current Student Information:")
print(t)
25
mycursor.execute("UPDATE students SET
Fees=%s WHERE Rollno=%s", (new_fees, r_1))
mydatabase.commit()
26
# Exit
exit()
mydatabase =
mysql.connector.connect(host="localhost",
user="root", password="PHWa089#lly",
database="studentrecords")
mycursor = mydatabase.cursor()
while True:
27
print(".................................................................................
............................................................")
print("*********************************LOGIN*
**************************************")
print(".................................................................................
..............................................................")
print(".................................................................................
...........................................................")
28
print("\t \t \t \tINVALID USERNAME OR
PASSWORD!!!")
print(".................................................................................
...........................................................")
FLOWCHART
29
OUTPUT
30
31
32
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.
Black box testing treats 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, fuzz
testing, model-based testing, traceability matrix, exploratory testing and
specification-based testing.
SPECIFICATION-BASED TESTING
33
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
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.
White box testing, by contrast to black box testing, is when the tester has
access to the internal data structures and algorithms (and the code that
implement these)
34
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.
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.
35
V. Hard disk : SATA 40 GB OR ABOVE
VI. CD/DVD r/w multi drive combo: (If back up required)
VII. FLOPPY DRIVE 1.44 MB : (If Backup required)
VIII. MONITOR 14.1 or 15 -17 inch IX. Key board and mouse
X. Printer : (if print is required – [Hard copy])
SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
III. MySQL
BIBLIOGRAPHY
1. Computer science With Python - Class XII By :
Sumita Aurora
2. A Project Report On Blood Bank Management
System (BBMS) By : Praveen M Jig jinni
3. Website: https://www.w3resource.com 4.
https://en.wikipedia.org/wiki/E_(mathematical_const
ant)
36
37