Вы находитесь на странице: 1из 72

CHAPTER 1

INTRODUCTION
Online Exams is being launched because a need for a destination that is
beneficial for both institutes and students. With this site, institutes or universities can
register and host online exams. Students can answer the exams and view their results.
This site is an attempt to remove the existing problems in the system of conducting
exams. Purpose Online Exams System fulfills the requirements of the institutes to
conduct the exams in online. They do not have to go to any software developer to
make a separate site for being able to conduct exams in online. They have to register
with their own id and password on the site and enter the exam details and the lists of
the students which can appear in the exam. Students can attend exam without the
need of going to any physical destination. They can view the result at a time
immediately after finishing the exam. Thus the purpose of the site is to provide a
system that saves the efforts, material and time of both the institutes and the students.
The presentation of answers to questions is a key factor in its efficiently meeting the
information.
Online course examinations are useful to evaluate the students knowledge using
modern computer technology without any effects on the traditional university course
exam that uses Papers and invigilators. Online exam can improve the ability of
students examination where the traditional exam system using the pen and paper
requires more effort and time on the part of students and invigilators. Online exams are
considered an important source for university exam, and the development of network
technology has given the possibility to conduct the exams in online. Thus, the
university students and teachers can benefit from this software.

1.1 OBJECTIVES
1. Providing online comprehensive solution to manage exams where the
individuals are participating in a team or induvial
2. To enhance the learning methodology by providing a virtual learning
environment for students and a single window management tool for staffs to
assess the students performance

CHAPTER 2
2

LITERATURE SURVEY
Paper 1: , Yong-Gang Cao Evaluation of the Clinical Question Answering Journal of
Biomedical Informatics 44 (2011) 277288
Proposals: Question answering is different from information retrieval in that it attempts
to answer questions by providing summaries from numerous retrieved documents
rather than by simply providing a list of files that requires users to do further work.
However, the quality of answers that question answering provides has not been
investigated extensively, and the practical approach to presenting question answers
still needs further more study. In addition to factoid answering using phrases or
entities, most question answering systems use a sentence-based approach for
generating answers. However, many sentences are often only meaningful or
understandable in their context, and a passage-based presentation can often provide
efficient, more coherent context. However, passage-based presentations may
introduce additional noise that places greater burden on users.
Achievement: It is very much protected in such a way that it gives permission to the
students to access only when the username and password is correct.
Findings: Collaborative Instructional framework is to be improved

Paper 2: , Heba Kurdi, Sara Alkhaider, Nada Alfaifi,. Development and Evaluation Of
A Web Based Question Answering System For Arabic Language CCSIT pp. 187
202, 2014.
Proposals: Question Answering (QA) systems are gaining great importance due to the
increasing amount of web information and the high demand for digital information that
regular information that has future techniques cannot satisfy. A question answering
system enables users to have a natural language dialog with the machine, which is
required for virtually all emerging online service systems on the Internet. The need for
such systems is higher in the context of the Arabic language. This is because of the
3

scarcity of Arabic QA systems, which can be attributed to the great challenges they
present to the research community, including the particularities of Arabic, such as short
vowels, absence of capital letters, complex morphology, etc.
Achievement:

The results are produced electronically so that nobody is prone to

mistakes.
Finding: Getting students to become intrinsically interested in daily class activities is
complicated

Paper 3: A. Al-Ajlan, H. Zedan, Why Moodle, 2008, 12th IEEE International


Workshop on Future Trends of Distributed Computing Systems .
Proposals: Successful management of online communities of practice can be greatly
informed by strategic and ongoing evaluation practices. The purpose and orientation of
the community will determine which evaluation strategies would be most effective. This
brief provides: An overview of the purposes and goals of community evaluation, An
overview of basic community evaluation approaches, An overview of advanced
community evaluation approaches.
Achievements: Assured that the project is completely authenticated in order to
enhance security and corruptions of database as well as the software.

Paper 4: Gao Cong. Finding Question-Answer Pairs from Online Forums SIGIR
2008, July 20-24, 2008,
Proposals: Online forums contain a huge amount of valuable user generated content.
problem of extracting question-answer pairs from forums. Question-answer pairs
extracted from forums can be used to help Question Answering services (e.g. Yahoo!
Answers) among other applications. the sequential pattern based classification method
to detect questions in a forum language thread, and a graph based propagation
4

method to detect answers for questions in the same thread. Experimental results show
that their techniques are very promising.
Achievements: The person is given access only if he/she has a valid user name and
password
Finding: advanced technology cannot process tis software.

Paper 5: Mrio Zenha-Rela, Rafael Carvalho Self Evaluation Through Monitored


Peer Review Using the Moodle Platform Conference IEEE Frontiers in Education
October 28 31, 2006, San Diego, CA

Proposal: A module for the Moodle open source eLearning platform through which
undergraduate students can start, Answer and Evaluate by blind peer review questions
related to a course subject. In the first learning phase the students can build and
submit questions. Selected questions for the candidates for inclusion in later tests.
After the test a reference solution and evaluation criteria is made in front of every one.
The student's answers are then randomly distributed so that each student has to
evaluate at least three of his peer's tests using double blind peer review. In the more
traditional learning contexts there is a sharp distinction between the student/teacher
roles, such that the evaluation and learning assessment is an indisputable teacher's
role. After all tests are cross-evaluated by the group of students, the system grades
them by majority mark for each question.
Achievements:The classification of formal education led to a growing number of
students, such that the student to teacher ratio is constantly increasing. Moodle is a
web based Learning Content Management led to a growing number of students, such
that the student to (LCMS) designed around pedagogical principles, namely a social
principles using the collaborative possibilities of the internet. Due to its flexibility it can
also be used in more outcome-oriented classroom environments.
Findings: It is not secured
5

Paper 6:
luis miguel serrano-cmara, maximiliano paredes-velasco, antonio ahijado-snchez,
and jess ngel velzquez-iturbide (2015). Modeling the Collaborative Instructional
Framework for LMSs Using Educational Modeling Language APRENDIZAJE, VOL. 10,
NO. 2, MAY 2015

Proposals:This paper focuses on collaborative learning and educational languages in


order to model collaborative instruction. In a previous work, carried out and tested a
collaborative instructional framework (CIF) based on goals of the analysis level of
Bloom's taxonomy named CIF. A collaborative tool that supports (MoCAS). They
conducted many modules in the classroom with students and teachers using CIF and
MoCAS and we realized that CIF needed to be improved. The research goal presented
in this paper is to improve CIF to make it supports in learning management systems.
Therefore, present the CIF modeled with intelligent manufacturing system standards
using the reload.
Achievements:CIF Framework and MoCAS (tool aimed at supporting the instruction
of scope of identifiers) were used together and produced several contributions
(increase in the learning efficiency and the motivation of students)
Findings:
Collaborative Instructional framework is to be improved

CHAPTER 3
FINDINGS
6

In offline examination system it needs lots of resources and money investment. A


