Exam Registration System

Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

CONTENTS

S.NO TOPIC PAGE

AIM 3
PROBLEM STATEMENT 3

1. SOFTWARE REQUIRMENT SPECIFICATION 4


1.1 INTRODUCTION 4
1.2 PURPOSE 4
1.3 SCOPE 4
1.4 TECHNOLOGIES TO BE USED 5
1.5 TOOLS TO BE USED 5
1.6 REFERENCES 5

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

The purpose of an exam registration system is to automate and simplify the


process of registering for exams, managing exam schedules, and notifying
students about their exam dates and results. This system helps to reduce
administrative workload, prevent scheduling conflicts, and improve the overall
efficiency of the exam registration process.

1.3 SCOPE

The scope of an exam registration system includes the following points:

• 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.

1.4 TECHNOLOGIES TO BE USED

• PYTHON TKINTER
• XAMPP SERVER

1.5 TOOLS TO BE USED

• MICROSOFT VISUAL STUDIO CODE


• STAR UML

1.6 REFERENCES
IEEE Software Requirement specification format

2. SYSTEM IMPLEMENTATION:

2.1 PRODUCT PRESCRIPTIVE

A user-friendly exam registration system should have a clear and straight


forward registration process, display available exams with dates, times, and
locations, and allow for secure payment processing. It should provide customer
support and analytics/reporting capabilities.

2.2 SOFTWARE INTERFACE

• Front end - The interface is built by using python.


• Server – XAMPP.
• Backend – phpMyAdmin.

2.3 HARDWARE INTERFACE

The server is directly connect to the examiner systems.So the examiner


access to the database in the server.

5
2.4 SYSTEM FUNCTIONS

• User registration: Allow users to create an account and provide basic


personal information such as name, email address, and password.
• Exam registration: Allow users to select an exam they wish to take and
register for it by providing payment information and other required details.
• Exam scheduling: Provide a mechanism for users to schedule the exam
date and time according to their preferences and the available testing
centers.
• Exam administration: Provide the necessary infrastructure to administer
the exams, including setting up testing centers, proctoring the exams, and
grading the results.
• Results reporting: Allow users to view their exam results and receive
official reports, certificates, or transcripts as needed.
• Data management: Collect, store, and manage user data and exam-related
information securely and in compliance with applicable regulations and
privacy laws.

2.4 CONSTRAINTS

• The Applicants require a computer or mobile to submit their information.


• The user has to be careful while submit the information.

2.5 ASSUMPTIONS AND INDEPENDANCIES

• The Applicants and exam management must have basic knowledge of


computer and English language.
• The Applicants maybe required to send the documents.
• The system should allow users to register for exams within a limited
timeframe, depending on the exam schedules and deadlines.

6
3. UML DIAGRAMS:

3.1 USE CASE DIAGRAM

The Exam Registration use cases in our system are:

• Login
• View exam details
• Register
• Acknowledgement
• Fee Processing

ACTORS INVOLVED

• Student
• System DB

USE-CASE NAME: LOGIN

The student enters his username and password to login and retrieve the
information.

USE-CASE NAME: VIEW EXAM DETAILS

The student view the details about the exam schedule which contains

Date, time, etc...

USE-CASE NAME: REGISTER

The student should notify the fee details that only the student can pay the
correct amount.

USE-CASE NAME: ACKNOWLEDGEMENT

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.

Use case diagram for exam registration system

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

Class diagram for Exam Registration System

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

An activity diagram is a type of diagram used in software engineering to


represent the flow of activities or processes in a system. In the context of an exam
registration system, an activity diagram could show the activities involved in a
student registering for an exam, including the decisions and conditions that affect
the flow of the process. Here is an example of an activity diagram for an exam
registration system.

11
3.5 STATECHART DIAGRAM

A statechart diagram is a type of diagram used in software engineering to


represent the states and transitions of an object or system. In the exam registration
system, a statechart diagram could show the different states and transitions of the
registration process. the exam registration system begins in the state of Exam
Eligibility. From here, it can transition to Exam Requested or remain in Exam
Eligibility if the student is not eligible for the exam. Once the exam has been
requested, the system can transition to Exam Date Selected once an exam date
has been chosen, or it can return to Exam Eligibility if the student is not eligible
for the exam. From Exam Date Selected, the system can transition to Payment
Made or return to Exam Eligibility if the student is not eligible. Once payment
has been made, the system transitions to Exam Registered and the process is
complete.

12
3.6 DEPLOYMENT DIAGRAM

Deployment diagrams are used to visualize the topology of the physical


components of a system where the software components are deployed.

4. SOURCE CODE

from tkinter import *


from tkinter import ttk
import mysql.connector
from tkinter import messagebox
import tkinter as tk
from PIL import Image,ImageTk

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()

cancel_button = tk.Button(root, text="Cancel", command=root.destroy)


cancel_button.pack()

back_button = tk.Button(root, text="Back to Exam Registration", command=root.destroy)


back_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

You might also like