Exam Registration System
Exam Registration System
Exam Registration System
AIM 3
PROBLEM STATEMENT 3
2 SYSTEM IMPLEMENTATION 5
2.1 PRODUCT PRESCRIPTIVE 5
2.2 SOFTWARE INTERFACE 5
2.3 HARDWARE INTERFACE 5
2.4 SYSTEM FUNCTIONS 6
2.5 CONSTRAINTS 6
2.6 ASSUMPTIONS AND INDEPENDANCIES 6
1
3. UML DIAGRAMS 7
3.1 USE CASE DIAGRAM 7
3.2 CLASS DIAGRAM 9
3.3 SEQUENCE DIAGRAM 10
3.4 ACTIVITY DIAGRAM 11
3.5 STATECHART DIAGRAM 12
3.6 DEPLOYMENT DIAGRAM 12
4 SOURCE CODE 13
5 OUTPUT 22
6 RESULT 25
2
EXAM REGISTRATION SYSTEM
AIM:
To create a system to perform the Exam Registration system
PROBLEM STATEMENT:
Exam Registration system.is used in the effective dispatch of registration
form to all of the students. This system adopts a comprehensive approach to
minimize the manual work and schedule resources, time in a cogent manner. The
core of the system is to get the online registration form (with details such as name,
reg.no etc.,) filled by the student whose testament is verified for its genuineness
by the Exam Registration System with respect to the already existing information
in the database. This forms the first and foremost step in the processing of exam
application. After the first round of verification done by the system, the
information is in turn forwarded to the Exam Controller. The application is then
processed manually based on the report given by the system. The system also
provides the student the list of exam dates. The controller will be provided with
fees details to display the current status of application to the
student, which they can view in their online interface. After all the necessary
criteria has been met, the original information is added to the database and the
hall ticket is sent to the student. The exam registration process and provide a user-
friendly interface for students and administrators. The system should be scalable,
reliable, and able to handle a large volume of student registrations and exam
schedules.
3
1.SOFTWARE REQUIREMENT SPECIFICATIONS:
1.1 INTRODUCTION
Exam registration system is a platform designed to automate the process of
registering for exams, managing exams, and notifying students about their exam
dates and results. This system eliminates the need for students to physically visit
exam registration offices or spend time filling out paper forms, making the
registration process more convenient and efficient. The exam registration system
allows students to register for their exams at any time, from anywhere, using a
computer or mobile device.
1.2 PURPOSE
1.3 SCOPE
• User Registration: The system allows students to create their profiles and
register for exams.
• Exam Registration: Students can select the course, date, and time of the
exam they wish to take.
• Exam Schedule Management: The system provides students with the exam
schedules and updates in case of any changes.
• Payment Processing: The system integrates with a payment gateway to
allow students to pay their exam fees online.
4
• Security: The system ensures the security and protection of stud4ent data
from unauthorized access.
• PYTHON TKINTER
• XAMPP SERVER
1.6 REFERENCES
IEEE Software Requirement specification format
2. SYSTEM IMPLEMENTATION:
5
2.4 SYSTEM FUNCTIONS
2.4 CONSTRAINTS
6
3. UML DIAGRAMS:
• Login
• View exam details
• Register
• Acknowledgement
• Fee Processing
ACTORS INVOLVED
• Student
• System DB
The student enters his username and password to login and retrieve the
information.
The student view the details about the exam schedule which contains
The student should notify the fee details that only the student can pay the
correct amount.
The exam fees should be paid by the student to get the hall ticket from the
exam controller.
7
USE-CASE NAME: FEE PROCESSING
All the details should be viewed by both the student and the controller to
verify whether all the entered details are correct.
8
3.2CLASS DIAGRAM:
The class diagram, also referred to as object modeling is the main
Static analysis diagram. The main task of object modeling is to
graphically show what each object will do in the problem domain. The
problem domain describes the structure and the relationships among
objects. The Exam Registration System class diagram consists of four
two classes of registration system.
• Login
• Signup
• Registration form
9
3.3 SEQUENCE DIAGRAM
A sequence diagram is a type of diagram used in software engineering to
visualize the interactions between objects or components in a system over time.
A sequence diagram could show the steps involved in a student registering for an
exam. sequence diagram provides a high-level overview of the steps involved in
the exam registration process and the interactions between the student and the
exam system. Note that in a real system, there may be additional steps and
interactions involved, and the details of the system may vary depending on the
specific requirements and design of the system. Here is an example of a sequence
diagram for exam registration system.
10
3.4 ACTIVITY DIAGRAM
11
3.5 STATECHART DIAGRAM
12
3.6 DEPLOYMENT DIAGRAM
4. SOURCE CODE
root=Tk()
root.title('Login page')
root.geometry('925x500+300+200')
root.configure(bg="#fff")
root.resizable(False,False)
13
def login():
if username==user:
try:
conn=mysql.connector.connect(host='localhost',username='root',password='')
cursor=conn.cursor()
except:
messagebox.showerror('Error','database connnection error')
return
query='use userdata'
cursor.execute(query)
query='select office,name,Aadhar_number,Dob,username,cpassword from data where
username=%s and cpassword=%s'
cursor.execute(query,(user.get(),password.get()))
row=cursor.fetchone()
elif username!='admin':
messagebox.showerror("Invalid","Invalid username")
elif password!='1234':
messagebox.showerror("Invalid","Invalid password")
img= PhotoImage(file='images-_1_.png')
Label(root,image=img,bg='white').place(x=50,y =50)
frame=Frame(root,width=350,height=350,bg="white")
frame.place(x=480,y=50)
heading=Label(frame,text='Exam register Portal',fg='#57a1b8',bg='white',font=('Microsoft
YaHei UI Light',23,'bold'))
heading.place(x=10,y=5)
14
def on_enter(e):
user.delete(0,'end')
def on_leave(e):
name=user.get()
if name=='':
user.insert(0,'username')
user=Entry(frame,width=25,fg='black',border=0,bg='white',font=('Microsoft YaHei UI
Light',11))
user.place(x=30,y=80)
user.insert(0,'username')
user.bind('<FocusIn>', on_enter)
user.bind('<FocusOut>', on_leave)
Frame(frame,width=295,height=2,bg='black').place(x=25,y=107)
def on_enter(e):
code.delete(0,'end')
def on_leave(e):
name=user.get()
if name=='':
code.insert(0,'password')
code=Entry(frame,width=25,fg='black',border=0,bg='white',font=('Microsoft YaHei UI
Light',11))
code.place(x=30,y=150)
15
code.insert(0,'password')
code.bind('<FocusIn>', on_enter)
code.bind('<FocusOut>', on_leave)
Frame(frame,width=295,height=2,bg='black').place(x=25,y=177)
Button(frame,width=39,pady=7,text='Login',bg='#57a1f8',fg='white',border=0).place
(x=35,y=204)
label=Label(frame,text="Don't have an account?",fg='black',font=('Microsoft YaHei UI
Light',11))
label.place(x=75,y=270)
sign_up=Button(frame,width=6,text='signup',border=0,bg='white',cursor='hand2'
,fg='#57a1f8',command=signup)
sign_up.place(x=255,y=270)
root.mainloop()
root.title("Signup")
root.geometry("925x500+300+200")
root.configure(bg='#fff')
root.resizable(False,False)
def signup():
username=user.get()
setpassword=code.get()
confirm_password=cnfrm.get()
if setpassword==confirm_password:
try:
mydb = mysql.connector.connect(host="localhost", user="root",
password="", database="examreg")
mycursor = mydb.cursor()
sql = "INSERT INTO login (username,set_password,confirm_password)
VALUES (%s, %s,%s)" values = (username,setpassword,confirm_password)
mycursor.execute(sql, values)
16
mydb.commit()
messagebox.showinfo('signup','successfully Signed up')
except:
messagebox.showerror('signup','invalid')
img=PhotoImage(file='images-_1_.png')
Label(root,image=img,border=0,bg='white').place(x=50,y=90)
frame=Frame(root,width=350,height=390,bg='white')
frame.place(x=480,y=50)
heading=Label(frame,text="Sign up",fg='#57a1f8',bg='white',font=('Microsoft YaHei
UI Light',23,'bold'))
heading.place(x=100,y=5)
def on_enter(e):
user.delete(0,'End')
def on_leave(e):
user.insert(0,'username')
user=Entry(frame,width=25,fg='black',border=0,bg='white',font=("Microsoft YaHei UI
Light",11))
user.place(x=30,y=80)
user.insert(0,'username')
user.bind('<FocusIn>', on_enter)
user.bind('<FocusOut>', on_leave)
Frame(frame,width=295,height=2,bg='black').place(x=25,y=107)
def on_enter(e):
code.delete(0,'End')
def on_leave(e):
code.insert(0,'set password')
code=Entry(frame,width=25,fg='black',border=0,bg='white',font=("Microsoft YaHei UI
Light",11))
17
code.place(x=30,y=150)
code.insert(0,'set password')
code.bind('<FocusIn>',on_enter)
code.bind('<FocusOut>',on_leave)
Frame(frame,width=295,height=2,bg='black').place(x=25,y=177)
def on_enter(e):
cnfrm.delete(0,'End')
def on_leave(e):
cnfrm.insert(0,'confirm password')
cnfrm=Entry(frame,width=25,fg='black',border=0,bg='white',font=("Microsoft YaHei UI
Light",11))
cnfrm.place(x=30,y=220)
cnfrm.insert(0,'confirm password')
cnfrm.bind('<FocusIn>',on_enter)
cnfrm.bind('<FocusOut>',on_leave)
Frame(frame,width=295,height=2,bg='black').place(x=25,y=247)
Button(frame,width=39,pady=7,text='Sign
In',bg='#57a1f8',fg='white',border=0).place(x=35,y=280)
label=Label(frame,text="I Have an account",fg='black',bg='white',
font=('Microsoft yahei UI Light',9))
label.place(x=90,y=340)
signin=Button(frame,width=6,text='login',border=0,bg='white',
cursor='hand2',fg='#57a1f8',command=login)
signin.place(x=200,y=340)
def register():
mydb = mysql.connector.connect(
host="localhost",
user="root",
18
password="",
database="examreg")
root = tk.Tk()
root.geometry("925x500+300+200")
root.title("Registration Form")
tk.Label(root, text="Name:").place(x=400, y=200)
tk.Label(root, text="Roll No:").place(x=400, y=250)
tk.Label(root, text="Date of Birth:").place(x=400, y=500)
tk.Label(root, text="Father Name:").place(x=400, y=300)
tk.Label(root, text="Mobile No:").place(x=400, y=450)
tk.Label(root, text="Gmail:").place(x=400, y=350)
tk.Label(root, text="Subject:").place(x=400, y=400)
name_entry = tk.Entry(root)
name_entry.place(x=550, y=200)
rollno_entry = tk.Entry(root)
rollno_entry.place(x=550, y=250)
dob_entry = tk.Entry(root)
dob_entry.place(x=550, y=300)
father_entry = tk.Entry(root)
father_entry.place(x=550, y=350)
gmail_entry = tk.Entry(root)
gmail_entry.place(x=550, y=400)
mobile_entry = tk.Entry(root)
mobile_entry.place(x=550, y=450)
subject_entry = tk.Entry(root)
subject_entry.place(x=550, y=500)
19
def register():
name = name_entry.get()
rollno = rollno_entry.get()
dob = dob_entry.get()
father = father_entry.get()
mobile = mobile_entry.get()
gmail = gmail_entry.get()
subject = subject_entry.get()
mycursor = mydb.cursor()
sql = "INSERT INTO register
(name,roll_no,dateofbirth,father_name,mobileno,Email,subject)
VALUES (%s, %s, %s, %s, %s, %s, %s)"
values = (name, rollno, dob,father,mobile, gmail, subject)
mycursor.execute(sql, values)
mydb.commit()
name_entry.delete(0, tk.END)
rollno_entry.delete(0, tk.END)
father_entry.delete(0, tk.END)
gmail_entry.delete(0, tk.END)
subject_entry.delete(0, tk.END)
mobile_entry.delete(0, tk.END)
dob_entry.delete(0, tk.END)
register_button = tk.Button(root, text="Register", command=register)
register_button.place(x=550, y=550)
def feeprocess()
root = tk.Tk()
root.title("Exam Registration Fees Payment")
root.geometry("400x250")
card_number_label = tk.Label(root, text="Credit Card Number:")
20
card_number_label.pack()
card_number_entry = tk.Entry(root)
card_number_entry.pack()
expiration_date_label = tk.Label(root, text="Expiration Date (MM/YY):")
expiration_date_label.pack()
expiration_date_entry = tk.Entry(root)
expiration_date_entry.pack()
security_code_label = tk.Label(root, text="Security Code:")
security_code_label.pack()
security_code_entry = tk.Entry(root, show="*")
security_code_entry.pack()
payment_method_label = tk.Label(root, text="Payment Method:")
payment_method_label.pack()
payment_method_var = tk.StringVar(value="Credit Card")
payment_method_credit_radio = tk.Radiobutton(root, text="Credit
Card",variable=payment_method_var, value="Credit Card")
payment_method_credit_radio.pack()
payment_method_paypal_radio = tk.Radiobutton(root, text="PayPal",
variable=payment_method_var, value="PayPal")
payment_method_paypal_radio.pack()
def process_payment():
card_number = card_number_entry.get()
expiration_date = expiration_date_entry.get()
security_code = security_code_entry.get()
payment_method = payment_method_var.get()
if not card_number or not expiration_date or not security_code:
messagebox.showerror("Error", "Please fill out all payment information")
return
21
messagebox.showinfo("Success", "Payment processed successfully")
submit_button = tk.Button(root, text="Submit", command=process_payment)
submit_button.pack()
root.mainloop()
4.OUTPUT:
22
23
24
6.RESULT
Thus the mini project for Exam registration System has been successfully
executed and codes are generated.
25