campus, teachers, requirement of study material, seating arrangement are must in
traditional offline exams. Also it requires more time in evaluating the answer sheet and it
is more difficult to give the marks for the answers. The physically disabled students can
have access to offline examination methods of educations and examination. The comfort

of studying from home and doing it in ones own home makes the students take up the
online examination. Besides, a lot of people take up the E learning and examination to
balance between their personal and professional responsibilities and studies. If the
students once wrote answer in offline exams or in OMR sheets cannot be changed.
Lack of space It becomes a problem in itself to find space to keep the sheets of paper
being generated as a result of the ongoing discussion. The documents being generated
are too important to be ill-treated
Filing poses a problem Filing the documents categorically is a time consuming and
tedious exercise.
Lack of time conducting exams in offline consumes more time.

CHAPTER 4
7

MOTIVATION
This domain can be developed for any institution or universities. It is the software
which helps students to improve their exam knowledge and interacting with other
students and staffs. Staffs will assess the assessment test of each student.
MOODLE(Modular Object Oriented Dynamic Learning Environment). MOODLE
is the worlds most widely used learning management system (LMS) in the world.
MOODLE is a learning platform designed to provide educators, universities, teachers
and learners. MOODLE is a massively successful open-source project. Using the
internet to enhance E learning has become a trend in many universities. The advantage
of E learning is the good opportunity for students to interact with teachers electronically.

CHAPTER 5
8

PROPOSED SYSTEM
5.1. INTRODUCTION
As sentence-based answers those approaches that return a list of
independently retrieved and ranked sentences. Although all the sentences are assumed
to be relevant to the question, there are no assumptions of their relationship with each
other. On the other hand, a passage-based approach is defined as one that returns a list
of independently retrieved and ranked passages, each of which can comprise multiple
tightly coupled sentences. The passage-based approach has two benefits It provides
richer context for reading and understanding. It provides greater evidence for relevant
ranking of the passage by matching across sentences.
The Quiz activity module allows the teacher to design and build quizzes consisting
of a large variety of Question types, including multiple choice, true-false, and short
answer questions. These questions are kept in the Question bank and can be re-used in
different quizzes. Quizzes can be configured to allow multiple attempts. Each attempt at
a question is automatically marked, and the teacher can choose whether to give
feedback and/or show the correct answers. Feedback about performance and selfassessment are important parts of a learning environment. There are several ways to
give feedback to students: on each question or overall. The quiz module can display
feedback and scores at different times during the quiz, using the review options in
the Quiz settings. A single quiz can automatically select random and/or specific
questions from different categories of questions

5.2 PROPOSED METHODOLOGY


5.2.1 METHODOLOGY

This Web Application provides facility to conduct online examination worldwide. It


saves time as it allows number of students to give the exam at a time and displays the
results as the test gets over, so no need to wait for the result. It is automatically
generated by the server. Administrator has a privilege to create, modify and delete the
test papers and its particular questions. User can register, login and give the test with
his specific id, and can see the results as well.
5.2.2 ALGORITHM
5.2.2.1 COMPUTERIZED ADAPTIVE TESTING ALGORITHM (CAT)
Computerized Adaptive Testing (CAT) is a form of computer-based test that
adapts to the examinee's ability level. When an examinee is administrated a test in
online, the computer can estimate the student ability after each test. It is also a easy
method to conduct a exam in algorithm. CAT can be much more efficient than a
traditional paper test. The adaptive quiz system will consist of three main components
as shown in fig 5.1 they are student model, domain model and adaption model the
student model function describes the knowledge level of students. The domain model
is scope of student teaching. The adaption model consist of set of rules that defined
user action
User model

Domain model

Adaption model

User

Fig 5.1 shows architectural diagram for CAT algorithm


CAT successively selects questions for the purpose of maximizing the precision
of the exam based on what is known about the examinee from previous
questions. From the examinee's perspective, the difficulty of the exam seems to tailor
itself to their level of ability. For example, if an examinee performs well on an item of
10

intermediate difficulty, they will then be presented with a more difficult question.If they
performed poorly, they would be presented with a simpler question. Compared to
static multiple choice tests that nearly everyone has experienced, with a fixed set of
items administered to all examinees, computer-adaptive tests require fewer test items
to arrive at equally accurate scores

5.2.2.1 CAT ALGORITHM:


D-difficulty R-right answer L-dataset w-wrong answer B-below average
Request next candidate: Set D=0, L=0, H=0, and R=0.
Step 1 Find next item near difficulty (D).
Step 2. Set D at the actual calibration of that item.
Step 3. Administer that item.
Step 4. Obtain a response.
Step 5. Score that response.
Step 6. Count the items taken: L = L + 1
Step 7. Add the difficulties used: H = H + D If response not correct,
Step 8. Target next item difficulty: D = D - 2/L
If response correct,
Step 9. Count right answers: R = R + 1
Step 10. Target next item difficulty: D = D + 2/L
If not ready to decide to pass/fail,
Step 11. Go to step 1.
If ready to decide pass/fail,
Step 12. Calculate wrong answers: W = L - R
Step 13. Estimate measure: B = H/L + loge(R/W)
If W = 0 then B = H/L + loge(R-0.5 / W+0.5)
If R = 0 then B = H/L + loge(R+0.5 / W-0.5)
Step 14. Estimate Error: S = sqrt[L/(R*W)]
11

If W = 0 then S = sqrt[L/(R-0.5 * W+0.5)]


