Online Examination System Documentation
Online Examination System Documentation
ONLINE EXAMINATION
SYSTEM
Certificate of Recommendation
Date:
( Monalisa Banerjee)
HOD,BCA Department
(Techno India Main,SaltLake )
Date:
Maulana Abul Kalam Azad University of technology (WBUT),
FACULTY OF BCA DEPARTMENT
The foregoing Major project is hereby approved as a creditable study of Bachelor of Computer
Application (BCA) and presented in a manner satisfactory to warrant its acceptance as a pre-requisite
to the degree for which it has been submitted. It is understood that by this approval the undersigned do
not necessarily endorse or any statement made, opinion expressed or conclusion therein but approve
this Minor project only for the purpose for which it is submitted.
HOW IT WORKS
• Well we have use phpMyAdmin as our data base structure.
• Each and every user’s response is recorded in our database system.
• Each user name has to have a different username, Same user name
is unacceptable twice.
• We have used Netbeans as our coding platform which is
completely Java Based.
BUSINESS MODULE:
Examination system can be improved with the help of this module.
Teachers nowadays set different type of questions like few of them are
mathematical and few of them logical also. In this module At first
students have to login with their ID and password. There is a timer for
the exam.After logging in,the student can start the exam anytime, after
the given time the exam will automatically end.In between the time
students have to answer the questions and submit it.
FUTURE ASPECT:
This project can be implemented regarding aptitude test of job
interview and competitive exams.Nowadays there are many cases
where hand written answer papers are not checked properly.It can also
be misused or hampered.To prevent this situation,this project is useful.
BUSINESS IDEA:
Nowadays it is a big problem for the students that after giving an exam
there is no such security that their answer sheets will be checked
properly or not. This can hamper the grade as well as the future of a
student for an aspect.This project is useful to prevent this type of
situation.With the help of online exam portal students can give their
examination online with the help of a computer and after giving the
exams their answers will be saved in a database. Their will be a admin
or teacher portal where the teacher can login with their login ID and
password. The teacher can add questions as per their need and
requirement and they can also add the correct Answer for each question
and then save it. After submitting all the answers the student can see the
marks obtained by them. They can also see the correct answers for all
the questions after the exam ends.
TOOLS:
Editor – Sublime text
Browser – Explorer greater version 8.0 JDK
J2EE
Apache Tomcat
Database – Mysql workbench.
What is HTML?
• HTML stands for Hyper Text Markup Language
• HTML describes the structure of a Web page
• HTML consists of a series of elements
• HTML elements tell the browser how to display the content
• HTML elements are represented by tags
• HTML tags label pieces of content such as "heading", "paragraph",
"table", and so on
• Browsers do not display the HTML tags, but use them to render the
content of the page
What is CSS?
• CSS stands for Cascading Style Sheets
• CSS describes how HTML elements are to be displayed on screen,
paper, or in other media
• CSS saves a lot of work. It can control the layout of multiple web
pages all at once
• External stylesheets are stored in CSS files
REGISTER YOURSELF
LOGIN FORM
HERE, we can login as an admin or as a student
CHECK YOUR PROFILE
SELECT YOUR COURSE AND EXAM
AVAILABLE COURSES
LEVEL 1
LEVEL 2
ERD OR ENTITY-RELATIONSHIP DIAGRAM:-
ERD OR ENTITY-RELATIONSHIP DIAGRAM:-
CODING
HOME PAGE(index.jsp):
<html>
<head>
<title>my website</title>
<link href="web1.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script type="text/javascript" align="left">
</script>
<img src="" name="slide" width="100%" height="480">
<script type="text/javascript">
var step=1;
function slideit(){
document.images.slide.src=eval("image"+step+".src");
if(step<4)
step++;
else
step=1;
setTimeout("slideit()",3000);
}
slideit();
</script>
<div id="nav">
<ul>
<li><a href="index.jsp">Home</a></li>
<li><a href="login.jsp">login</a></li>
<li><a href="register1.html">Register</a></li>
<li><a href="contactuspage.html">Contact Us</a></li>
</ul>
</div>
<div id="d">
<h2>Welcome to Eduguide</h>
<p>This website will provide you to take exam online and thus saves your time to go far away.
There are different kind of
subjects provided for exam purpose. Candidates can select any subject for which he/she wants to
give proper examination and then
he/she can start their exam. This Institution provides the facility to check attempted papers by
candidates automatically and shows
result after paper submitting.<p>
</div>
<div id="img1">
<img src="IMG\book1.jpg" width="300" height="250"/>
<img src="IMG\book2.jpg" width="300" height="250" />
<img src="IMG\book8.jpg" width="300" height="250" />
<img src="IMG\book9.jpg" width="300" height="250" />
<img src="IMG\book4.jpg" width="300" height="250" />
<img src="IMG\booktwo.jpg" width="300" height="250" />
<img src="IMG\bookthree.jpg" width="300" height="250" />
<img src="IMG\bookone.jpg" width="300" height="250" />
<img src="IMG\bookfour.jpg" width="300" height="250" />
<img src="IMG\bookfive.jpg" width="300" height="250" />
<img src="IMG\booksix.jpg" width="300" height="250" />
<img src="IMG\bookseven.jpg" width="300" height="250" />
</div>
<div id="footer">
Created by Shubhamay Hazra, Sukanya Pal, Samridhhya Bhattacharya, Sayantan Dutta, Subham
Kumar (Techno India, Kolkata)
</div>
</body>
</html>
LOGIN PAGE(login.jsp):
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body style="background-image: url(a.jpg);">
<center>
<div class="central-div">
<form method='post' action="controller.jsp">
<input type="hidden" name="page" value="login">
<table>
<tr>
<td colspan="2">
<center><h2>Login Form</h2></center>
</td>
</tr>
<tr>
<td>
<label>User Name</label>
</td>
<td>
<input type="text" class="text" placeholder="User Name"
name="username">
</td>
</tr>
<tr>
<td>
<label>Password</label>
</td>
<td>
<input type="password" class="text" placeholder="Password"
name="password">
</td>
</tr>
<tr>
<td>
</td>
<td>
<%
if(request.getSession().getAttribute("userStatus")!=null){
System.out.println("its called");
if(request.getSession().getAttribute("userStatus").equals("-1")){
System.out.println("now inside");
%>
<script>alert("username or password is incorrect");</script>
<p style="color: rgba(255, 255, 51, 1);font-size: 17px">username
or password is incorrect</p>
<br>
<%
}
}
%>
LOGIN CSS(style.css):
*{
margin:0;
padding: 0;
/* font-family: sans-serif;*/
}
*:focus {
outline: none;
}
body{
background-image: url(1.jpg);
}
.central-div{
position: absolute;
top: 25%;
left: 35%;
}
.central-div h2{
color: white;
font-size: 28px;
}
.central-div table{
background-color: rgba(38,38,38,0.4);
padding: 30px;
border-radius: 0px;
}
.central-div input{
margin:10px;
}
.central-div label{
color: white;
font-size: 17px;
font-family: sans-serif;
}
.central-div a{
color: white;
text-decoration: none;
}
.central-div a:focus,.central-div a:hover{
text-decoration: underline;
}
.text{
background: rgba(255,255,255,0.7);
padding: 5px;
font-size: 18px;
width: 220px;
border-radius: 0px;
border:1px solid #E8E8E8;
box-shadow: 1px 1px 3px #082F38;
color: #15687A;
}
.text:focus{
border:1px solid #5CB1C4;
box-shadow: 1px 1px 8px #082F38;
background: white;
}
.button{
margin-bottom: 5px;
margin-top: 5px;
background: linear-gradient(#54B872,#5AC47A,#54B872);
width: 220px;
font-size: 21px;
border:2px solid #3B3B3B;
color: #3B3B3B;
padding: 8px;
}
.button:hover,.button:focus{
border:2px solid white;
color: white;
cursor: pointer;
}
.menu{
padding: 5px;
margin: 5px;
position: relative;
display: inline;
top: 20px;
left: 20px;
background-color: #5AC47A;
width: 80%;
}
.title{
position: relative;
top: -20px;
background-color: burlyWood;
width: 200px;
padding: 8px;
border-radius: 10px;
box-shadow: 1px 1px 6px 1px;
}
.list{
background-color: lightgrey;
width: 260px;
height: 30px;
font-size: 23px;
color: black;
text-align: left;
padding-left: 10px;
margin-bottom: 1px;
}
.list a{
background-color: slateGrey;
color: white;
text-decoration: none;
height: 100%;
padding-left: 5px;
padding-right: 5px;
transition: 0.3s;
}
.list a:hover{
background-color: crimson;
}
.form-button{
margin-bottom: 5px;
margin-top: 5px;
background: linear-gradient(#54B872,#5AC47A,#54B872);
width: 140px;
font-size: 21px;
border:2px solid #3B3B3B;
color: #3B3B3B;
padding: 8px;
}
.form-button:hover,.form-button:focus{
border:2px solid white;
color: white;
cursor: pointer;
}
form label{
padding: 15px;
color: white;
font-weight: bold;
font-size: 17px;
}
#one-column-emphasis
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
margin: 45px;
min-width: 800px;
text-align: left;
border-collapse: collapse;
}
#one-column-emphasis th
{
font-size: 14px;
font-weight: normal;
padding: 12px 15px;
color: #039;
}
#one-column-emphasis td
{
padding: 10px 15px;
color: #669;
border-top: 1px solid #e8edff;
}
.oce-first
{
background: #d0dafd;
border-right: 10px solid transparent;
border-left: 10px solid transparent;
}
#one-column-emphasis tr:hover td
{
color: #339;
background: #eff2ff;
}
.profile{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
}
.profile .tag{
font-size: 17px;
padding:10px;
text-align: left;
background: cadetblue;
color: white;
display: inline-block;
min-width: 120px !important;
}
.profile .val{
text-align: left;
min-width: 370px !important;
font-size: 17px;
padding:10px;
display: inline-block;
background: #b2ffb2 ;
}
.profile .val:hover{
background: honeydew;
}
.profile h2{
margin-bottom:1px;
box-shadow: 1px 1px 3px #082F38;
max-width: 530px;
#rounded-corner
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
margin: 45px;
min-width: 800px;
text-align: left;
border-collapse: collapse;
}
#rounded-corner th
{
padding: 8px;
font-weight: normal;
font-size: 13px;
color: #039;
background: #b9c9fe;
}
#rounded-corner td
{
padding: 8px;
background: #e8edff;
border-top: 1px solid #fff;
color: #669;
}
#gradient-style
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
margin: 45px;
min-width: 800px;
text-align: left;
border-collapse: collapse;
}
#gradient-style th
{
font-size: 13px;
font-weight: normal;
padding: 8px;
background: #b9c9fe url('table-images/gradhead.png') repeat-x;
border-top: 2px solid #d3ddff;
border-bottom: 1px solid #fff;
color: #039;
}
#gradient-style td
{
padding: 8px;
border-bottom: 1px solid #fff;
color: #669;
border-top: 1px solid #fff;
border-left: 1px solid #fff;
background: #e8edff url('table-images/gradback.png') repeat-x;
}
#gradient-style tfoot tr td
{
background: #e8edff;
font-size: 12px;
color: #99c;
}
#gradient-style tbody tr:hover td
{
background: #d0dafd url('table-images/gradhover.png') repeat-x;
color: #339;
}
}
#nav ul li a{
line-height:25px;
display:block;
height:25px;
width:80px;
font-size:0.8em;
font-weight:bold;
color:WHITE;
text-align:center;
text-decoration:none;
margin:7px;
background: #737373;
}
#nav ul li a:hover{
background:skyblue;
}
#nav ul li a.current, #divNav ul li a.current:hover{
background:#333;
background:-moz-linear-gradient(top, #000, #666)
background:-webkit-gradient(linear,left top,left bottom, from(#000), to(#666));
color:#f63;
cursor:default;
}
#d h2{
color:black;
line-height:25px;
text-align:center;
background:#6699ff;
padding:20px;
margin-bottom: 20px;
}
#d p{
color:white;
line-height:1.6;
font-size:17;
margin-top:18;
}
#footer{
font-size:18;
height:120px;
margin-top: 20px;
background-color:#6699ff;
width: 100%;
text-align: center;
padding-top: 40px;
border-bottom: none;
align:center
}
#img1
{
width: 100%;
text-align: center;
border:none;
}
EXM PAGE:
<%@page import="myPackage.classes.Exams"%>
<%@page import="myPackage.classes.Questions"%>
<%@page import="java.util.ArrayList"%>
<jsp:useBean id="pDAO" class="myPackage.DatabaseClass" scope="page"/>
<link href="styleabc.css" rel="stylesheet" type="text/css" />
<!-- SIDEBAR -->
<div class="sidebar" style="background-image: url(sidebar-1.jpg)">
<div class="sidebar-background" >
<h2 class="logo-text">
Online Examination System
</h2>
<div class="left-menu">
<a href="std-page.jsp?pgprt=0"><h2>Profile</h2></a>
<a class="active" href="std-page.jsp?
pgprt=1"><h2>Exams</h2></a>
<a href="std-page.jsp?
pgprt=2"><h2>Results</h2></a>
</div>
</div>
</div>
<!-- CONTENT AREA -->
<div class="content-area">
<% }%>
<%
if(session.getAttribute("examStarted")!=null){
if(session.getAttribute("examStarted").equals("1")){
%>
<span id="remainingTime" style="position: fixed;top:250px;left: 280px;font-size:
20px;background: rgba(255,0,77,0.38);border-radius: 5px;padding: 10px;box-shadow: 2px -2px 6px
0px;">
</span>
<script>
var time = <
%=pDAO.getRemainingTime(Integer.parseInt(session.getAttribute("examId").toString())) %>;
time--;
var sec=60;
document.getElementById("remainingTime").innerHTML = time+" : "+sec;
//it calls fuction after specific time again and again
var x= window.setInterval(timerFunction, 1000);
function timerFunction(){
sec--;
// Display the result in the element with id="demo"
if (time < 0) {
clearInterval(x);
document.getElementById("remainingTime").innerHTML = "00 : 00";
document.getElementById("myform").submit();
}
document.getElementById("remainingTime").innerHTML = time+" : "+sec;
if(sec==0){
sec=60;
time--;
}
}
</script>
<%
ArrayList list=pDAO.getQuestions(request.getParameter("coursename"),20);
Questions question;
%>
<input type="hidden" name="size" value="<%=list.size()%>">
<input type="hidden" name="totalmarks" value="<
%=pDAO.getTotalMarksByName(request.getParameter("coursename"))%>">
<%
for(int i=0;i<list.size();i++){
question=(Questions)list.get(i);
%>
<center>
<div class="question-panel">
<div class="question" >
<label class="question-label"><%=i+1 %></label>
<%=question.getQuestion() %>
</div>
<div class="answer">
<input type="radio" id="c1<%=i%>" name="ans<
%=i%>" value="<%=question.getOpt1()%>"/>
<label for="c1<%=i%>"><%=question.getOpt1()
%></label>
<input type="radio" id="c2<%=i%>" name="ans<
%=i%>" value="<%=question.getOpt2()%>" />
<label for="c2<%=i%>"><%=question.getOpt2()
%></label>
<input type="radio" id="c3<%=i%>" name="ans<
%=i%>" value="<%=question.getOpt3()%>" />
<label for="c3<%=i%>"><%=question.getOpt3()
%></label>
<input type="radio" id="c4<%=i%>" name="ans<
%=i%>" value="<%=question.getOpt4()%>"/>
<label for="c4<%=i%>" ><%=question.getOpt4()
%></label>
</div>
</div>
<input type="hidden" name="question<%=i%>" value="<
%=question.getQuestion()%>">
<input type="hidden" name="qid<%=i%>" value="<%=question.getQuestionId()
%>">
<%
}
%>
<%
}
}else if(request.getParameter("showresult")!=null){
if(request.getParameter("showresult").equals("1")){
Exams result= pDAO.getResultByExamId(Integer.parseInt(request.getParameter("eid")));
%>
<div class="panel" style="float: left;max-width: 900px">
<div class="title">Result of Recent Exam</div>
<div class="profile">
<span class="tag">Exam Date</span><span class="val"><%=result.getDate()
%></span><br/>
<span class="tag">Start Time</span><span class="val"><%=result.getStartTime()
%></span><br/>
<span class="tag">End Time</span><span class="val"><%=result.getEndTime()
%></span><br/>
<span class="tag">Course Name</span><span class="val"><%=result.getcName()
%></span><br/>
<span class="tag">Obt Marks</span><span class="val"><%=result.getObtMarks()
%></span><br/>
<span class="tag">Total Marks</span><span class="val"><%=result.gettMarks()
%></span><br/>
<span class="tag">Result</span><span class="val"><%=result.getStatus()
%></span></h2>
</div>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
<%
}
}else if(session.getAttribute("examStarted")==null ){
%>
<div class="panel form-style-6" style="float: left;max-width: 900px; padding-top: 40px;">
<div class="title" style="margin-top: -60px;">Select Course to Start Exam</div>
<br/>
<form action="controller.jsp">
<br/><br>
<label>Select Course</label>
<input type="hidden" name="page" value="exams">
<input type="hidden" name="operation" value="startexam">
<select name="coursename" class="text">
<%
ArrayList list1=pDAO.getAllCourses();
for(int i=0;i<list1.size();i=i+2){
%>
<option value="<%=list1.get(i)%>"><%=list1.get(i)%></option>
<%
}
%>
</select>
<input type="submit" value="Start Exam" class="form-button">
</form>
</div>
<% }%>
</div>
BIBLIOGRAPHY:
https://www.javatpoint.com/
https://www.w3schools.com/
https://www.youtube.com/