Project Report
Project Report
ON
Bachelor of Engineering in
Information Technology
CERTIFICATE
This is to certify that the Server Side Programming project titled ―ONLINE QUIZ
SYSTEM‖ submitted by Karishma Mittal, Padmini Pal, Harpreet Kaur and Akangkhi Borah of
Information Technology under the Computer Science and Engineering Department, Motilal
Nehru National Institute of Technology (Deemed University), Allahabad, is a bonafide work of
students carried out under my supervision during the year 2011. During the project development
period their performance and conduct the excellent.
We take this opportunity to express our gratitude to all those people who extended their co-
operation and played their important role in successful completion of this project.
We express our sincere thanks to M.M Gore, H.O.D, Computer Science for providing invaluable
support and guidance throughout the project.
Under the guidance and motivation of S.S Paul, this project on ―ONLINE QUIZ
SYSTEM‖ has emerged as a success. By this project, we came to know how to
develop the web services and their actual implementation.
We will be highly obliged to S.S Paul for his valuable instructions and
coordination.
1. Introduction
1.1 Problem Statements
1.2 Scenario
1.3 Available Solution
1.4 Project Perspective
1.5 Users of the Project
2. Brief SRS
2.1 Introduction
2.1.1 Project Scope
2.1.2 Benefits
2.1.3 Constraints
2.1.4 Assumptions and Dependencies
2.2 Project Description
2.2.1 Functions of Project
2.2.2 Modules used
2.3 Requirement Analysis
2.3.1 User Requirement
2.3.2 Feasibility Study
2.3.3 Software Requirement
2.3.4 Hardware Requirement
2.4 Future Scopes
2.5 Bibliography
5. Project Planning
5.1 Software Model Used
5.2 GANTT chart
5.3Responsibility Distribution
9. Testing
9.1 Type of Testing Used
9.2 Testing Strategy
9.3 Test Cases Design
The ONLINE QUIZ is a web application for to take online test in an efficient manner
and no time wasting for checking the paper. The main objective of ONLINE QUIZ is
to efficiently evaluate the candidate thoroughly through a fully automated system
that not only saves lot of time but also gives fast results. For students they give
papers according to their convenience and time and there is no need of using extra
thing like paper, pen etc.
This project is basically built for students of the engineering collage. It is built on
PHP which is very helpful and doesn’t need much Complexity. So it makes the
project efficient and time saving. This website helps all the students who are the
member of any college. They can check their Domain Knowledge. The System
purpose is to completely automate the old manual procedure of conducting exam to
Online Web Based Examination System.
1.2 Scenario
Scenario of this project is very broad in terms of other manually taking exams.
The web pages are used to provide the User Interface on client type basis.
Communication between Client and Server is provided through HTTP Protocols.
On the server side web server is WAMP server and database server is for
storing the information.
1.5 Users of the project
a) Students :
It is basically a Examination for the engineering College students, so it can be
used by Students who are associated with college, examination is available for
them. Students sitting in their rooms can also use it for their Exam. So it is
helpful in saving time which is precious for Student nowadays. And this way
they can easily Check their knowledge about their subjects of interest.
b) Faculty :
Another user mostly faculty member, lecturer or examiner who posts set of
questions of the concerned subject, the available options and correct answers and
can even view the question paper.
c) Administrator:
Super user, who adds faculty and his concerned subject. He can even alter the
student and faculty records.
2. Brief SRS
2.1 Introduction
Online quiz are a popular form of entertainment for web surfers. Online Quiz are
generally free to play & for entertainment purposes only though ONLINE QUIZ website
offer prices.
Online quiz is setup to actually test knowledge or identity a person’s attribute. Some
companies use online quiz as an efficient way of testing a potential hire’s knowledge
without that candidate needing to travel.
2.1.3. Constraints:
Exam can be give by only registered students through login, there is no
facility for guest client.
Students must have to register themselves for giving the exam and after
registration.
Students are not allowed to give exam till 24 hours.
GUI is in only English language.
Limited to HTTP/HTTPS.
The students have no access to the data bases.
Administrator Aspect
1. Taking backup of the database
2. Editing/Deleting/Creating the database.
3. Create/Edit/Delete candidate
4. Logging into the system.
5. Accepting registrations of candidates
6. Adding the candidate to the database
7. Creating a test
8. Posting questions in the above test
9. Marking correct answer within the given options
10. Set negative marks for wrong responses
Student Aspect
1. Requesting registration
2. Logging into the system.
3. Edit user information.
4. Selecting the test.
5. Selecting the difficulty level of the test.
6. Appearing for the examination.
7. Printing the result at the end of the examination
Candidate module.
Administrator module.
The functionality of each module is as follows.
Candidate module: The candidate will logon to the software and take his examination.
He can also check his previous examinations marks and his details. The candidate will
get result immediately after the completion of the examination.
Administrator module: The database is prepared & loaded into the software. Selection
for examination can be done language wise by the administrator. The results will be
displayed immediately after completion of the examination. The administrator collects
all the results after successful completion of the examination and sends the results to the
database.
Chancellor who will be acting as the controller and he will have all the privileges of
administrator.
Students who will be using the above features by accessing the Exam online.
Administrator who will prepare and load database into the software.
Feasibility study is the process of determination of whether or not a project is worth doing.
Feasibility studies are undertaken within tight time constraints and normally culminate in a
written and oral feasibility report. I have taken two weeks in feasibility study with my co-
developer. The contents and recommendations of this feasibility study helped us as a sound
basis for deciding how to proceed the project. It helped in taking decisions such as which
software to use, hardware combinations.
The following is the process diagram for feasibility analysis. In the diagram, the feasibility
analysis starts with the user set of requirements. With this, the existing system is also
observed. The next step is to check for the deficiencies in the existing system. By
evaluating the above points a fresh idea is conceived to define and quantify the required
goals. The user consent is very important for the new plan. Along with, for implementing
the new system, the ability of the organization is also checked. Besides that, a set of
alternatives and their feasibility is also considered in case of any failure in the proposed
system. Thus, feasibility study is an important part in software development.
DEFICIENCES IN
USER CURRENT SYSTEM
STATED
REQUIREMENTS ANALYZE TO FIND DEFINE AND
DEFICIENCES QUANTIFY GOALS
CONSTRAINTS ON RESOURCES
Economical feasibility determines whether there are sufficient benefits in creating to make
the cost acceptable, or is the cost of the system too high. As this signifies cost-benefit
analysis and savings. On the behalf of the cost-benefit analysis, the proposed system is
feasible and is economical regarding its pre-assumed cost for making a system.
During the economical feasibility test we maintained the balance between the Operational
and Economical feasibilities, as the two were the conflicting. For example the solution that
provides the best operational impact for the end-users may also be the most expensive and,
therefore, the least economically feasible.
Economic analysis is most frequently used for evaluation of the effectiveness of the
system. More commonly known as cost/benefit analysis the procedure is to determine
the benefit and saving that are expected from a system and compare them with costs,
decisions is made to design and implement the system.
This part of feasibility study gives the top management the economic justification for the
new system. This is an important input to the management , because very often the top
management does not like to get confounded by the various technicalities that bound to
be associated with a project of this kind.
A simple economic analysis that gives the actual comparison of costs and benefits is
much more meaningful in such cases.
Because, if the organization implements this system, it need not require any additional
hardware resources as well as it will be saving lot of time.
As we know that the system development costs are usually one-time costs that will not
recur after the project has been completed. For calculating the Development costs we
evaluated certain cost categories viz.
Payback analysis
Return on Investment:
Net Present value
b) Technical Feasibility
Technical feasibility centers on the existing manual system of the test management
process and to what extent it can support the system.
Technical feasibility determines whether the work for the project can be done with the
existing equipment, software technology and available personnel. Technical feasibility is
concerned with specifying equipment and software that will satisfy the user requirement.
The system offers greater levels of user friendliness combined with greater processing
speed. Therefore, the cost of maintenance can be reduced. Since processing speed is very
high and the work is reduced in the maintenance point of view management convince that
the project is operationally feasible.
c) Behavioral Feasibility
People are inherently resistant to change and computer has been known to facilitate
changes.
An estimate should be made of how strong the user is likely to move towards the
development of computerized system.
These are various levels of users in order to ensure proper authentication and
authorization and security of sensitive data of the organization.
d) Operational feasibility
Operational feasibility criteria measure the urgency of the problem (survey and study
phases) or the acceptability of a solution (selection, acquisition and design phases). How do
you measure operational feasibility? There are two aspects of operational feasibility to be
considered:
Is the problem worth solving or will the solution to the problem work?
There are certain measures, which decide, the effectiveness of the system. These
measures can be collectively called as PIECES.
P (Performance):
The Online Quiz system provides adequate throughput and response time.
I (Information):
The Online Quiz system provide end-users and managers with tamely, pertinent,
The Online Quiz system offers adequate service level and capacity to reduce the costs of
the business or increase the profits of the business.
C (Control):
The Online Quiz system offers adequate controls to protect against fraud and
embezzlement and to guarantee the accuracy and security of the data and information via
authentication checks.
E (Efficiency):
The CCTS make maximum use of available resources including people, time, flow of
forms, minimum processing delays and the like.
S (Services):
The Online Quiz system provide desirable and reliable service to those who need it. The
Online Quiz system is flexible and expandable.
Server Side
Client side
The minimum hardware as recommended by all of the software required on client side
say web browser, operating system.
2.5 Bibliography
PHP Wrox Beginning PHP5, Apache, and MySQLWeb Development 2005.
PHP 5 AND MY SQL BIBLE.
How to Do Everything with PHP and MySQL (McGraw-Hill,2005).
www.php.net
httpd.apache.org
www.mysql.com
www.w3schools.com
www.google.com
a) ER Diagram :
b) Data Dictionary:
1. Data Elements:
The most fundamental data is the elements. They are building blocks for all other
data in the system. Data elements are also alternatively known as fields, data item
or elementary item.
2. Data Structure:
A data structure is a set if items that are related to one another and described a
components in the system.
List Of Tables:
Students
qbch101
qbcs201
qbma101
qbph101
Faculty
Results
Students:
qbch101:
Qbcs201:
qbma101
qbph101:
Faculty
a) For Students:
b) For Administrator:
c) For Faculty :
5 Project Planning
5.1 Software model used
Regardless purpose of the process model that is chosen for a software project of all the stages
co exist simultaneously at some level of detail.
System & Software Design: Before a starting for actual coding, it is highly important to
understand what we are going to create and what it should look like? The requirement
specifications from first phase are studied in this phase and system design is prepared.
System Design helps in specifying hardware and system requirements and also helps in
defining overall system architecture. The system design specifications serve as input for
the next phase of the model.
Implementation & Unit Testing: On receiving system design documents, the work is
divided in modules/units and actual coding is started. The system is first developed in
small programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality; this is referred to as Unit Testing. Unit testing
mainly verifies if the modules/units meet their specifications.
Integration & System Testing: As specified above, the system is first divided in units
which are developed and tested for their functionalities. These units are integrated into a
complete system during Integration phase and tested to check if all modules/units
coordinate between each other and the system as a whole behaves as per the
specifications. After successfully testing the software, it is delivered to the customer.
Operations & Maintenance: This phase of "The Waterfall Model" is virtually never
ending phase (Very long). Generally, problems with the system developed (which are not
found during the development life cycle) come up after its practical use starts, so the
issues related to the system are solved after deployment of the system. Not all the
problems come in picture directly but they arise time to time and needs to be solved;
hence this process is referred as Maintenance.
5.2 Gantt Chart
Gantt chart is a graphical representation of the duration of time against the progression
time. A Gantt chart is a useful tool for planning and scheduling projects. A Gantt
chart is useful when monitoring a projects progress. A gantt chart is a type of bar
chart that illustrates a project schedule. It illustrates the start and finish dates of the
terminal elements and summary elements of a project.Terminal elements and
summary elements comprise the work breakdown structure of the project.
January February March April
17/01/11 20/01/11 3d
22/01/11
9/02/11 19d
15/04/11 20/04/11 5d
14/04/11 25/04/11 9d
Each member of our group has been allotted a set of tasks to be completed for the project
implementation. The work load Distribution and the role of each member is defined hereby:
This involves designing of web pages to be displayed and storing the information related
to student records of personal information and their performance in the tests attempted.
The task involves maintaining sessions as long as the user logs in to take the test and php
coding.
I would basically be dealing with question paper generation, question paper matrix and so
on i.e the framing of questions
Questions are framed on the basis of difficulty levels (easy, medium and hard). The
Questions are framed according to the requirements of the students like the specific
topics they required to be covered in any subject pertaining to the feedback provided.
There are three sets of questions , one for each stream (PCM,PCB,PCMB).
Creating data banks and tests with the Online Examination System
o Multiple Choice
This question type allows the user to select ONE correct answer
- Options can be randomised
- More than one option can be correct but the user can only select ONE option
- Score can be set per option
- No limitation on number of options
- If there are a number of Options, these can be presented in a column(s).
o Multiple Response
This question type allows the user to select more than ONE correct answer
- Options can be randomised.
- Score can be set per option.
- No limitation on number of options.
- If there are a number of Options, these can be presented in a column(s).
- The number of responses students enter can be limited.
o Information page
This screen provides information but does not contain a question
- No limitation on the amount of text (scroll bar).
o Matching
This question type gives the user the opportunity to match data in columns
- The options in the selection box can be matched to more than one option in the column.
- Score can be set per match.
- The options in the selection box as well as options in the column can be randomised.
- No limitation on the number of options in the column or selection box.
o Numeric
This question type gives the user the opportunity to type in a numeric answer
- Ranges can be set.
- The number of decimal places can be limited.
- The number of decimal places can be set.
- Score can be set per answer.
- No text answers can be typed.
Each advertisement must make a proposition to the consumer. Not just words, not
just product puffery, not just show-window advertising. Each advertisement must
say to each reader: "Buy this product, and you will get this specific benefit."
The proposition must be one that the competition either cannot, or does not, offer.
It must be unique—either a uniqueness of the brand or a claim not otherwise made
in that particular field of advertising.
The proposition must be so strong that it can move the mass millions, i.e., pull
over new customers to your product.
<?php
?>
<?php
mysql_select_db("onlexam", $con);
$i=1;
echo "<table border=\"1\" div align=center><tr><th>choose to
delete</th><th>username</th><th>course of instruction</th></tr>";
while($row = mysql_fetch_array($result))
$i++;
echo "</table>";
?>
<?php
session_start();
$name=$_SESSION['myusername'];
$con = mysql_connect("localhost","root","karish");
if (!$con)
if (isset($_POST['submit'])) {
$users = $_POST["users"];
$how_many = count($users);
echo 'users chosen: '.$how_many.'<br><br>';
if ($how_many>0) {
echo "<br><br>";
mysql_select_db("onlexam", $con);
for($g=0;$g<$how_many;$g++)
$x=$users[$g];
mysql_close($con);
?>
//selecting the user to delete and the action will perform on ad11.php
<?php
mysql_select_db("onlexam", $con);
$i=1;
echo "<table border=\"1\" div align=center><tr><th>choose to
delete</th><th>username</th><th>course of instruction</th></tr>";
while($row = mysql_fetch_array($result))
$i++;
echo "</table>";
?>
<?php
session_start();
$name=$_SESSION['myusername'];
$con = mysql_connect("localhost","root","karish");
if (!$con)
if (isset($_POST['submit'])) {
$users = $_POST["users"];
$how_many = count($users);
if ($how_many>0) {
echo 'these users got deleted:<br>';
echo "<br><br>";
mysql_select_db("onlexam", $con);
for($g=0;$g<$how_many;$g++)
$x=$users[$g];
mysql_close($con);
?>
<?php
$con=mysql_connect("localhost","root","karish");
if(!$con)
mysql_select_db("onlexam",$con);
$a=$_POST['name'];
$b=$_POST['passwd'];
$c=$_POST['courses'];
header("location:ad4.php");
else
VALUES('$_POST[name]','$_POST[passwd]','$_POST[courses]')";
if(!mysql_query($sql,$con))
mysql_close($con)
?>
<?
session_start();
if(!session_is_registered(myusername)){
header("location:ad1.php");
?>
<?php
$con=mysql_connect("localhost","root","karish");
if(!$con)
mysql_select_db("onlexam",$con);
$a=$_POST['name'];
$b=$_POST['passwd'];
$c=$_POST['cpi'];
$d=$_POST['sem'];
header("location:ad3.php");
else
VALUES('$_POST[name]','$_POST[passwd]','$_POST[cpi]','$_POST[sem]')";
if(!mysql_query($sql,$con))
mysql_close($con)
?>
//to select the courses
<?php
$h=date("H");
$m=date("i");
?>
<?php
session_start();
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$course=$row['courses'];
$count=mysql_num_rows($result);
if($count==1){
session_register("myusername");
session_register("mypassword");
if($course=="cs201"){header("location:c2alogin_success.php");}
if($course=="ch101"){header("location:c2blogin_success.php");}
if($course=="ph101"){header("location:c2clogin_success.php");}
if($course=="ma101"){header("location:c2dlogin_success.php");}
}
else {
header("location:c2main_login1.php");
/*session_unset();
ob_end_flush();
?>
<?php
$con=mysql_connect("localhost","root","karish");
if(!$con)
mysql_select_db("onlexam",$con);
VALUES('$_POST[ques]','$_POST[op1]','$_POST[op2]','$_POST[op3]','$_POST[op4]','$_POS
T[ans]')";
if(!mysql_query($sql,$con))
?>
<?php
$con=mysql_connect("localhost","root","karish");
if(!$con)
mysql_select_db("onlexam",$con);
$a=$_POST['qno'];
$b=$_POST['ques'];
$c=$_POST['op1'];
$d=$_POST['op2'];
$e=$_POST['op3'];
$f=$_POST['op4'];
$g=$_POST['ans'];
$h=$_POST['marks'];
header("location:c2alogin_success1.php");
else
if(!mysql_query($sql,$con))
mysql_close($con)
?>
<?php
$con = mysql_connect("localhost","root","karish");
if (!$con)
mysql_select_db("onlexam", $con);
while($row = mysql_fetch_array($result))
?>
//marks evaluation
<?php
session_start();
$name=$_SESSION['myusername'];
$con = mysql_connect("localhost","root","shyamnarayan");
if (!$con)
mysql_select_db("onlexam", $con);
$marks=0;
$i=1;
while($row = mysql_fetch_array($result))
if($row['ans']==$_POST[$i])
$marks=$marks+$row['marks'];
$i=$i+1;
if(mysql_num_rows($resu)==0)
<tr>
<td colspan=4></td>
<tr><td colspan=4></td>
$pog=0;
while($rip=mysql_fetch_array($resu))
{
if($rip['name']==$name && $rip['course']=='ph101' )
$pog=1;}
if($pog==1)
</table>";
if($pog==0)
if($name!="")
<tr>
<td colspan=4></td>
<tr><td colspan=4></td>
}}
if($name=="")
header("location:smain_login.php");
mysql_close($con);
?>
9. Testing
Quality is ensured.
The application is tested against heavy loads or inputs such as testing of web sites
in order to find out at what point the web-site/application fails or at what point its
performance degrades. Load testing operates at a predefined load level, usually
the highest load that the system can accept while still functioning properly. Note
that load testing does not aim to break the system by overwhelming it, but instead
tries to keep the system constantly humming like a well-oiled machine .In the
context of load testing, extreme importance should be given of having large
datasets available for testing. Bugs simply do not surface unless you deal with
very large entities such thousands of users in repositories such as
LDAP/NIS/Active Directory; thousands of mail server mailboxes, multi-gigabyte
tables in databases, deep file/directory hierarchies on file systems, etc. Testers
obviously need automated tools to generate these large data sets, but fortunately
any good scripting language worth its salt will do the job.
9.2.6 Domain testing:
Domain testing is the most frequently described test technique. Some authors
write only about domain testing when they write about test design. The basic
notion is that you take the huge space of possible tests of an individual variable
and subdivide it into subsets that are (in some way) equivalent. Then you test a
representative from each subset.
Regression testing is a style of testing that focuses on retesting after changes are
made. In traditional regression testing, we reuse the same tests (the regression tests).
In risk-oriented regression testing, we test the same areas as before, but we use
different (increasingly complex) tests. Traditional regression tests are often partially
automated. These note focus on traditional regression. Regression testing attempts
to mitigate two risks:
Some change had a side effect, unfixing an old bug or introducing a new bug.
In this type of testing, the software is handed over to the user in order to find out if
the software meets the user expectations and works as it is expected to. In software
development, user acceptance testing (UAT) - also called beta testing, application
testing, and end user testing - is a phase of software development in which the
software is tested in the "real world" by the intended audience. UAT can be done by
in-house testing in which volunteers or paid test subjects use the software or, more
typically for widely-distributed software, by making the test version available for
downloading and free trial over the Web. The experiences of the early users are
forwarded back to the developers who make final changes before releasing the
software commercially.
In this type of testing, the users are invited at the development centre where they use
the application and the developers note every particular input or action carried out by
the user.
Any type of abnormal behaviour of the system is noted and rectified by the
developers.
In this type of testing, the software is distributed as a beta version to the users and
users test the application at their sites. As the users explore the software, in case if
any exception / defect occurs that is reported to the developers. Beta testing comes
after alpha testing. Versions of the software, known as beta versions , are released to a
limited audience outside of the company. The software is released to groups of people
so that further testing can ensure the product has few faults or bugs. Sometimes, beta
versions are made available to the open public to increase the feedback field to a
maximal number of future users.
Text boxes cannot be left blank. Account number field has to be given in numbers.
Submit
b
Submit
Enter
TL 03 UserName: Enter Your Correct
Your
(Admin Login) Password: Unsuccessful Username And
Correct
Password
Userna
Submit
me And
Passwo
rd
m
TL 04 UserName: -Add students in
(Admin Login) Password: Successful database
-Add faculty in
Submit
database
-Delete students in
database
-Delete faculty in
database
UserName:
TL 06 Password: Successful Enter questions in
(Faculty Login) question bank
Submit
20E1 Question
Ban
EnterQ.No :
EnterQues:
TL 07 Options: Unsuccessful Please enter a valid
(adding questiom) 1. 222 2. entry
3. 4.
Answers:
Marks:
Enter
EnterQ.No :
EnterQues:
Options:
TL 07 1. 222 2. Question added
(adding questiom) 3. 4. Successful View the paper
Answers:
Marks:
Enter
10. Cost of the project
It is the responsibility of the project manager to make accurate estimations of effort and
cost. This is particularly true for projects subject to competitive bidding where a bid too
high compared with competitors would result in losing the contract or a bid too low could
result in a loss to the organisation . This does not mean that internal projects are
unimportant. From a project leaders estimate the management often decide whether to
proceed with the project. Industry has a need for accurate estimates of effort and size at a
very early stage in a project. However, when software cost estimates are done early in the
software development process the estimate can be based on wrong or incomplete
requirements. A software cost estimate process is the set of techniques and procedures
that an organisation use to arrive at an estimate. An important aspect of software projects
is to know the cost are-
10.1 Planning: Our web site is a package to assist students preparing for placements
.Some students lack guidance in the course of their preparation for job. So this site is
developed taking in consideration their problems and hence , includes all necessary
details regarding how to prepare and what to prepare .So it provides the proper guidance
and also keeps the information up-to-date.