If R = 0 then S = sqrt[L/(R+0.5 * W-0.5)]
Step 15. Compare measure B with pass/fail standard T.
Step 16. If (T - S) < B < (T + S), go to step 1.
Step 17.If (B - S) > T, then pass.
Step 18.If (B + S) < T, then fail.
Step 19.Go to step 0.
5.2.2.2 PATTERN MATCHING ALGORITHM:
In computer science, pattern matching is the act of checking a given sequence
of tokens for the presence of the constituents of some pattern. In contrast to pattern
recognition, the match usually has to be exact. The patterns generally have the form of
either sequence or tree structures. The Pattern-match question type is used to test if a
short free-text student response matches a specified response pattern.
Step 1. if m<1 then return
Step 2. j 1; i1;
Step 3. i_m;
Step 4. m_m1
Step 5. while i_ _ n do
Step 6.if j _ 1 then
If no partial match with p, perform Sunday shifts,
returning next position i_ such that x[i] = p[m
Step 7. KMP-MATCH(m_; j, i)
Step 8. while j <m and x[i] = p[j ] d
Step 9. ii +1; j j +1
Step 10. if j = m then
Step 11. ii +1; j j +1; output i m
The full p[m] version is as follows:
12

Step 12. KMP-MATCH(m; j, i)


Step 13. while j _ m and x[i] = p[j ] do
Step 14. ii +1; j j +1
Step 15. if j >m then output i mObserve that after each execution of a KMP version,
the last line of Hybrid Matching is executed, performing a
Step 16. KMP shift (j _[j ]) and re-establishing the invariant i_ = i + m j required
subsequently by SUNDAY-SHIFT: SUNDAY-SHIFT(i_)
Step 17. while x[i] = p[m] do
Step 18. i_i_ +[x[i_ +1]
Step 19. if i_>n then return

5.2.3 REQUIREMENT
5.2.3.1. System Requirements
Table no 5.1 System Requirements
TYPE
Processor
Memory
Hard Disk Drive
Key Board
Mouse
Monitor

DESCRIPTION
Pentium(R)Dual-core cpu E5800@3.20GHz
2GB RAM
20 GB
Standard Windows Keyboard
Two or Three Button Mouse
SVGA

5.2.3.2. Software Requirements


Table no 5.2 Software Requirements
TYPE

DESCRIPTION

Operating system
Web server

Windows
Apache
MOODLE
MYSQL

Tools
Database
13

Front End
Back-End

PHP
Moodle LMS

5.2.3.3 MYSQL
PhpMyAdmin is a free and open source tool written in PHP intended to
handle the administration of MySQL or Maria DB with the use of a web browser. It can
perform

various

tasks

such

as

creating,

modifying

or

deleting databases, tables, fields rows; executing SQL statements; or managing users
and permissions.
PhpMyAdmin is one of the most popular applications for MySQL
databases management. It is a free tool written in PHP. Through this software you can
create, alter, drop, delete, import and export MySQL database tables. You can run
MySQL queries, optimize, repair and check tables, change collation and execute other
database management commands.
All the Site Ground clients can manage their MySQL databases through
the preinstalled PhpMyAdmin software which is integrated in cPanel. Check
our PhpMyAdmin hosting for more details. In this tutorial we will show how to use
PhpMyAdmin and manage your MySQL databases through it.

5.2.3.4 PHP
FILE SYSTEM

CLIENT

PHP
14

DATABASE

WEB SERVER
MAIL
SERVER

Fig 5.2 Shows PHP architecture

PHP stands for Hypertext Pre-processor that now installed on most of the
websites and web servers. PHP is a database-enabled web pages HTML documents
that able to connect with the database in effectively and quickly, which make it able to
store important information through the Internet better.
All the command on PHP will keep in the file called script and it requires the
use of a set of instructions such as JavaScript, Perl etc. The different between PHP
script and other language is developed and design to use in the creation of HTML
documents, which it can be automatically inserted or edit content.
Therefore, PHP is a server-side or HTML-embedded scripting language; it is an
important one that allows us to create Dynamic HTML documents more efficiently and
more features

The PHP works with the web server without server it doesn't take any request
and it doesn't respond any things to the browser, PHP is the software that delivers web
pages to the world. When you enter a URL (Uniform Resource Locator) into your web
browsers address bar, youre sending a request to the web server through a browser
with URL, asking it to send you an HTML file. The web server responds by sending the
requested file. Your browser reads the HTML file and displays the web page.

As PHP is readily available, users can download from any PHP website with the
necessary rights and licenses and start running the PHP scripts in ones own
15

computer. PHP is compatible with all kinds of operating systems and versions of
software packages. PHP is used by inserting the codes inside the HTML that
comprises the website. When the client visits the webpage containing the codes, the
server executes it. Therefore, it is needed to install ones own server to locally test
PHP. There is no need to install any additional plug-ins to see the PHP up and running.
It gets to the end user as the regular old-fashioned HTML scripts. Moreover, PHP does
not need to be compiled before it can be used. This is done automatically on the go .

5.2.4 UML DIAGRAMS


5.2.4.1 CLASS DIAGRAM
A class diagram is a type of static structure diagram that describes the structure
of a system by showing the system's classes, their attributes, operations (or methods),
and the relationships among the classes. The class diagram is the main building block
of object oriented modeling. It is used both for general conceptual modeling of the
systematic of the application, and for detailed modeling translating programming code.

16

Fig no 5.3 Class Diagram for Online Examination

5.2.4.2 ACTIVITY DIAGRAM


Activity diagrams are graphical representations of workflows of stepwise activities
and actions with support for choice, iteration and concurrency. 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.

17

Fig no 5.4 Activity Diagram for Online Examination

5.2.4.3 USE CASE DIAGRAM


A use case diagram is a type of behavioral diagram defined by and created from
a Use-case analysis. Its purpose is to present a graphical overview of the functionality
provided by a system in terms of actors, their goals (represented as use cases), and
any dependencies between those use cases. The main purpose of a use case diagram
18

is to show what system functions are performed for which actor. Roles of the actors in
the system can be depicted.

Fig no 5.5 Use Case Diagram for Online Examination

5.2.4.4 SEQUENCE DIAGRAM


A sequence diagram is a kind of interaction diagram that shows how processes
operate with one another and in what order. It is a construct of a Message Sequence
Chart. A sequence diagram shows object interactions arranged in time sequence. It
depicts the objects and classes involved in the scenario and the sequence of
19

messages exchanged between the objects needed to carry out the functionality of the
scenario. Sequence diagrams typically are associated with use case realizations in the
Logical View of the system under development. The Sequence Diagram models the
collaboration of objects based on a time sequence. It shows how the objects interact
with others in a particular scenario of a use case.

Fig no 5.6 Sequence Diagram for Online Examination

CHAPTER 6
SYSTEM DESIGN
6.1 ARCHITECTURAL DIAGRAM
20

Teachers

Question TYPE
selection
SYSTEM

Topic
1,2,3.

Course
management

SUPPORTED
MATERIAL

Question
answering
STUDENT

POINTER TO
EXTERNAL

DATA FORUMS

QUIZ

SHORT

DETAILED

QUESTIO
NS

QUESTIONS

QUESTIONS

Fig no 6.1 Architectural Diagram

In this architectural diagram, teachers will be uploading any kind of files forums,
learning materials in the database and make those file visible to students. Teachers
also can ass exam or quiz activities for the students. Teachers should prepare question
for the students.

21

The question type selector is the option where the teachers can select what
type of questions and answer to made according to their subjects eg. quiz, matching,
essay, short answer questions. Then the prepared question will be uploaded into
admin/ server side. The previous uploaded file and study material can be made
invisible to the students. The teachers should allot the marks for each and every
question and they should give time limit of every exam. The students should login with
their own login Id and password. Only authorized user can use it.
To answer the question they should give test password. When they start the test
the time will be running and students can navigate between the questions. Students
are also allowed to attempt 3 times. After completing the exam the students should
give the exam finish and submit. Once it is submitted it cannot be changed.
The evaluation part the answers and the keywords will be given by the teachers.
By those key words the questions will be evaluated and results will be displayed
imminently after completing the exam.

CHAPTER 7
IMPLEMENTATION

22

7.1 EXPERIMENTAL SETUP


7.1.1 Creation of JDK Environment
7.1.2 MOODLE INSTALLATION
.
STEP1: First, you need to download the latest stable Moodle installation package from:
http://download.moodle.org/

STEP 2: Then, please upload the package under your public_html directory, which is
the main one for the web site content. If you decide to use the script in a subdirectory
of the main one, place it there. You can upload the Moodle package either
through cPanel -> File Manager or using an FTP client.

23

STEP 1: After this you need to create a new database and add an user to it. You can
check our comprehensive MySQL tutorial in order to learn how to create databases
and add users to them. Once the database is created and the package is uploaded,
please extract the Moodle archive through cPanel -> File Manager.
For the needs of this tutorial we will assume that you are going to install the Moodle
software in the /moodle subfolder.

24

Choose the language for the installation and click on the [Next] button.The script will
check the configuration of the server and inform you if there are any compatibility
problems.On the next step the script determines the installation paths for Moodle. You
do not need to change anything.

In this window you need to enter the details of the database, which you have already
created (Database, User, Password).
Note, that the names of the database and the user are prefixed with "username_"
where username is your cPanel login name.
Do not forget to type in the password of the MySQL user and note that it is casesensitive.Here you need to click on the Next button in order to install the script .

25

This window contains a link to the release information of the current Moodle version.

At this point the Moodle database will be populated. There will be several similar
screens with MySQL queries. If there are any problems, you will be notified by the
script. Otherwise you can click on the [Continue] button to proceed. Once the database
content installation is completed, you will be forwarded to a new window, where you
should enter the administrator details. Click on the [Update ]Profile button when you
are ready. In the following screen you can enter the site name and the corresponding
description. Now you will be redirected to the main web page of the newly installed
Moodle script.

26

7.3 MODULES
7.3. 1 QUESTION CREATOR
This component aims at creation of the question. It has five modules: tokenizer,
answer-type detector, question keyword extractor, extra keywords generator and
question words stemmer. The user creates the question manually and then the
question will be uploaded in server side. The question is sent to the server side, where
the tokenizer breaks the question into separate words. Afterwards, the answer-type
detector identifies the category of the answer.
7.3. 2 QUESTION TYPE SELECTOR

The process of choosing question based on quizzing algorithm. Teacher


chooses the question type according to their subjects. They can choose the question
type like quiz, short answers, matching, formula, numerical. The question will be added
and mark also allotted for each questions. It locates all sentences that contain a
pattern that matches any word from the list of question keywords and extra keywords.
7.3. 3 QUESTION ANSWERING
The process of testing environment applied, letting student answer the test. The
students will be given the individual user Id and password, then students will given the
time limit for completing the exam. Then students can navigate between the questions.
Students are allowed to attend the exams for 3 attempts. After finishing the exam
student should give finish and submit option. After submitting the exam then the
students cannot change the answers.
7.3.4 RESULT EVALUATOR

27

The process of Checking the result. After completing the exam the students
should give finish and submit. The result will be displayed immediately after finishing
the exam. The grade and mark scored by the students will be also displayed
immediately. And the mark scored by students will be stored in the database.
CHAPTER 8
RESULT ANALYSIS
8.1 FORMULA
This formula shows the performance of pattern matching algorithm. The iterative
method can be viewed as the power iteration method or the power method. The basic
mathematical operations performed are identical.
At t=0 an initial probability distribution is assumed, usually
. PR(

pi ; 0 =

1
N

At each time step, the computation, as detailed above, yields

1d
N

+d

R(t+1)=d MR(t)+

1d
N

PR(

pi ;

t+1)=

pi
PJEM )

j
p

L
PR ( p j ; t )

or in matrix notation

Where,

Ri

(t)=PR(

pi ; t

1. (*)

and 1 is the column vector of length N containing

only 1.
28

The matrix M is defined as

mij=

Pj
L )
{1/

if j links to i

0,

otherwise
i.e.,
M:= (

K1 A)T

Where A denotes the adjacency matrix of the graph and K is the diagonal
matrix.

The computation ends when for some small


| R( t+1) R(t) | <

i.e. when convergence is assumed.

Algebraic
For t -

(i.e., in the steady state), the above equation (*) reads


R = d MR+

1d
N

1 (**)

The solution is given by

R=(

1d M
1

1d
N

1,with the identity matrix I.

The solution exists and is unique for 0<d<1. This can be seen by noting
that M is by construction a stochastic matrix and hence has an eigenvalue equal to one
as a consequence of the PerronFrobenius theorem

29

8.2 PERFORMANCE ANALYSIS:

30

100%
90%
80%
70%
60%
cat algorthim
pattern matching
algorithm

50%
40%
30%
20%
10%
0%
efficency time delay evaluation difficulty

The performance of CAT algorithm and pattern matching algorithm are


calculated. The efficiency of cat algorithm is two times lower than pattern matching
algorithm. The evaluation process of CAT algorithm is too low compared to pattern
matching algorithm where pattern matching algorithm is easy to evaluate if the
students are having almost same answers. But in the CAT algorithm the answers
should be exactly same as teacher keyword include spelling and grammars. It makes
the students to score very bad marks. The difficulty of implementing both algorithms is
same. For implementing pattern matching algorithm teachers should write PHP coding
for giving keywords or matching string.

CHAPTER 9
31

COMPARATIVE ANALYSIS

Table no 9.1 for Comparative Analysis

PARAMETRE
METRIC

ALGORITHM

EXISTING

Computer
algorithm

adaptive

PROPOSED

testing Pattern matching algorithm

EFFICIENCY

Low

High

EVALUATION

Difficult

Easy

TIME DELAY

High

32

Low

CHAPTER 10
10.1 CONCLUSION
This online quiz system provides facility to conduct online examination worldwide.
It saves time as it allows number of students to give the exam at a time and displays
the results as the test gets over, so no need to wait for the result. It is automatically
generated by the server. Administrator has a privilege to create, modify and delete the
test papers and its particular questions. User can register, login and give the test with
his specific id, and can see the results as well.

10.2 FUTURE ENHANCEMENT


1. The main aim of our project is create a good interaction between the student and
2.

teacher.
We are trying to do the project at best level to satisfy all the end user (i.e student /

3.

faculty).
In our future we are decided to provide more security to our website which may

4.

not be hacked.
And we give the choice to student to add their name under the faculty who they

5.
6.

wish and get advice for their betterment.


It will be more empowering.
Next we are aiming to provide some online classes in to our website.

33

CHAPTER 11
REFERENCES
[1] Yong-Gang Evaluation of the Clinical Question Answering Journal of Biomedical
Informatics 44 (2011) 277288
[2] Heba Kurdi, Sara Alkhaider, Nada Alfaifi. Development and Evaluation Of A
Web Based Question Answering System For Arabic Language. Vol. 36, No. 58
2011 pp. 109-101

[3] Mrio Zenha-Rela and Rafael Carvalho University of Coimbra, Dep. Eng.Informtic

Coimbra (2006). Self Evaluation Through Monitored Peer Review Using Moodle
Platfrom ieee rita, vol. 6, no. 4, pp. 167174, Nov. 2011.
[4] Pablo Moreno-Ger, Ivn Martnez-Ortiz, Virginia Francisco Gilmartn, Raque
ballesteroTrivialCV: Competitive Activities for the Classroom Integrated in a
Moodle virtual Campus ieee journal of latin-american learning technologies, vol.
201, no. 1,may 2011
[5] Anna Helena Silveira Sonego, rico Marcelo Hoff do Amaral, Felipe Becker Nunes,
Gleizer Bierhalz Voss use of Moodle as a Tool for Collaborative Learning
Conference IEEE Frontiers in Education October 28 31, 2006, San Diego, CA

34

[6] luis miguel serrano-cmara, maximiliano paredes-velasco, antonio ahijadosnchez,jess ngel velzquez-iturbide Modeling the Collaborative Instructional
Framework for LMSs Using Educational Modeling Languages ieee revista
americana de tecnologias vol. 99, no. 19 may 2013.
[7] W. Ma, Y. Liu, F. Ye, X. Yang. An improved Wu-Manber multiple patterns
matching algorithm, Applied Science and Technology,vol.34, no.10, pp.32-34,
2007
[8] A. Al-Ajlan, H. Zedan, Why Moodle in: 12th IEEE International Workshop on
future Trends of Distributed Computing Systems,2008,pp 58-64.

APPENDIX 1
35

CODE

1.1 INDEX.PHP
<?php
require('../config.php');
require_once('lib.php');
if (!isset($CFG->additionalhtmlhead)) {
$CFG->additionalhtmlhead = '';
}
$CFG->additionalhtmlhead .= '<meta name="robots" content="noindex" />';
redirect_if_major_upgrade_required();
$testsession = optional_param('testsession', 0, PARAM_INT);
$cancel
= optional_param('cancel', 0, PARAM_BOOL);
$anchor
= optional_param('anchor', '', PARAM_RAW);
if ($cancel) {
redirect(new moodle_url('/'));
}
$PAGE->https_required();
$context = context_system::instance();
$PAGE->set_url("$CFG->httpswwwroot/login/index.php");
$PAGE->set_context($context);
$PAGE->set_pagelayout('login');
$errormsg = '';
$errorcode = 0;
if ($testsession) {
if ($testsession == $USER->id) {
if (isset($SESSION->wantsurl)) {
$urltogo = $SESSION->wantsurl;
36

} else {
$urltogo = $CFG->wwwroot.'/';
}
unset($SESSION->wantsurl);
redirect($urltogo);
} else {
$errormsg = get_string("cookiesnotenabled");
$errorcode = 1;
}
}
if (!empty($SESSION->has_timed_out)) {
$session_has_timed_out = true;
unset($SESSION->has_timed_out);
} else {
$session_has_timed_out = false;
}
$frm = false;
$user = false;
$authsequence = get_enabled_auth_plugins(true);
foreach($authsequence as $authname) {
$authplugin = get_auth_plugin($authname);
$authplugin->loginpage_hook();
}

$site = get_site();

$PAGE->navbar->ignore_active();
$loginsite = get_string("loginsite");
$PAGE->navbar->add($loginsite);
if ($user !== false or $frm !== false or $errormsg !== '') {
} else if (!empty($SESSION->wantsurl) && file_exists($CFG37

>dirroot.'/login/weblinkauth.php')) {
include($CFG->dirroot.'/login/weblinkauth.php');
if (function_exists('weblink_auth')) {
$user = weblink_auth($SESSION->wantsurl);
}
if ($user) {
$frm->username = $user->username;
} else {
$frm = data_submitted();
}
} else {
$frm = data_submitted();
}

if ($anchor && isset($SESSION->wantsurl) && strpos($SESSION->wantsurl, '#')


=== false) {
$wantsurl = new moodle_url($SESSION->wantsurl);
$wantsurl->set_anchor(substr($anchor, 1));
$SESSION->wantsurl = $wantsurl->out();
}

if ($frm and isset($frm->username)) {


$frm->username = trim(core_text::strtolower($frm->username));
if (is_enabled_auth('none') ) {
if ($frm->username !== core_user::clean_field($frm->username, 'username')) {
$errormsg = get_string('username').': '.get_string("invalidusername");
$errorcode = 2;
$user = null;
}
}
if ($user) {
} else if (($frm->username == 'guest') and empty($CFG->guestloginbutton)) {
$user = false;
38

$frm = false;
} else {
if (empty($errormsg)) {
$user = authenticate_user_login($frm->username, $frm->password, false,
$errorcode);
}
}
if (!$user and $frm and is_restored_user($frm->username)) {
$PAGE->set_title(get_string('restoredaccount'));
$PAGE->set_heading($site->fullname);
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('restoredaccount'));
echo $OUTPUT->box(get_string('restoredaccountinfo'), 'generalbox
boxaligncenter');
$form = new login_forgot_password_form('forgot_password.php',
array('username' => $frm->username));
$form->display();
echo $OUTPUT->footer();
die;
}
if ($user) {
if (isguestuser($user)) {
unset($user->lang);
} else if (!empty($user->lang)) {
unset($SESSION->lang);
}
if (empty($user->confirmed)) {
$PAGE->set_title(get_string("mustconfirm"));
$PAGE->set_heading($site->fullname);
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string("mustconfirm"));
echo $OUTPUT->box(get_string("emailconfirmsent", "", $user->email),
"generalbox boxaligncenter");
echo $OUTPUT->footer();
39

die;
}
complete_user_login($user);
\core\session\manager::apply_concurrent_login_limit($user->id, session_id());
if (!empty($CFG->nolastloggedin)) {

} else if (empty($CFG->rememberusername) or ($CFG->rememberusername


== 2 and empty($frm->rememberusername))) {
set_moodle_cookie('');
} else {
set_moodle_cookie($USER->username);
}
$urltogo = core_login_get_return_url();

$userauth = get_auth_plugin($USER->auth);
if (!isguestuser() and !empty($userauth->config->expiration) and $userauth>config->expiration == 1) {
if ($userauth->can_change_password()) {
$passwordchangeurl = $userauth->change_password_url();
if (!$passwordchangeurl) {
$passwordchangeurl = $CFG>httpswwwroot.'/login/change_password.php';
}
} else {
$passwordchangeurl = $CFG>httpswwwroot.'/login/change_password.php';
}
$days2expire = $userauth->password_expire($USER->username);
$PAGE->set_title("$site->fullname: $loginsite");
$PAGE->set_heading("$site->fullname");
if (intval($days2expire) > 0 && intval($days2expire) < intval($userauth40

>config->expiration_warning)) {
echo $OUTPUT->header();
echo $OUTPUT->confirm(get_string('auth_passwordwillexpire', 'auth',
$days2expire), $passwordchangeurl, $urltogo);
echo $OUTPUT->footer();
exit;
} elseif (intval($days2expire) < 0 ) {
echo $OUTPUT->header();
echo $OUTPUT->confirm(get_string('auth_passwordisexpired', 'auth'),
$passwordchangeurl, $urltogo);
echo $OUTPUT->footer();
exit;
}
}
unset($SESSION->loginerrormsg);
$SESSION->wantsurl = $urltogo;
redirect(new moodle_url(get_login_url(), array('testsession'=>$USER->id)));
} else {
if (empty($errormsg)) {
if ($errorcode == AUTH_LOGIN_UNAUTHORISED) {
$errormsg = get_string("unauthorisedlogin", "", $frm->username);
} else {
$errormsg = get_string("invalidlogin");
$errorcode = 3;
}
}
}
}

$errormsg = get_string('sessionerroruser', 'error');


$errorcode = 4;
}

if (empty($SESSION->wantsurl)) {
$SESSION->wantsurl = null;
41

$referer = get_local_referer(false);
if ($referer &&
$referer != $CFG->wwwroot &&
$referer != $CFG->wwwroot . '/' &&
$referer != $CFG->httpswwwroot . '/login/' &&
strpos($referer, $CFG->httpswwwroot . '/login/?') !== 0 &&
strpos($referer, $CFG->httpswwwroot . '/login/index.php') !== 0) {
$SESSION->wantsurl = $referer;
}
}
if (!empty($CFG->alternateloginurl)) {
$loginurl = $CFG->alternateloginurl;
if (strpos($SESSION->wantsurl, $loginurl) === 0) {
$SESSION->wantsurl = NULL;
}
if ($errorcode) {
if (strpos($loginurl, '?') === false) {
$loginurl .= '?';
} else {
$loginurl .= '&';
}
$loginurl .= 'errorcode='.$errorcode;
}
redirect($loginurl);
}
$PAGE->verify_https_required();

if (!isset($frm) or !is_object($frm)) {
$frm = new stdClass();
}

$frm->username = clean_param($_GET["username"], PARAM_RAW)


42

} else {
$frm->username = get_moodle_cookie();
}
$frm->password = "";
}
if (!empty($frm->username)) {
$focus = "password";
} else {
$focus = "username";
}
if (!empty($CFG->registerauth) or is_enabled_auth('none') or !empty($CFG>auth_instructions)) {
$show_instructions = true;
} else {
$show_instructions = false;
}
$potentialidps = array();
foreach($authsequence as $authname) {
$authplugin = get_auth_plugin($authname);
$potentialidps = array_merge($potentialidps, $authplugin>loginpage_idp_list($SESSION->wantsurl));
}
if (!empty($SESSION->loginerrormsg)) {
$errormsg = $SESSION->loginerrormsg;
unset($SESSION->loginerrormsg);
} else if ($testsession) {
unset($SESSION->loginerrormsg);
} else if ($errormsg or !empty($frm->password)) {
if ($errormsg) {
$SESSION->loginerrormsg = $errormsg;
}
redirect(new moodle_url($CFG->httpswwwroot . '/login/index.php'));
}
$PAGE->set_title("$site->fullname: $loginsite");
43

