APHExams Book
APHExams Book
On
By
HARSHAL DALVI (A-12)
University of Mumbai
www.dmce.ac.in , www.dmce.edu
CERTIFICATE
This is to certify that Harshal Dalvi, Pranav Firake and Aditya Gaikar
have successfully completed their project work on ANROID BASED
ONLINE TESTING SYSTEM in the partial fulfillment of the degree of
Bachelor of Computer Engineering, University of Mumbai during the
academic year 2013-14.
Our gratitude and sincere thanks to Principal Sir Dr. S D Sawarkar and Prof. A. P.
Pande (HoD of Computer Department) for providing all the necessary system facilities and
privileges that enabled us to complete the project in time. I would also like to thank Mrs.
Nusrat Parveen for her guidance, genuine suggestions and constant encouragement, without
which this project would not be a success.
We would like to thank my colleagues and friends who helped us in the successful
completion of the project.
i
ABSTRACT
Online assessment is the process used to measure certain aspects of information for a set
purpose where the assessment is delivered via a computer connected to a network. Most often
the assessment is some type of educational test. Different types of online assessments contain
elements of one or more of the following components, depending on the assessment's
purpose: formative, diagnostic, or summative. Instant and detailed feedback, as well as
flexibility of location and time, is just two of the many benefits associated with online
assessments. There are many resources available that provide online assessments, some free
of charge and others that charge fees or require a membership.
‘Online Exam’ means the candidate sits in front of a computer at the examination center and
the questions are presented on the computer monitor and the candidate answers the questions
on the computer through the use of mouse. Unlike the traditional paper-pencil based test
which is generally offered on a single day to all candidates, Online Exam will be offered over
a period of time and the candidate can choose the Center, the Day and Time of his/her
convenience to take the test.
LIST OF FIGURES
Sr. No. Name of the Figure Page No.
ii
8.1 Waterfall Model 15
11.2.1 Login 29
11.2.3 Answer 31
13.2.4 Verbal 46
13.2.6 Quant 47
iii
13.2.8 About 47
13.2.9 User 48
13.2.10 studAuth 48
13.2.11 Exams 49
13.2.12 Vex 50
13.2.13 Results 51
LIST OF TABLES
iv
7.11.3 Business Risks 14
12.2.1 studAuth 36
12.2.2 User 36
12.2.3 Vex 36
12.2.4 Exams 37
12.2.5 Results 37
CONTENTS
Certificate
Acknowledgements
Abstract
List of Figures
List of Tables
v
1. Introduction 01
3. Literature Review 03
4. Existing System 05
5. Problem Definition 06
6. Scope of Project 08
7. System Requirement Specifications (SRS) 09
8. Methodology 15
9. System Analysis 19
10. System Architecture 21
12. Implementation 36
References 53
vi
1. INTRODUCTION
In recent times, you‟ll hardly find a college student or a job professional without any kind of
mobile device, be it smartphones, tablets, readers or anything else. It has become absolutely
essential to own one and majority of these devices, more than about 50% are operated on
Android operating system. The need to provide a means of taking tests for the users constantly
on the go has culminated in our desire to design an online testing service based on this operating
system.
Android based online testing system is an extension to the simple testing systems that exist as
the current means of conducting tests over desktop computers. The main objective of this system
is to provide the user with the ability to give test and access the various facilities of the system on
the go.
The system would allow administrators to create highly customizable tests depending on the
specialised requirements on the type of system to be conducted. The administrator would have
free reign as to the way in which the examination should be conducted and so on. The users
would be able to access these tests on their android based handheld devices and thus would
provide them with the required mobility and ease of use.
1
2. AIM AND OBJECTIVES
The objective of the android based online testing system is to enable users of mobile devices
operating on different versions of android operating system to take tests in case of the
unavailability of a hard and fast desktop computer or laptop in that instance. The main reason for
a testing system based on android would be to keep up with the changing times and offering
users the simplicity and effectiveness of just genuinely taking or giving a test on a device they all
love to have.
This system, when completed may be used by anyone ranging from the faculty of a college or
university, an organization conducting specific intelligence tests and even the placement cell of a
big company or even that of a college. It would enable a lot of users to take tests concurrently in
a given period of a professional sitting or even have these tests given by them in their own time
in the comfort of their homes or workplaces.
To ensure the integrity and security of the system, proper steps would be taken and as the
questions would mostly range from a given database of general intelligence quotient, vocabulary
and fast math problems, the risk of cheating by users can be effectively avoided. As results and
performance review would be quick and easy, it would result in a lot of time being saved and
costs being cut down.
2
3. LITERATURE REVIEW
The Android platform consists of several layers which provide a complete software stack.
Android applications are Java-based and this factor entails the use of a virtual machine VM
environment, with its advantages. Android uses its own VM called Dalvik, which interprets and
executes portable Java-style byte code after transforming it, which is optimized to operate on the
mobile platform. All of these aspects make Android an appealing target to be used in other type
of environments. The remainder of this paper is organized as follows: Section II briefly describes
3
the Android mobile platform. Section III presents Android application execution process. Section
IV briefly describes the Android market share. Finally Section V concludes this paper.
Shyam Bhati, Sandeep Sharma, Karan Singh, (Department of Computer Science and
Engineering, SOICT Gautam Buddha University, India) (Department of Electronics and
Communication Engineering, SOICT Gautama Buddha University, India)
4
4. EXISTING SYSTEM
The systems that exist currently in the field of online examination services are either automated
completely relying on huge resources generating large costs for the organisations involved or are
completely manual relying on a large workforce to successfully conduct, grade and supervise the
examinations.
The manual type of examination and testing has some definite disadvantages as it purely relies
on the older methods and paper based tests resulting in a lot of time wastage for people with
constraint. You would have to first reach a destined place for appearing the exam and then with
all the writing and marking, a definite amount of resource both on the part of the user and
conductor is used.
The desktop based online or offline kind of testing systems that exist are those that either
use Internet based servers and databases for relying to provide the intended services and use. The
offline systems use software data that are collected periodically resulting in the maintenance of a
backend larger data house.
Although the online desktop based systems that exist are very effective, they have a
disadvantage of being conducted on specifically designated machines with steadfast
requirements that may hinder a normal user from taking the benefits of the system that is
provided. The users, in order to access these systems, have to be at a specified place at a
specified time like the manual system of examinations as the integrity of the test or users can be
questioned.
Thus, the existing systems all have some or the other disadvantages which we hope to overcome
in the development of the android based online testing system.
5
5. PROBLEM DEFINITION
The primary concern of project will be to develop an application for online exam system.
Application should be designed as compatible to android OS. There will be two logins for the
system. One will be by an Administrator. And other will be by student.
An administrator would have an access to whole databases and system flow. Admin can
authenticate and authorise students. Admin can manage tests being conducted. Admin can set up
exam policy for each test in the future versions. Exam policy may include whether to follow
negative marking or not. Admin can also set marks distribution scheme under exam policy.
Admin can set up temporal aspects to the test. Tests will be regarding mainly aptitude ability
including quantitative knowledge and verbal proficiency. Admin can set up questions for the test.
Admin can modify details of test regarding number of questions. Admin can add, delete, and
modify the questions for the tests. Admin would give questions and answer options for the test.
Tests will be objective type of tests with 4 answer choices for each question. Tests will be graded
according to a +5 for the correct answer and -1 for a wrong one. Admin can view, modify, delete
the reports of students and also can have overview to overall online test system. Admin can add
or remove students in the system. Admin can see the reports of students and results of students.
Second login will be for students. Student must login to the application through their
android enabled handheld device. Authenticated students can choose which test to appear and
give the test. Students will be answering questions by clicking right choice from options offered
for that question. The student may choose to answer all the questions or only those that he knows
the correct answer to due to the inclusion of negative marking scheme. Database must be
maintained with question IDs and answer choice student has stated.
Marks evaluation process is handled by the system. As the student terminates the test or test is
over, system gets the database of students‟ questions and marked answers. Then system tallies
these answer with database having right answer choices stated by test maker. Mark evaluation
policy given by admin is strictly followed. After considering all constraints as negative marking,
6
if applied, Marks are evaluated and flashed on screen of student. Database entry is also done
stating the test ID, student ID and marks that student obtained.
System should be optimized to give quick results just after student gets finished with test.
Reports can be made about students result. System should be developed so that it can be used
under Android OS platform so that from handheld devices such as Android enabled Smartphones
and Tablets with varied versions of android OS.
7
6. SCOPE OF THE PROJECT
The system will provide the users with the following functionalities:
Create an account: Users will be able to create their own accounts registered on a valid e-mail
id and login name which would enable them to access the various services in the testing system
as a whole.
Appear for the test: The main aim of the system is to enable the users to give tests and it will
provide them with the functionality.
View results: As soon as a user is done with the test, his/her performance report or result will
automatically be displayed on the screen. After the duration of a few days or weeks, the user
would also be able to view his percentile performance based on the number of users who have
actually given the tests in the stipulated duration.
Set questions: Questions for the two sections, namely verbal and quantitative aptitude can be set
from the application itself.
Update questions database: The administrators always have the option of setting the questions
or in this case, actually updating the database of the question based on the requirements and so
that the questions remain fresh and different every time.
View users: The administrators have the ability to see the users that have been registered on the
system and make the necessary changes on their profiles.
8
7. SYSTEM REQUIREMENT SPECIFICATION (SRS)
The following requirements would be essential for the successful working and functioning of the
system in an effective way:
7.1 Purpose:
The purpose of the android based online testing system is to enable users of mobile devices
operating on different versions of android operating system to take tests in case of the
unavailability of a hard and fast desktop computer or laptop in that instance. The main reason for
a testing system based on android would be to keep up with the changing times and offering
users the simplicity and effectiveness of just genuinely taking or giving a test on a device they all
love to have.
9
highly customizable tests depending on the specialised requirements on the type of system to be
conducted. The administrator would have free reign as to the way in which the examination
should be conducted and so on.
10
• Student 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.
• Admin module: The database is prepared & loaded into the software. Selection for
examination can be done language wise by the admin. The results will be
displayed immediately after completion of the examination. The administrator
collects all the results after successful completion of the examination.
The features that are available to the Administrator are:
• The administrator has the full-fledged rights over the system.
• Can create/delete an account.
• Can view the accounts.
• Can change the password.
• Can hide any kind of features from the both of users.
• Insert/delete/edit the information of available on system.
• Can access all the accounts of the faculty members/students.
• Can view the different categories of Test conducted by users.
• Can view their marks.
• Can view and modify Results.
11
• The database shall be able to accommodate a minimum of 1,000 records of
students.
• The software shall support use of multiple users at a time.
• There are no other specific performance requirements that will affect
development.
7.9.2.Reliability
System is reliable for whole application area. Reliability measures are followed in the
development of android based system.
7.9.4.Security
Some of the factors that are identified to protect the software from accidental or
malicious access, use, modification, destruction, or disclosure are described below. Keep
specific log or history data sets
User authentication and verification.
Assign certain functions to different modules
Restrict communications between some areas of the program
Check data integrity for critical variables
Later version of the software will incorporate encryption techniques in the
user/license authentication process.
7.9.5. Maintainability
The Quality of the System is maintained in such a way so that it can be very user friendly
to all the users.
The software quality attributes are assumed as under:
12
• Accurate and hence reliable.
• Secured.
• Fast speed.
• Compatibility.
Project Risks:
The experienced staff in low serious Use more than one staff for
the team leave the project each section, which might
before it finishes, or minimize this risk. Also,
someone was ill manager tries to increase
salary for him.
13
HW requirement aren’t moderate serious See if there is any more
available in time. time to delay the project or
not. If there is no more
time work by the team
computers, to minimize
this risk.
Product Risks:
Business Risks:
14
8. METHODOLOGY
For designing Android based Online Exam System, we will use following methodology:
8.1. Software Process Model:
To solve an actual problems in an industry, software developer or a team of developers
must integrate with a development strategy that include the process, methods and tools layer and
generic phases. This strategy is often referred to a process model or a software developing
paradigm.
Our project follows the waterfall model.
The steps of waterfall model are:
• Requirement Definition
• System and Software Design
• Implementation
• Integration and System Testing
• Operation and Maintenance
15
Front End:
XML for frame design
Android SDK through Eclipse IDE
Back End:
Java
Parse Android SDK
Database Tools:
Parse.com
Java:
It is a general-purpose, concurrent, class-based, object-oriented computer programming
language that is specifically designed to have as few implementation dependencies as possible. It
is intended to let application developers "write once, run anywhere" (WORA), meaning that code
that runs on one platform does not need to be recompiled to run on another. Java applications are
typically compiled to byte code (class file) that can run on any Java virtual machine (JVM)
regardless of computer architecture. Java is, as of 2012, one of the most popular programming
languages in use, particularly for client-server web applications, with a reported 9 million
developers. Java was originally developed by James Gosling at Sun Microsystems (which has
since merged into Oracle Corporation) and released in 1995 as a core component of Sun
Microsystems' Java platform. The language derives much of its syntax from C and C++, but it
has fewer low-level facilities than either of them. It is most useful language and has vast
application over varied aspects.
Eclipse IDE:
16
Eclipse is a multi-language Integrated development environment (IDE) comprising a base
workspace and an extensible plug-in system for customizing the environment. It is written
mostly in Java. It can be used to develop applications in Java and, by means of various plug-ins,
other programming languages such as python, PHP etc. Eclipse is platform that helps to
synchronise xml schema files, java swing with database query languages such as MySQL,
SQLite etc. One can also synchronise android SDK and ADT to back end programming using
Eclipse IDE.
Android SDK:
Android is an operating system for mobile phone and tablets owned by Google Inc. Android
SDK is software development kit for android OS applications. One can develop application that
is compatible to android OS with the help of SDK. Enhancements to Android's SDK go hand in
hand with the overall Android platform development. The SDK also supports older versions of
the Android platform in case developers wish to target their applications at older devices.
Development tools are downloadable components, so after one has downloaded the latest version
and platform, older platforms and tools can also be downloaded for compatibility testing. For
integrated environment, Android SDK is often used with Android ADT plugging which gives
varied abstract data tools for software development process.
XML:
Extensible Mark-up Language (XML) is a mark-up language that defines a set of rules for
encoding documents in a format that is both human-readable and machine-readable. Although the
design of XML focuses on documents, it is widely used for the representation of arbitrary data
structures, for example in web services. One can use xml for developing design for applications.
Many application programming interfaces (APIs) have been developed to aid software
developers with processing XML data, and several schema systems exist to aid in the definition
of XML-based languages.
Parse:
17
With Parse, you can add a scalable and powerful backend in minutes and launch a
fullfeatured app in record time without ever worrying about server management. We offer push
notifications, social integration, data storage, and the ability to add rich custom logic to your
app‟s backend with Cloud Code. Parse allows your team to focus on creating a great user
experience and forget server maintenance and complex infrastructure. Instantly add push
notifications, data storage, social integration, and more the moment you integrate a Parse SDK
into your app. Our native SDKs for iOS, Android, Windows 8, Windows Phone 8, OS X,
Xamarin, Unity and JavaScript make it easy to create beautiful and powerful apps for all of your
favourite devices. From desktop to mobile apps, Parse has a SDK for everyone.
9. SYSTEM ANALYSIS
18
• The application will enable a user to Exam.
• The application will enable a student of the Institute to register to use the application.
• The application will enable registered members cannot re-Examination after entering
their Examination details.
• The application will enable to view Examination details to the administrator.
• The registered user cannot be able to modify any personal details such as address or
phone number after Examination.
Following are the modules of Online Exam software:
(1) Verifier:
This module verifies the authentication of the users/examinees and provides the further access to
authenticated users.
(2) Conductor:
This module conducts the examination and provides different menus to users/examinees.
The user interacts with the system with module. It provides a user friendly interface to users.
Student when chooses to start the test, Questions are flashed on device screen with options.
Students have to click on the answer which is probable answer by his/her perceptive. Activities
involved are:
1. Setting a test:-
Admin decides a particular test to be set for students. When admin creates such test would be
given unique test ID. 2. Setting marks evaluation policy:-
Admin decides set of rules for evaluating marks of student. Rules may include whether to
keep negative marking or not and so on.
3. Setting questions:-
Admin set questions, options for those questions as well as he/she state the right answer choice
to the system so that system can tally those answers in marks evaluation.
19
Students are the actual test givers. They select test from test pool to answer. Students have to log
in first. Then they will give test. Various activities involved are
1. Authentication:-
Only the authenticated students can give the test. If students enter wrong user ID or password,
he/she won‟t be permitted to
2. Selecting the test:-
From pool of tests, students have to select the test he/she wanted to see.
3. Selecting the mode: -
Test will be in timed or practice mode. So student has to decide whether to give exam in practice
or timed mode. 4. Giving test: -
In actual test giving, student sees questions and marks the most probable answer.
Examination process:
First of all the user/examinee gets a valid identification number - user ID (same as the roll no for
a normal examination).The user can log on with this identification no. and can take up the
examination. After logging in the user can see various options and can choose the option from
the menu.
Results:
After completion of examination the administrator can view the results within seconds.
And also these results are displayed on screen
10. SYSTEM ARCHITECTURE
20
10.1: Software Architecture
The above Style is popularly known as the “blackboard style” under „shared memory and state‟
kind of architectural styles. The main reasons for adapting this style were:
• Requirement of a central database
• Allows a program to run on a machine without compiling the program into native code
Any architecture in general should follow any two of the three basic principles to achieve
success; they are Scalability, Performance and Functionality.
For our project, performance and functionality were of utmost important hence we choose the
above architectural style which best describes the same.
10.2 Data Flow Diagrams:
The Data flow Diagram shows the flow of data. It is generally made of symbols given
below:
A square shows the Entity.
A Circle shows the Process
21
An open Ended Rectangle shows the data store.
An arrow shows the data flow.
The DFD can be up to several levels. The 0 level DFD states the flow of data in the
system as seen from the outward in each module.
The first level DFD show more detail, about the single process of the 0 level DFD The
second level DFD can show even more details and so on.
Construction a DFD:
• Process should be named.
• The direction of flow is from top to bottom and from left to right.
• When a process is exploded into lower level details, they are numbered.
• The name of data stores, sources, and destinations are written in capital letters. Process
and data flow names have the first letter of each word capitalized.
22
Data F
10.2.1. LEVEL-0 low Diagram:
STUDENT
Android
DATABASE
23
Data F
10.2.1: LEVEL 0 DFD
10.2.2 LEVEL-1 low Diagram:
ADMIN
RESULT
TABLE
STUDENT
RESULT
Login
Admin
24
Data F
See result
Login
EDIT
PROFILE
STUDENT RESULT
Login
LOGIN
RESULT DB
Join exam,
time table
EXAM
REGISTRATION
EXAM DB
STUDENT
ADMIN
ADMIN DB
Manage EXAM HANDLE
Question
ADMIN
MODIFY
Login
Change Password
LOGIN
ADMIN DB
ADMIN
26
System
27
higher-level view of the system. It has been said before that "Use case diagrams are the
blueprints for your system".
In the system, the administrator is provided with the facilities of setting user profiles,
authenticating student registration and managing tests. These tasks, in turn are all verified by the
system. A student can appear for the test and get the results. Authentication and result generation
tasks are performed by the system.
Activity diagrams are graphical representations of workflows of stepwise activities and actions
with support for choice, iteration and concurrency. In the Unified Modelling Language, activity
diagrams can be used to describe the business and operational step-by-step workflows of
components in a system. An activity diagram shows the overall flow of control.
The below illustrated diagrams shows the each activity in detail as it takes place accordingly in
the system detailing the flow of interaction between users and the administrative system.
Each of the following diagrams is unique in the aspect of the activity under consideration
and display.
28
Enter Username And
Password
invalid login
Valid Login
Redirect to admin
homepage
11.2.1: Login
29
11.2.2 Manage Test Activity
Login
Create new
Edit Test
test
Select Existing
test
Give answer
Add question
choices
Set correct
Add more questions answers
Allow practice
Set test mode
mode
Set negative
marks ratio
30
11.2.3 Answer Test Activity
Students Login
Select Test
Answer
Questions
11.2.3: Answer
31
11.2.4 Generate Results Activity
Add marks to
the score
if negative marking
enabled
no negative
marking
Deduct marks
from the score
Display Result
33
A sequence diagram is a kind of interaction diagram that shows how processes operate with one
another and in what order. A sequence diagram shows object interactions arranged in time
sequence. It depicts the objects and classes involved in the scenario and the sequence of
messages exchanged between the objects needed to carry out the functionality of the scenario.
34
A collaboration diagram describes interactions among objects in terms of sequenced
messages. Collaboration diagrams represent a combination of information taken from class,
sequence, and use case diagrams describing both the static structure and dynamic behavior of a
system.
The above diagram explains the interactions between the various objects in this system. Here,
the objects which access the system and perform their respective functions are shown
collaborating according to their individual sequences. The users, the administrators and the
system all come together to form a responsible and successful interaction application amongst
themselves.
12. IMPLEMENTATION
35
12.1 Introduction
Implementation is the carrying out, execution, or practice of a plan, a method, or any design for
doing something. As such, implementation is the action that must follow any preliminary
thinking in order for something to actually happen. In an information technology context,
implementation encompasses all the processes involved in getting new software or hardware
operating properly in its environment, including installation, configuration, running, testing, and
making necessary changes. The word deployment is sometimes used to mean the same thing.
User
username Password
Vex
vqno vque vopt1 vopt2 vopt3 vopt4 vrightans
Exams
qno Que opt1 opt2 opt3 opt4 rightans
36
Results
Studname quantmarks verbmarks totalmarks
12.2 Coding
<Button
android:id="@+id/qtsexit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
<Button android:id="@+id/qtssubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
37
android:layout_marginLeft="26dp"
android:layout_toRightOf="@+id/textView7"
android:text="Submit" />
<Button android:id="@+id/qtsnext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Next" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView9"
android:layout_marginTop="14dp" android:text="Question"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView8" android:text="Hello"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
38
android:layout_centerVertical="true" android:text="Option (4) :"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/TextView02"
android:layout_toLeftOf="@+id/textView9" android:text="Option
(3) :"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/TextView03"
android:layout_toLeftOf="@+id/textView9"
android:text="Option (2) :" android:textAppearance="?
android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/TextView01"
android:layout_alignParentLeft="true" android:text="Option (1) :"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
39
android:layout_above="@+id/textView4"
android:layout_alignLeft="@+id/qtssubmit"
android:text="Opt1"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView5"
android:layout_alignLeft="@+id/textView3" android:text="Opt2"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView6"
android:layout_alignLeft="@+id/textView4" android:text="Opt3"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/TextView02"
android:layout_marginTop="26dp" android:text="Answer"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
40
android:layout_below="@+id/textView7"
android:layout_toRightOf="@+id/textView7" android:ems="10"
android:hint="Write option number here" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView7"
android:layout_alignRight="@+id/textView9" android:text="Opt4"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
package com.example.Aphexams;
import com.parse.*; import
java.io.*; import java.util.*; import
android.os.Bundle; import
android.app.Activity; import
android.app.ProgressDialog; import
android.content.Intent; import
android.widget.*; import
android.util.Log; import
android.view.Menu; import
android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity; import
41
android.content.Intent; import
android.widget.*; import
android.view.Menu;
import android.view.View; import
android.view.View.OnClickListener; import
java.util.*; public class QTestStart extends
Activity{
Button bqtssubmit,bqtsnext,bqtsexit;
TextView oop1,oop2,oop3,oop4,textView1,qquestn;
EditText ccorrect; public static int num4=1; public
static int counter=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.qtest_start);
Parse.initialize(this, "eX31t72OF1l2SfT72YlLNkBiCiMwRGCf6S8QGMHB",
"r70qpWRJ6IMNgTn7YW2dLZUFMmvTn5GQRfNQcwsd");
counter=0;
num4=1;
42
GetCallback<ParseObject>() { public void done(ParseObject object,
ParseException e) {
if (object == null) {
Log.d("que", "The getFirst request failed.");
} else {
Log.d("que", "Retrieved the object.");
String questiondata=object.getString("que");
final TextView qquestn = (TextView)
findViewById(R.id.textView2); qquestn.setText(questiondata);
String option1=object.getString("opt1"); final TextView oop1 =
(TextView) findViewById(R.id.textView3); oop1.setText(option1);
String option2=object.getString("opt2"); final
TextView oop2 = (TextView) findViewById(R.id.textView4);
oop2.setText(option2);
String option3=object.getString("opt3"); final
TextView oop3 = (TextView) findViewById(R.id.textView5);
oop3.setText(option3);
String option4=object.getString("opt4"); final
TextView oop4 = (TextView) findViewById(R.id.textView6);
oop4.setText(option4); }}}); bqtssubmit =
(Button)findViewById(R.id.qtssubmit);
bqtssubmit.setOnClickListener(new OnClickListener() { public void
onClick(View v) { if(num4==20){
final ProgressDialog dlg = new ProgressDialog(QTestStart.this);
dlg.setTitle("Please wait."); dlg.setMessage("Processing request. Navigating to
result evaluation. Please wait.");
dlg.show();
Intent indexIntent=new Intent(QTestStart.this,Result.class);
indexIntent.putExtra("studentInvoking",studname);
indexIntent.putExtra("quanto",Integer.toString(counter));
indexIntent.putExtra("verbo",verbo);
43
indexIntent.putExtra("which","verbal"); if(tillNow.equals(""))
{indexIntent.putExtra("tillnow","q");} else if(tillNow.equals("v"))
{indexIntent.putExtra("tillnow","vq");} startActivity(indexIntent);
}else{
final EditText ccorrect = (EditText) findViewById(R.id.editText1);
String cor=ccorrect.getText().toString().trim();
ParseQuery<ParseObject> query = ParseQuery.getQuery("exams");
query.whereEqualTo("qno",num4);
query.whereEqualTo("rightans",Integer.parseInt(cor));
query.getFirstInBackground(new GetCallback<ParseObject>() { public void
done(ParseObject object, ParseException e) {
if (object == null) {
Log.d("que", "The getFirst request failed.");
ccorrect.setEnabled(false);
counter=counter-1;
} else {
Log.d("que", "Retrieved the object.");
counter=counter+5;
ccorrect.setEnabled(false); }}}); }}});
bqtsnext = (Button)findViewById(R.id.qtsnext);
bqtsnext.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
num4++;
if(num4==21){
Intent indexIntent=new Intent(QTestStart.this,Result.class);
indexIntent.putExtra("studentInvoking",studname);
indexIntent.putExtra("quanto",Integer.toString(counter)); indexIntent.putExtra("verbo",verbo);
indexIntent.putExtra("which","verbal"); if(tillNow.equals(""))
{indexIntent.putExtra("tillnow","q");} else if(tillNow.equals("v"))
{indexIntent.putExtra("tillnow","vq");} startActivity(indexIntent);
}
44
final EditText ccorrect = (EditText) findViewById(R.id.editText1);
ccorrect.setEnabled(true); ccorrect.setText("");
ParseQuery<ParseObject> query =
ParseQuery.getQuery("exams"); query.whereEqualTo("qno",num4);
query.getFirstInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) { if (object ==
null) {
Log.d("que", "The getFirst request failed.");
} else {
Log.d("que", "Retrieved the object."); String
questiondata=object.getString("que"); final TextView qquestn =
(TextView) findViewById(R.id.textView2);
qquestn.setText(questiondata); String option1=object.getString("opt1");
final TextView oop1 = (TextView) findViewById(R.id.textView3);
oop1.setText(option1);
String option2=object.getString("opt2");
final TextView oop2 = (TextView) findViewById(R.id.textView4);
oop2.setText(option2);
String option3=object.getString("opt3"); final
TextView oop3 = (TextView) findViewById(R.id.textView5);
oop3.setText(option3);
String option4=object.getString("opt4"); final TextView
oop4 = (TextView) findViewById(R.id.textView6);
oop4.setText(option4); }}});}});
final int fverbo=0;
bqtsexit = (Button)findViewById(R.id.qtsexit);
bqtsexit.setOnClickListener(new OnClickListener() { public
void onClick(View v) { final ProgressDialog dlg = new
ProgressDialog(QTestStart.this); dlg.setTitle("Please wait.");
dlg.setMessage("Processing request. Exiting the test. Please wait.");
dlg.show();
45
Intent indexIntent=new Intent(QTestStart.this,Result.class);
indexIntent.putExtra("studentInvoking",studname);
indexIntent.putExtra("quanto",Integer.toString(counter));
indexIntent.putExtra("verbo",verbo);
indexIntent.putExtra("which","verbal"); if(tillNow.equals(""))
{indexIntent.putExtra("tillnow","q");} else if(tillNow.equals("v"))
{indexIntent.putExtra("tillnow","vq");}
startActivity(indexIntent);}});}
@Override
public void onBackPressed() { Log.d("CDA",
"onBackPressed Called");
Intent indexIntent=new Intent(QTestStart.this,MainActivity.class);
startActivity(indexIntent); }
12.3 Timeline
46
12.3: Project Timeline
47
13.1 Observations
The following things were observed over the course of development of the application:
• The application was developed according to the problem definition and most of the
requirements are satisfied by the application
• The online cloud database was deployed in the perfect fashion and works even with large
number of users and devices accessing the application
• The application can be successfully scaled with advanced versions with much improved
functionality and use
• The following are the typical configurations demanded by the app:
The minimum configuration required for running the application:
Device Android Smartphone with version Éclair and above
RAM 2 GB
Memory 16 GB
13.2 Screenshots
48
13.2.1: Home Page 13.2.2: Admin View
49
13.2.5: Admin Registration 13.2.6: Quant
50
13.2.9: User
The above table includes Admin database. The default User of parse.com is assigned to Admin
in our application. By default the password field in this table is invisible for security purpose. It
has following attributes: username – Username of the Admin password – Password of Admin
13.2.10: studAuth
The above table includes database of Students who have registered for online examination. It has
following attributes: StudUserName – Name of registered students
51
StudPassword – Password of registered students
StudPhnNo – Contact number of registered student
13.2.11: Exams
The above table includes database of Quantitative ability questions, their answer choices and
correct answer for the respective questions. It has following attributes:
qno – It tells about question number.
que – It is actual question. opt1, opt2, opt3, opt4 – These are four attributes of four answer
choices for particular question. rightans – It is right answer of the question.
52
13.2.12: Vex
The above table includes database of Verbal ability questions, their answer choices and correct
answer for the respective questions. Each question has been specifically designed and extracted
taking into consideration the requirements for exams conducted for aptitude analysis. It has
following attributes:
vqno – It tells about question number. vque
– It is actual question.
vopt1, vopt2, vopt3, vopt4 – These are four attributes of four answer choices for particular
question. vrightans – It is right answer of the question.
53
13.2.13: Results
The above table includes Results of the students who have successfully completes the test. It
includes following attributes:
Studname – Name of the student.
Quantmarks – Marks obtained in Quantitative ability test.
Verbmarks – Marks obtained in Quantitative ability test.
Totalmarks – Total marks obtained in both test.
54
14. CONCLUSION AND FUTURE SCOPE
For project of development of android based „Online Test System‟, it was a very fine
experience. The system did fulfil preliminary goals such as android application development
through which students can give test from their handheld device easily, thus adding to our
experience. We have tried our best to implement the system efficiently. It may find its effective
usage in aptitude tests or other objective tests. It is proving to be one of the efficient and agile
methodologies regarding online testing experience.
55
REFERENCES
Bibliography
Books:
1. Android applications (Lauren Darcey, Shane Conder).
2. Mastering in XML(Black Book)
3. Apache Tomcat7(Aleksa Vukotic, James Goodwill)
4. O‟RELLY‟ publications: Learning Android by Mark Gargenta.
Webliography
Websites:
developer.android.com
stackoverflow.com
vogella.com
parse.com
56