$PAGE->set_heading("$site->fullname");
echo $OUTPUT->header();
if (isloggedin() and !isguestuser()) {
echo $OUTPUT->box_start();
$logout=newsingle_button(new moodle_url($CFG>httpswwwroot.'/login/logout.php', array('sesskey'=>sesskey(),'loginpage'=>1)),
get_string('logout'), 'post');
$continue=newsingle_button(newmoodle_url($CFG>httpswwwroot.'/login/index.php', array('cancel'=>1)), get_string('cancel'), 'get');
echo $OUTPUT->confirm(get_string('alreadyloggedin', 'error', fullname($USER)),
$logout, $continue);
echo $OUTPUT->box_end();
} else {
include("index_form.html");
if ($errormsg) {
$PAGE->requires->js_init_call('M.util.focus_login_error', null, true);
} else if (!empty($CFG->loginpageautofocus)) {
//focus username or password
$PAGE->requires->js_init_call('M.util.focus_login_form', null, true);
}
}
echo $OUTPUT->footer();

1.2 User.php
<?php
require_once("../config.php");
44

require_once("lib.php");
$id= required_param('id',PARAM_INT);
$user
$mode

= required_param('user',PARAM_INT);
= optional_param('mode', "todaylogs", PARAM_ALPHA);

$url = new moodle_url('/course/user.php', array('id'=>$id,'user'=>$user,


'mode'=>$mode));
$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
$user = $DB->get_record("user", array("id"=>$user, 'deleted'=>0), '*',
MUST_EXIST);
if ($mode === 'outline' or $mode === 'complete') {
$url = new moodle_url('/report/outline/user.php', array('id'=>$user->id,
'course'=>$course->id, 'mode'=>$mode));
redirect($url);
}
if ($mode === 'todaylogs' or $mode === 'alllogs') {
$logmode = ($mode === 'todaylogs') ? 'today' : 'all';
$url = new moodle_url('/report/log/user.php', array('id'=>$user->id,
'course'=>$course->id, 'mode'=>$logmode));
redirect($url);
}
if ($mode === 'stats') {
$url = new moodle_url('/report/stats/user.php', array('id'=>$user->id,
'course'=>$course->id));
redirect($url);
}
if ($mode === 'coursecompletions' or $mode === 'coursecompletion') {
45

$url = new moodle_url('/report/completion/user.php', array('id'=>$user->id,


'course'=>$course->id));
redirect($url);
}
$coursecontext = context_course::instance($course->id);
$personalcontext = context_user::instance($user->id);
$PAGE->set_url('/course/user.php', array('id'=>$id, 'user'=>$user->id,
'mode'=>$mode));
require_login();
$PAGE->set_pagelayout('report');
if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) and !
is_enrolled($coursecontext)) {
$PAGE->set_course($course);
} else {
require_login($course);
}
if ($user->deleted) { echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('userdeleted'));
echo $OUTPUT->footer();
die;
}
$myreports = ($course->showreports and $USER->id == $user->id);
$anyreport = has_capability('moodle/user:viewuseractivitiesreport',
$personalcontext);

46

$modes = array();
if (has_capability('moodle/grade:viewall', $coursecontext)) {
$modes[] = 'grade';
} else if ($course->showgrades and $user->id == $USER->id and
has_capability('moodle/grade:view', $coursecontext)) {
$modes[] = 'grade';
} else if ($course->showgrades and has_capability('moodle/grade:viewall',
$personalcontext)) {
$modes[] = 'grade';
} else if ($course->showgrades and $anyreport) {
$modes[] = 'grade';
}
if (empty($modes)) {
require_capability('moodle/user:viewuseractivitiesreport', $personalcontext);
}
if (!in_array($mode, $modes)) {
$mode = reset($modes);
}
add_to_log($course->id, "course", "user report", "user.php?id=$course>id&amp;user=$user->id&amp;mode=$mode", "$user->id");
$stractivityreport = get_string("activityreport");
47

$PAGE->navigation->extend_for_user($user);
$PAGE->navigation->set_userid_for_parent_checks($user->id); // see MDL-25805
for reasons and for full commit reference for reversal when fixed.
$PAGE->set_title("$course->shortname: $stractivityreport ($mode)");
$PAGE->set_heading($course->fullname);
echo $OUTPUT->header();
switch ($mode) {
case "grade":
if (empty($CFG->grade_profilereport) or !file_exists($CFG>dirroot.'/grade/report/'.$CFG->grade_profilereport.'/lib.php')) {
$CFG->grade_profilereport = 'user';
}
require_once $CFG->libdir.'/gradelib.php';
require_once $CFG->dirroot.'/grade/lib.php';
require_once $CFG->dirroot.'/grade/report/'.$CFG>grade_profilereport.'/lib.php';
$functionname = 'grade_report_'.$CFG->grade_profilereport.'_profilereport';
if (function_exists($functionname)) {
$functionname($course, $user);
}
break;
break;
default:
}
echo $OUTPUT->footer();
1.3 enroll.php
48

<?php
define('NO_OUTPUT_BUFFERING', true);
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
$action = required_param('action', PARAM_ALPHANUMEXT);
$enrol = required_param('enrol', PARAM_PLUGIN);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/enrol.php');
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
require_sesskey();
$enabled = enrol_get_plugins(true);
$all

= enrol_get_plugins(false);

$return = new moodle_url('/admin/settings.php', array('section'=>'manageenrols'));


$syscontext = context_system::instance();
switch ($action) {
case 'disable':
unset($enabled[$enrol]);
set_config('enrol_plugins_enabled', implode(',', array_keys($enabled)));
core_plugin_manager::reset_caches();
$syscontext->mark_dirty(); // resets all enrol caches
49

break;
case 'enable':
if (!isset($all[$enrol])) {
break;
}
$enabled = array_keys($enabled);
$enabled[] = $enrol;
set_config('enrol_plugins_enabled', implode(',', $enabled));
core_plugin_manager::reset_caches();
$syscontext->mark_dirty(); // resets all enrol caches
break;
case 'up':
if (!isset($enabled[$enrol])) {
break;
}
$enabled = array_keys($enabled);
$enabled = array_flip($enabled);
$current = $enabled[$enrol];
if ($current == 0) {
break; //already at the top
}
$enabled = array_flip($enabled);
$enabled[$current] = $enabled[$current - 1];
$enabled[$current - 1] = $enrol;
set_config('enrol_plugins_enabled', implode(',', $enabled));
break;
case 'down':
50

if (!isset($enabled[$enrol])) {
break;
}
$enabled = array_keys($enabled);
$enabled = array_flip($enabled);
$current = $enabled[$enrol];
if ($current == count($enabled) - 1) {
break; //already at the end
}
$enabled = array_flip($enabled);
$enabled[$current] = $enabled[$current + 1];
$enabled[$current + 1] = $enrol;
set_config('enrol_plugins_enabled', implode(',', $enabled));
break;
case 'migrate':
if (get_string_manager()->string_exists('pluginname', 'enrol_'.$enrol)) {
$strplugin = get_string('pluginname', 'enrol_'.$enrol);
} else {
$strplugin = $enrol;
}
$PAGE->set_title($strplugin);
echo $OUTPUT->header();
// This may take a long time.
set_time_limit(0);
// Disable plugin to prevent concurrent cron execution.
unset($enabled[$enrol]);
51

set_config('enrol_plugins_enabled', implode(',', array_keys($enabled)));


echo $OUTPUT->heading(get_string('uninstallmigrating', 'enrol', 'enrol_'.
$enrol));
require_once("$CFG->dirroot/enrol/manual/locallib.php");
enrol_manual_migrate_plugin_enrolments($enrol);
echo $OUTPUT->notification(get_string('success'), 'notifysuccess');
if (!$return = core_plugin_manager::instance()->get_uninstall_url('enrol_'.
$enrol, 'manage')) {
$return = new moodle_url('/admin/plugins.php');
}
echo $OUTPUT->continue_button($return);
echo $OUTPUT->footer();
exit;
}
1.2 User.php
<?php
require_once("../config.php");
require_once("lib.php");
$id

= required_param('id',PARAM_INT);

$user
$mode

= required_param('user',PARAM_INT);
= optional_param('mode', "todaylogs", PARAM_ALPHA);

$url = new moodle_url('/course/user.php', array('id'=>$id,'user'=>$user,


'mode'=>$mode));
52

$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);


$user = $DB->get_record("user", array("id"=>$user, 'deleted'=>0), '*',
MUST_EXIST);
if ($mode === 'outline' or $mode === 'complete') {
$url = new moodle_url('/report/outline/user.php', array('id'=>$user->id,
'course'=>$course->id, 'mode'=>$mode));
redirect($url);
}
if ($mode === 'todaylogs' or $mode === 'alllogs') {
$logmode = ($mode === 'todaylogs') ? 'today' : 'all';
$url = new moodle_url('/report/log/user.php', array('id'=>$user->id,
'course'=>$course->id, 'mode'=>$logmode));
redirect($url);
}
if ($mode === 'stats') {
$url = new moodle_url('/report/stats/user.php', array('id'=>$user->id,
'course'=>$course->id));
redirect($url);
}
if ($mode === 'coursecompletions' or $mode === 'coursecompletion') {
$url = new moodle_url('/report/completion/user.php', array('id'=>$user->id,
'course'=>$course->id));
redirect($url);
}
$coursecontext = context_course::instance($course->id);
$personalcontext = context_user::instance($user->id);

53

$PAGE->set_url('/course/user.php', array('id'=>$id, 'user'=>$user->id,


'mode'=>$mode));
require_login();
$PAGE->set_pagelayout('report');
if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) and !
is_enrolled($coursecontext)) {
$PAGE->set_course($course);
} else {
require_login($course);
}
if ($user->deleted) { echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('userdeleted'));
echo $OUTPUT->footer();
die;
}
$myreports = ($course->showreports and $USER->id == $user->id);
$anyreport = has_capability('moodle/user:viewuseractivitiesreport',
$personalcontext);
$modes = array();
if (has_capability('moodle/grade:viewall', $coursecontext)) {
$modes[] = 'grade';
} else if ($course->showgrades and $user->id == $USER->id and
has_capability('moodle/grade:view', $coursecontext)) {
$modes[] = 'grade';
54

} else if ($course->showgrades and has_capability('moodle/grade:viewall',


$personalcontext)) {
$modes[] = 'grade';
} else if ($course->showgrades and $anyreport) {
$modes[] = 'grade';
}
if (empty($modes)) {
require_capability('moodle/user:viewuseractivitiesreport', $personalcontext);
}
if (!in_array($mode, $modes)) {
$mode = reset($modes);
}
add_to_log($course->id, "course", "user report", "user.php?id=$course>id&amp;user=$user->id&amp;mode=$mode", "$user->id");
$stractivityreport = get_string("activityreport");
$PAGE->navigation->extend_for_user($user);
$PAGE->navigation->set_userid_for_parent_checks($user->id); // see MDL-25805
for reasons and for full commit reference for reversal when fixed.
$PAGE->set_title("$course->shortname: $stractivityreport ($mode)");
$PAGE->set_heading($course->fullname);
echo $OUTPUT->header();

55

switch ($mode) {
case "grade":
if (empty($CFG->grade_profilereport) or !file_exists($CFG>dirroot.'/grade/report/'.$CFG->grade_profilereport.'/lib.php')) {
$CFG->grade_profilereport = 'user';
}
require_once $CFG->libdir.'/gradelib.php';
require_once $CFG->dirroot.'/grade/lib.php';
require_once $CFG->dirroot.'/grade/report/'.$CFG>grade_profilereport.'/lib.php';
$functionname = 'grade_report_'.$CFG->grade_profilereport.'_profilereport';
if (function_exists($functionname)) {
$functionname($course, $user);
}
break;
break;
default:
}
Z

echo $OUTPUT->footer();

1.3 enroll.php
<?php
define('NO_OUTPUT_BUFFERING', true);
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
$action = required_param('action', PARAM_ALPHANUMEXT);
56

$enrol = required_param('enrol', PARAM_PLUGIN);


$confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/enrol.php');
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
require_sesskey();
$enabled = enrol_get_plugins(true);
$all

= enrol_get_plugins(false);

$return = new moodle_url('/admin/settings.php', array('section'=>'manageenrols'));


$syscontext = context_system::instance();
switch ($action) {
case 'disable':
unset($enabled[$enrol]);
set_config('enrol_plugins_enabled', implode(',', array_keys($enabled)));
core_plugin_manager::reset_caches();
$syscontext->mark_dirty(); // resets all enrol caches
break;
case 'enable':
if (!isset($all[$enrol])) {
break;
}
$enabled = array_keys($enabled);
57

$enabled[] = $enrol;
set_config('enrol_plugins_enabled', implode(',', $enabled));
core_plugin_manager::reset_caches();
$syscontext->mark_dirty(); // resets all enrol caches
break;
case 'up':
if (!isset($enabled[$enrol])) {
break;
}
$enabled = array_keys($enabled);
$enabled = array_flip($enabled);
$current = $enabled[$enrol];
if ($current == 0) {
break; //already at the top
}
$enabled = array_flip($enabled);
$enabled[$current] = $enabled[$current - 1];
$enabled[$current - 1] = $enrol;
set_config('enrol_plugins_enabled', implode(',', $enabled));
break;
case 'down':
if (!isset($enabled[$enrol])) {
break;
}
$enabled = array_keys($enabled);
$enabled = array_flip($enabled);
$current = $enabled[$enrol];
if ($current == count($enabled) - 1) {
58

break; //already at the end


}
$enabled = array_flip($enabled);
$enabled[$current] = $enabled[$current + 1];
$enabled[$current + 1] = $enrol;
set_config('enrol_plugins_enabled', implode(',', $enabled));
break;
case 'migrate':
if (get_string_manager()->string_exists('pluginname', 'enrol_'.$enrol)) {
$strplugin = get_string('pluginname', 'enrol_'.$enrol);
} else {
$strplugin = $enrol;
}
$PAGE->set_title($strplugin);
echo $OUTPUT->header();
// This may take a long time.
set_time_limit(0);
// Disable plugin to prevent concurrent cron execution.
unset($enabled[$enrol]);
set_config('enrol_plugins_enabled', implode(',', array_keys($enabled)));
echo $OUTPUT->heading(get_string('uninstallmigrating', 'enrol', 'enrol_'.
$enrol));
require_once("$CFG->dirroot/enrol/manual/locallib.php");
enrol_manual_migrate_plugin_enrolments($enrol);
59

echo $OUTPUT->notification(get_string('success'), 'notifysuccess');


if (!$return = core_plugin_manager::instance()->get_uninstall_url('enrol_'.
$enrol, '

manage'))

{
$return = new moodle_url('/admin/plugins.php');
}
echo $OUTPUT->continue_button($return);
echo $OUTPUT->footer();
exit;
}
redirect($return);
redirect($return);

60

APPENDIX 2
SCREEN SHOTS
STEP 1: Admin login

Administrator/ teacher can login using their own login ID and password
STEP 2: List of courses

This page shows list of course which is created by teachers

61

STEP 3 Enrolled users

This page shows no of students who are enrolled for respected courses
STEP 4 Enrolling users to new course

This is the process of enrolling students to new course this can be done by
admin

62

STEP 5 my home page

This is the home page, where students can select respected courses.
STEP 6 Question bank

Teachers can add questions for exam, in question banks. They can maintain
different question banks for each courses

63

STEP 6 Select question type

Teachers should select question type, for each exam. It can be quiz exams, short
answers, brief questions.
STEP 7 Entering question for exam

Teachers should enter the questions for respected exams


64

STEP 8 Allotting time limit and grade

For each and every questions teachers should allot time limit for completing
exams and mark for every questions
STEP 9 Adding new questions for quiz

After giving time limit and marks they can add the new question to the question
bank and they can be added to quiz exams

65

STEP 10 Adding short answer questions

Teachers can select the question type and in that can give the question type as
short answers and can add questions.
STEP 11 Giving answers for questions

Teachers can add respected answers for the short questions test

66

STEP 12 Attempting quiz

this
process

can

be done by
students by
their own id

and

password
STEP

13

Attempting exam

After login by password students can start the attempt

STEP 14 Enter quiz password

67

For starting the exams students should be given a new password which is give
by the teachers
STEP 15 Answering quiz

Students should answer each and every questions,amd they also can navigate
between the questions
STEP 16 Completing exam
68

After completing the exam the students should click on finsh and submit once
the answers are submitted it cannot be changed
STEP 17 Result evaluation

The result will be evaluated immediately and right and wrong answers will be
showed the grade will be also displayed
STEP 18 Show how many students have completed the quiz and their grade
69

This can be viewed by the admin.it shows how many students have been
completed the test and time taken by the students to complete the exam will be
also showed

70

APPENDIX 3
USER MANUAL
1. Moodle installation
2. Moodle configuration
3. Apache server Installation
4. Phpmyadmin Installation
5. Admin/faculty registration
6. Faculty/admin login
7. Create course
8. Enroll users
9. Create quiz/exam
10. Select question type
11. Add question to quiz
12. Allot marks
13. Allot time limit
14. Grade allotment
15. Discussion with answer key
16. Result analysis
17. End user

TECHNICAL BIOGRAPHY

71

Ms. SHIFA RANI K R (120081601051) was born on 15th Sep 1994, in


Thiruppathur, Tamil Nadu. She did her schooling in Baba Amir Badhusha Matric Hr Sec
School and secured 75% in the Higher Secondary Examination. She is currently
pursuing her B.Tech. (Information Technology) in the Department of Information
Technology of B.S. Abdur Rahman University. Her area of interest is E learning. Email
ID:shifarani94@gmail.com , Contact Number: 9944731980

Ms. Tarunika. S (120081601061) was born on 10th June 1995, in Thanjavur,


Tamil Nadu. She did her schooling in Kamala Subramanium Matric Higher Secondary
School and secured 65% in the Higher Secondary Examination. She is currently
pursuing her

B.Tech. (Information technology) in the Department of Information

Technology of

B.S. Abdur Rahman University. Her area of interests is E learning.

EMail ID: shruthi.taru@gmail.com , Contact Number : 9840086696

72

Вам также может понравиться