You are on page 1of 61

ONLINE EXAMINATION SYSTEM

(A Project report submitted in the partial fulfillment of the requirements for the award of the Degree of)

BACHELOR OF COMPUTER SCIENCE

Submitted By
ABDUL KHADHIR M ALPIN MILTON A
(REG.NO: 2221128006) (REG.NO:
2221128007)

Under the Guidance of

Mrs., R.RAJESWARI M.Sc., M.Phil.,SET.,B.Ed


Head & Assistant Professor
Department of Computer Science

DEPARTMENT OF COMPUTER SCIENCE


ANANDA COLLEGE
(Accredited with ‘B’ Grade by NAAC)
(Affiliated to Alagappa University, Karaikudi)
(UGC Recognized under 2(f) and 12(b) Institution)
Devakottai - 630 303

April – 2024
BONAFIDE CERTFICATE

This is to certify that this project entitled “ONLINE EXAMINATION SYSTEM” is


the bonafide work done by M.ABDUL KHADHIR (2221128006) & A.ALPIN MILTON
(2221128007) in partial fulfillment of the award of the degree of Bachelor of Computer Science,
under my Guidance

INTERNAL GUIDE HEAD OF THE DEPARTMENT

VIVA-VOCE Examination held on ________________________ at Ananda College,


Devakottai.

INTERNAL EXAMINAR EXTERNAL EXAMINAR


M.ABDUL KHADHIR Reg.No: 2221128006
A.ALPIN MILTON Reg.No: 2221128007
Department of Computer Science
Ananda College
Devakottai-630303

DECLARATION

I hereby declare that the project certified on “ONLINE EXAMINATION SYSTEM”


submitted in the partial fulfillment of the award of the degree of Bachelors in Computer Science.
This is my original work and that has not previously formatted the basis for the award of any
degree, diploma or any other similar titles.

Place :Devakottai Signature of the Candidate

Date : (M.ABDUL KHADHIR),

(A.ALPIN MILTON)
ACKNOWLEDGEMENT

First and foremost we would like to THANK GOD for the successful completion of this
project.

We give our grateful thanks to our parents , family members and friends.
.
We are delightful to thanks Rev. Dr. S. Sebastian, Secretary of our college for
providing us all the necessary facilities to accomplish this project work successfully.

We express our sincere thanks to Rev.Dr.S. John Vasantha Kumar, Principal of our
college for his encouragement throughout this project work.

We feel privileged in extending our sense of gratitude to Mrs.,R.Rajeswari


M.Sc.,M.Phil.,SET.,B.Ed, Head & Assistance professor, Department of Computer Science,
Ananda College who served as real guiding and inspiring force to complete this project work.

We also thanks to our system admin Mr.A.Jeyakumar, DEEE., DCHT., HDCA.,and


Lab Assistant Mr.P.Hariharan, BA.B.Ed, for their encouragement and help.

( M.ABDUL KHADHIR

&

A.ALPIN MILTON)
CONTENT
Page No

1. INTRODUCTION 01

1.1 .PROJECT DESCRIPTION 02

2 .SYSTEM ANALYSIS 03

2.1 .EXISTING SYSTEM 03

2.2 .PROPOSED SYSTEM 04

2.3 .SYSTEM STUDY 05

2.3.1 .FEASIBILITY ANALYSIS 05

2.3.2 .TECHNICAL FEASIBILITY 05

2.3.3 .ECONOMICAL FEASIBILITY 05

3 .SYSTEM SPECIFICATION 06

3.1. HARDWARE REQUIREMENTS 06

3.2. SOFTWARE REQUIREMENTS 06

3.3 SOFTWARE DESCRIPTION 07

3.3.1 .INTRODUCTION TO PHP 07

3.3.3.INTRODUCTION TO SQL 08

4.SYSTEM DESIGN 12

4.1.MODULE DESCRIPTION 12

4.2.ARCHITECTURE 14

4.3.DATA FLOW DIAGRAM 15


4.4.DFD 0th LEVEL 16

4.5.USECASE DIAGRAM 17

4.6.DATABASE DESIGN 18

5.SYSTEM TESTING AND IMPLEMENTATION 21

5.1.TESTING INTRODUCTION 21

5.2.TESTING METHODS 21

White Box Testing 22

Black Box Testing 22

5.3.UNIT TESTNG 22

5.4.INTEGRATION TESTING 22

5.5.VALIDATION TESTING

5.6.TESTING CASES 23

5.7.SYSTEM IMPLEMENTATION 24

5.7.1.INTRODUCTION 24

6.CONCLUSION AND FUTURE ENHANCEMENT 26

6.1.CONCLUSION 26

6.2.FUTURE ENHANCEMENTS 27

7.BIBLIOGRAPHY 33

8.APPENDIX 36

8.1.SAMPLE SOURCE CODE 36

8.2.SAMPLE SCREEN SHOTS 62


1.INTRODUCTION

Online Exam System is a full-fledged system which is beneficial for both teachers and
students. With this site, Administrator can allow authorized entry of users which includes
faculties and students.

Faculties are the one who register on the site and conduct timed exams in their respective
courses. They can add questions in the test by selecting the available settings.

The tests added by faculties are available to students who can attempt the test and get
score then and there. Thus the purpose of the site is to provide a system that saves the efforts and
time of both the teachers and the students.

Online Exam System is a web application that establishes a network between the faculties
and the students. Faculties enter on the site the questions they want in the exam. These questions
are displayed as a test to the eligible students. The answers enter by the students are then
evaluated and their score is calculated and saved. This score then can be accessed by the faculties
and administrator to evaluate their performance.

Online Exam System provides the platform but does not directly participate in, nor is it
involved in any tests conducted. Questions are posted not by the site, but users of the site.

The administrator keeps an eye on the overall functioning of the system which includes
how many users are using the site, how many tests are added by which faculty, how many
students have given those tests and view the score of any student.
The system entitled “Online Exams System” is application software, which aims at providing
services to the institutes and providing them with an option of selecting the eligible students by
themselves.

1.1 PROJECT DESCRIPTION

The purpose of on-line test system is to take online test in an efficient manner
and no time wasting for checking the paper. It provides online facility to Institutes to conduct
online exams and to Students to give online exams. Institutes (i.e the faculties in institute) can
enter and edit the questions in test. Students can login and give their respective exams and view
their score then and there. The main objective of on-line test simulator is to efficiently evaluate
the candidate thoroughly through a fully automated system that not only saves lot of time but
also gives fast results

The main objective of the online examination system is to provide equal opportunity to every

student who is not going to the exam due to the lack of geographical areas.

Online Examination System is a cost-effective, scalable way to convert traditional pen and
paper-based exams to online and paperless mode. Candidates can appear for the exam using any
desktop, laptop, or mobile device with a browser. Exam results can be generated instantly for the
objective type of questions.
2.SYSTEM ANALYSIS

2.1.EXISTING SYSTEM

Defines project goals into defined functions and operation of the intended application and
analyzes end-user information needs.

Describes desired features and operations in detail, including screen layouts, business rules,
process diagrams, pseudo-code and other documentation.

Existing system is a manual one in which users are maintaining books to store the information
like Student Details, Instructor Details, Schedule Details and feedbacks about students who
attempted exam as per schedule.. It is very difficult to maintain historical data.

DISADVANTAGE

The following drawbacks of existing system emphasize the need for computerization:

1. a lot of copies of question papers have to be made.

2. a lot of correction work hence delays in giving the results.

3. a lot of tabulation works for each subject results.


2.2.PROPOSED SYSTEM

This application is used to conduct online examination. the students can sit at individual
terminals and login to write the exam in the given duration. . thequestions have to be given to the
students. this application will perform correction, display the result immediately and also store it
in database. this application provides the administrator with a facility to add new exams. this
application provides the instructor add questions to the exam, modify questions in the exam in a
particular exam. this application takes care of authentication of the administrator, instructor as
well as the student.

ADVANTAGE

Online Examination Tool is to provide better information for the users of this system for better
results for their maintenance in student examination schedule details and grading details.

2.3.SYSTEM STUDY

2.3.1.FEASIBILITY ANALYSIS

Feasibility is the study of impact, which happens in the organization by the


development of a system. The impact can be either positive or negative. When the positives
nominate the negatives, then the system is considered feasible. Here the feasibility study can be
performed in two ways such as technical feasibility and Economical Feasibility.

Three key considerations involved in the feasibility analysis are

 ECONOMICAL FEASIBILITY

 TECHNICAL FEASIBILITY
2.3.2 TECHNICAL FEASIBILITY

Since there will not be much difficulty in getting required resources for the
development and maintaining the system as well. All the resources needed for the development
of the software as well as the maintenance of the same is available in the organization here we
are utilizing the resources which are available already.

2.3.3.ECONOMICAL FEASIBILITY

Development of this application is highly economically feasible. The


organization needed not spend much money for the development of the system already
available. The only thing is to be done is making an environment for the development with an
effective supervision. If we are doing so, we can attain the maximum usability of the
corresponding resources. Even after the development, the organization will not be in condition
to invest more in the organization. Therefore, the system is economically feasible.

3.SYSTEM SPECIFICATION

3.1 HARDWARE REQUIREMENTS

Processor : AMD PRO A4-4350B R4

RAM : 4 GB

Hard Disk : 500 GB

Monitor : LG 23”

Keyboard : 104 Keys.

Mouse : 2 buttons
3.2. SOFTWARE REQUIREMENTS

OperatingSystem :Windows 8, Windows 10


Front end :HTML,BOOSTRAP,CSS&JAVASCRIPT
Back end : PHP, SQL SERVER 2012

4. Software Description

4.1. INTRODUCTION TO FRONTEND

4.4.1 INTRODUCTION TO PHP.

PHPTriad installs a complete working PHP/MySQL server environment on Windows


platforms (9x/ NT). Installs PHP, MySQL, Apache, and PHPMyAdmin.

PHP is a scripting language originally designed for producing dynamic web pages. It has
evolved toinclude a command line interface capability and can be used in standalone
graphical applications. While PHP was originally created by RasmusLerdorf in 1995, the
main implementation of PHP is now produced by ThePHP Group and serves as thede
factostandard for PHP as there is no formal specification. PHP is freesoftware released
under the PHP License, however it is incompatible with
4.1.2MVC ARCHITECTURE

4.2 INTRODUCTION TO BACKEND

DATABASE

A database management, or DBMS, gives the user access to their data and helps
them transform the data into information. Such database management systems include dBase,
paradox, IMS, SQL Server and SQL Server.

These systems allow users to create, update and extract information from their
database. A database is a structured collection of data. Data refers to the characteristics of
people, things and events. SQL Server stores each data item in its own fields.
In SQL Server, the fields relating to a particular person, thing or event are
bundled together to form a single complete unit of data, called a record (it can also be referred
to as raw or an occurrence). Each record is made up of a number of fields. No two fields in a
record can have the same field name.

4.2.1 SQL SERVER TABLES

SQL Server stores records relating to each other in a table. Different tables are
created for the various groups of information. Related tables are grouped together to form a
database.

4.2.2 PRIMARY KEY

Every table in SQL Server has a field or a combination of fields that uniquely
identifies each record in the table. The Unique identifier is called the Primary Key, or simply the
Key. The primary key provides the means to distinguish one record from all other in a table. It
allows the user and the database system to identify, locate and refer to one particular record in
the database.

4.2.3 RELATIONAL DATABASE

Sometimes all the information of interest to a business operation can be stored in


one table. SQL Server makes it very easy to link the data in multiple tables. Matching an
employee to the department in which they work is one example. This is what makes SQL Server
a relational database management system, or RDBMS. It stores data in two or more tables and
enables you to define relationships between the table and enables you to define relationships
between the tables.
4.2.4 FOREIGN KEY

When a field is one table matches the primary key of another field is referred to
as a foreign key. A foreign key is a field or a group of fields in one table whose values match
those of the primary key of another table.

4.2.5 REFERENTIAL INTEGRITY

Not only does SQL Server allow you to link multiple tables, it also maintains
consistency between them. Ensuring that the data among related tables is correctly matched is
referred to as maintaining referential integrity.

4.2.6 ADVANTAGES OF RDBMS

 Redundancy can be avoided

 Inconsistency can be eliminated

 Data can be Shared

 Standards can be enforced


 Security restrictions ca be applied

 Integrity can be maintained

 Conflicting requirements can be balanced

 Data independence can be achieved

4.2.7 DISADVANTAGES OF DBMS

A significant disadvantage of the DBMS system is cost. In addition to the cost of


purchasing of developing the software, the hardware has to be upgraded to allow for the
extensive programs and the workspace required for their execution and storage. While
centralization reduces duplication, the lack of duplication requires that the database be
adequately backed up so that in case of failure the data can be recovered.

4.2.8 FEATURES OF SQL SERVER(RDBMS)

SQL SERVER is one of the leading database management systems (DBMS) because it
is the only Database that meets the uncompromising requirements of today’s most demanding
information systems. From complex decision support systems (DSS) to the most rigorous online
transaction processing (OLTP) application, even application that require simultaneous DSS and
OLTP access to the same critical data, SQL Server leads the industry in both performance and
capability.

SQL SERVER is a truly portable, distributed, and open DBMS that delivers unmatched
performance, continuous operation and support for every database.

SQL SERVER RDBMS is high performance fault tolerant DBMS which is specially
designed for online transactions processing and for handling large database application.

SQL SERVER with transactions processing option offers two features which contribute
to very high level of transaction processing throughput, which are: The row level lock manager
1.ENTERPRISE-WIDE DATA SHARING

The unrivaled portability and connectivity of the SQL SERVER DBMS enables all the
systems in the organization to be linked into a singular, integrated computing resource.

2.PORTABILITY

SQL SERVER is fully portable to more than 80 distinct hardware and operating systems
platforms, including UNIX, MSDOS, OS/2, Macintosh and dozens of proprietary platforms.
This portability gives complete freedom to choose the database server platform that meets the
system requirements.

3.OPEN SYSTEMS

SQL SERVER offers a leading implementation of industry –standard SQL. SQL


Server’s open architecture integrates SQL SERVER and non –SQL SERVER DBMS with
industry’s most comprehensive collection of tools, application, and third-party software
products SQL Server’s Open architecture provides transparent access to data from another
relational database and even non-relational database.

4.DISTRIBUTED DATA SHARING

SQL Server’s networking and distributed database capabilities to access data stored on
remote server with the same ease as if the information was stored on a single local computer. A
single SQL statement can access data at multiple sites. You can store data where system
requirements such as performance, security, or availability dictate.

5.UNMATCHED PERFORMANCE

The most advanced architecture in the industry allows the SQL SERVER DBMS to deliver
unmatched performance
5.SYSTEM DESIGN

5.1.MODULE DESCRIPTION

1.ADMIN PHASE

a. Admin login

b.Dashboard.

c.Master data.

 Department

 class

 course

 lecturer

 students

d. Relation.

 Class - lecturer

 department – course

e.Question bank.

f.Exam result.

g.User management.

h.Settings.
i. logout.

2. TEACHER PHASE

a. Teacher login.
b. Dashboard.
c. Question bank.
d. Exam.
f. Exam result.
g. Logout.

3. STUDENT PHASE

a. Student login.
b. Dashboard.
c. Exam result.
f. Logout.

3. ABOUT US

4. CONTACT US

1. ADMIN PHASE

In particular, this Online Exam System project in PHP CodeIgniter focuses mainly on
keeping track of questionnaires as well as exam records. Also, the system displays all the
categories with their respective details. In addition, the system allows managing students,
teachers, and examination schedules. Evidently, this project contains an admin panel with a
student and teacher panel. In an overview of this web application, an administratorhas full
control over the system. He/she can manage users, classes, departments, courses, question sets,
and their relations. Here, each and every sectionhasits own respective details such as name and
other important details. However, the admin has the right to set a student/teacher’s account. By
default, the system automatically sets these users’ login details as their ID.

Even though an admin can access and manage all the questionnaires available in the
system, the system restricts viewing all under the teacher’s panel. To be precise, a teacher can
only view his/her subject’s question sets. Whereas, the administrator can view each and every
question set with a filter option based upon the available courses. Another thing is that the
administrator can list out every student’s examination result. Here, the system allows
downloading students’ report cards. Besides, the admin can oversee record highlights and clear
up the system’s record with a single click.

2. TEAHER PHASE

On one hand, the teacher has some important roles in maintaining proper flow within
the system. This particular user can conduct examinations, set question papers, and check his/her
student’s results. The very first step of conducting an examination is that teacher requires to set a
bundle of question sets for a certain course. For this, the user has to provide questions, five
options, select the correct answer, and set question weight. And now, here comes the main thing
of this project; Exam management. Likewise, the user has to provide various details such as
examination name, number of questions, date & time with question pattern. Here, the system
offers two types of patterns: Random and Sort. After completion, the system automatically
generates a token code which is a mandatory part for the students in order to join their online
examinations.

3. STUDENT PHASE

On the other hand, comes the main feature of this project. The main role of a student’s
account is to attend online examinations. Nevertheless, the student can proceed with attending
available examinations. In fact, all the examinations are formed as Multiple Choice Questions.
Here, the student needs to provide a token code for the particular examination. Also, the student
should make sure about the examination date and time. Else, the system won’t allow entering
and attending examinations. At last, the system generates the student’s result under the Result
section where he/she can easily list out or even downloadit. In addition, the system strictly
restricts users to attend examinations multiple times.

4. EXAM TOKEN,EXAMINATION RESULT

With it, the system provides a token for every examination record. This particular
token code must be shared with the students which later works as a kind of verification during
their examination period. Also, the teacher account can have a detailed report on his/her
student’s results. The result shows highest/lowest marks on each with average scores and other
important details. Moreover, the teacher has the right to manage examinations anytime. In fact,
this particular feature is only set for teachers; meaning even the administrator does not have any
control over the examination management system. All the duties and rules are to be handled by
the teacher’s account.

5. AVAILABLE FEATURES

 Teacher Panel

 Student Panel

 Administrator Panel

 Manage Course, Department, Class

 Student Management

 Teacher Management

 Set Relations

 Set Questionnaires

 Conduct and Manage


 Examinations

 Examination Token Code

 Attend Online Exam

 List Student’s Result

 Download Result (PDF)

3. ABOUT US
The about us module has a functionality used to display the details

About websites and exam history.

4.CONTACT US
The Contact us module has a functionality to contact the admin through this module and
clarify their doubts
5.2 Architectural Design
5.3 Data Flow Diagram
User case
5.4 Database Design
A table is a data structure that organizes information into rows and columns. It
can be used to both store and display data in a structured format. For example, database store
data in table so that information can be quickly accessed from specific rows. Websites often use
table to display multiple rows of data on page. Spreadsheets combine both purpose of a table by
storing and displaying data in structured format.

Databases often contain multiple tables, with each one designed for a specific
purpose. For example, a company database may contain separate table for employees, clients
and suppliers. Each table may include its own set field, based on what data the table needs to
store. In database tables, each field is considered a column, while each entry (or record), is
considered a row. A specific value can be accessed from the table by requesting data from an
individual column and row.

1.student details:

Field Data type Constraint


Id int(10) Not null
std_name char(50) Not null
Nim int(20) Primary key
Email_id Var char(30) Not null
class_id char(3) Not null

2.Teacher details

Field Data type Constraint


Id int(10) Not null
lect_name char(50) Not null
Nim int(20) Primary key
Email_id Var char(30) Not null
course_id char(3) Not null

3. course

Field Data type Constraint


course_id int(10) Primary key
course_name char(20) Not null

4.class
Field Data type Constraint
class_id int(10) Primary key
class_name char(20) Not null
5.test
Field Data type Constraint
Id int(3) Not null
lect_id int(10) Not null
course_id int(10) Not null
test_name Var char(20) Not null
no_of_ques int(10) Not null
time int(6) Not null
type char(30) Not null
Srt_date datetime Not null
token Var char(10) Not null
5.SYSTEM TESTING AND IMPLEMENTATION

5.1 TESTING INTRODUCTION

System Testing includes testing of a fully integrated software system. Generally,


a computer system is made with the integration of software (any software is only a single
element of a computer system). The software is developed in units and then interfaced with
other software and hardware to create a complete computer system. In other words, a computer
system consists of a group of software to perform the various tasks, but only software cannot
perform the task; for that software must be interfaced with compatible hardware. System testing
is a series of different type of tests with the purpose to exercise and examine the full working of
an integrated software computer system against requirements.

5.2 TESTING METHODS

There are two major type of testing they are

1) White Box Testing.

2) Black Box Testing.

WHITE BOX TESTING

White Box Testing is a testing technique in which software’s internal structure,


design, and coding are tested to verify input-output flow and improve design, usability, and
security. In white box testing, code is visible to testers, so it is also called Clear box testing,
Open box testing, Transparent box testing, Code-based testing, and Glass box testing.

BLACK BOX TESTING

Black box testing is a technique of software testing which examines the


functionality of software without peering into its internal structure or coding. The primary
source of black box testing is a specification of requirements that is stated by the customer.

5.3 UNIT TESTING

Unit Testing is a type of software testing where individual units or components


of a software are tested. The purpose is to validate that each unit of the software code performs
as expected. Unit Testing is done during the development (coding phase) of an application by
the developers. Unit Tests isolate a section of code and verify its correctness. A unit may be an
individual function, method, procedure, module, or object.

In SDLC, STLC, V Model, Unit testing is first level of testing done before
integration testing. Unit testing is a Whitebox testing technique that is usually performed by the
developer. Though, in a practical world due to time crunch or reluctance of developers to tests,
QA engineers also do unit testing.

5.4 INTEGRATION TESTING

Integration testing is the process of testing the interface between two software
units or modules. It focuses on determining the correctness of the interface. The purpose of
integration testing is to expose faults in the interaction between integrated units. Once all the
modules have been unit tested, integration testing is performed.

5.5 VALIDATION TESTING


Validation testing is the process of ensuring that the tested and developed
software satisfies the client /user’s needs. The business requirement logic or scenarios have to
be tested in detail. All the critical functionalities of an application must be tested here.

As a tester, it is always important to know how to verify the business logic or


scenarios that are given to you. One such method that helps in detailed evaluation of the
functionalities is the Validation Process.

USER ACCEPTANCE TESTING

User Acceptance Testing (UAT), or application testing, is the final stage of any
software development or change request lifecycle before go-live. UAT meaning the final stage
of anydevelopment process to determine that the software does what it was designed to do in
real-world situations. Actual users test the software to determine if it does what it was designed
to do in real-world situations, validating changes made and assessing adherence to their
organization’s business requirements. The main purpose of acceptance testing is to validate end-
to-end business flow.

5.7 SYSTEM IMPLEMENTATION

5.7.1 INTRODUCTION

Implementation is the stage in the project where the theoretical design is turned
into a working system. The implementation phase constructs, installs, and operates the new
system. The most crucial stage in achieving a new successful system is that it will work
efficiently and effectively.

There are several activities involved while implementing a new project. They are

 End user training


 End user Education
 Training on the application software
 System Design
 Parallel Run and To New System
 Post implementation Review

END USER TRAINING

End User Implementation means only those specific portions of End User
Products, developed through the use of a Company Toolkit, that (a) implement and are
compliant with all or part of the required portions of Structured Storage for the sole purpose of
implementing and being compliant with such required portions of the AAF Specification; and
(b) are branded with a trademark owned or controlled by End User.

END USER EDUCATION

End-user education is building awareness among employees by equipping them


with the necessary tools and skills required to protect themselves and the company data from
loss or attack.

TRAINING OF APPLICATION SOFTWARE

software development is part of every business not just for software companies
themselves, but for every company which relies on software to deliver on their core business.
Thus, understanding the key tenets of Successful Software Implementation and Delivery is
valuable in any organization.

SYSTEM DESIGN

System design is the phase that bridges the gap between problem domain and the
existing system in a manageable way.

POST IMPLEMENTATION VIEW


PIER is a tool or standard approach for evaluating the outcome of the project and
determine whether the project is producing the expected benefits to the processes, products or
services. It enables the user to verify that the project or system has achieved its desired outcome
within specified time period and planned cost.

6.CONLUSION AND FEATURE ENHANCMENT

6.1 CONLUSION

The project report entitled “ONLINE EXAMINATION” has


come to its final stage. The system has been developed with much care that it is free of errors
and at the same time it is efficient and less time consuming. The important thing is that the
system is robust. Also provision is provided for future developments in the system. The entire
system is secured. This online system will be approved and implemented soon.

6.2 FEATURE ENHANCMENTS

In comparison to other exams, The Online Examination System is


widely used. Online examination system can be deployed in private institutes as well as
educational institutions. As it is a user-friendly web-based application it can be accessed
anywhere and anytime. Using modern technologies, we can also develop a more secure and
user-friendly application

Automated: Online examination system is fully automatic. It is therefore quite accurate and
valuable for both students and teachers. It also completely eliminates the necessity for
traditional pen-paper based examinations.

Modern Infrastructure: Universities and colleges need a modern online examination system to
analyze and enhance student results. To be able to meet the needs of our clients, we have
invested in the greatest infrastructure available.
Reliable & Secure: Amazon Web Services (AWS), the world’s most dependable cloud
provider, powers our application. These are the same services that power Facebook & Twitter.

Flexible & Accessible: The candidates/students can take the assessment or examination by
logging into the online examination system during class or at home with the use of their own
devices. Apart from this, They also get the opportunity to see their results and answers as instant
feedback about their knowledge or understanding of their chosen topics..

Quick Result Processing: The results of the online assessment are calculated practically
instantaneously and given to the students, Through an online examination system. In paper-
based assessments, however, evaluating the answer is a lengthy process and prone to human
mistakes.

Cost-effective: In the online examination, the examination cost is very minimal. All the
necessary processes are carried out digitally. The whole evaluation process is also done online
with the help of online cutting-edge AI technology thus reducing the cost of logistics.

Thus, With the use of a systematic online examination system, it has become quite simple for an
organization to carry out periodic and ongoing online assessments.

7. BIBLIOGRAPHY

BOOK REFERENCE

http://en.wikipedia.org/wiki/Web Audit_automation_system

http://www.koha.org/about-koha/

http://www.kohadocs.org/usersguide/ch01.html

http://www.kohadocs.org/usersguide/ch01s01.html

http://www.kohadocs.org/usersguide/ch01s02.html

http://www.kohadocs.org/usersguide/ch01s03.html

http://www.kohadocs.org/usersguide/ch01s04.html
WEBSITE REFERENCE

https://www.iconfinder.com/

www.studytonight.com

www.tutlane.com

www.jQuery.com

https://dotnet.microsoft.com/

https://procodeguide.com/

https://www.sensibledev.com/

https://www.c-sharpcorner.com/

https://www.javatpoint.com/

8. APPENDIX

8.1 SAMPLE SOURCE CODE

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Dashboard_model extends CI_Model {

public function total($table)

$query = $this->db->get($table)->num_rows();

return $query;
}

public function get_where($table, $pk, $id, $join = null, $order = null)

$this->db->select('*');

$this->db->from($table);

$this->db->where($pk, $id);

if($join !== null){

foreach($join as $table => $field){

$this->db->join($table, $field);

if($order !== null){

foreach($order as $field => $sort){

$this->db->order_by($field, $sort);

$query = $this->db->get();

return $query;

}
}

[4:49 PM, 2/29/2024] Khadhir: <?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Settings_model extends CI_Model {

public function not_admin()

$this->db->select('a.id');

$this->db->from('users a');

$this->db->join('users_groups b', 'a.id=b.user_id');

$this->db->where_not_in('b.group_id', ['1']);

return $this->db->get()->result();

public function truncate($table)

$this->load->helper('file');

$this->db->query('SET FOREIGN_KEY_CHECKS = 0');

foreach ($table as $tb) {

$this->db->truncate($tb);

}
$this->db->query('SET FOREIGN_KEY_CHECKS = 1');

delete_files('./uploads/bank_soal/');

$users = $this->not_admin();

foreach ($users as $user) {

$this->db->delete('users', array('id' => $user->id));

return;

[4:50 PM, 2/29/2024] Khadhir: <?php

defined('BASEPATH') or exit('No direct script access allowed');

class Master_model extends CI_Model

public function __construct()

$this->db->query("SET sql_mode=(SELECT REPLACE(@@sql_mode,


'ONLY_FULL_GROUP_BY', ''));");

}
public function create($table, $data, $batch = false)

if ($batch === false) {

$insert = $this->db->insert($table, $data);

} else {

$insert = $this->db->insert_batch($table, $data);

return $insert;

public function update($table, $data, $pk, $id = null, $batch = false)

if ($batch === false) {

$insert = $this->db->update($table, $data, array($pk => $id));

} else {

$insert = $this->db->update_batch($table, $data, $pk);

return $insert;

public function delete($table, $data, $pk)

$this->db->where_in($pk, $data);
return $this->db->delete($table);

/**

* Data Kelas

*/

public function getDataKelas()

$this->datatables->select('id_kelas, nama_kelas, id_jurusan, nama_jurusan');

$this->datatables->from('kelas');

$this->datatables->join('jurusan', 'jurusan_id=id_jurusan');

$this->datatables->add_column('bulk_select', '<div class="text-center"><input


type="checkbox" class="check" name="checked[]" value="$1"/></div>', 'id_kelas, nama_kelas,
id_jurusan, nama_jurusan');

return $this->datatables->generate();

public function getKelasById($id)

$this->db->where_in('id_kelas', $id);

$this->db->order_by('nama_kelas');

$query = $this->db->get('kelas')->result();

return $query;
}

/**

* Data Jurusan

*/

public function getDataJurusan()

$this->datatables->select('id_jurusan, nama_jurusan');

$this->datatables->from('jurusan');

$this->datatables->add_column('bulk_select', '<div class="text-center"><input


type="checkbox" class="check" name="checked[]" value="$1"/></div>', 'id_jurusan,
nama_jurusan');

return $this->datatables->generate();

public function getJurusanById($id)

$this->db->where_in('id_jurusan', $id);

$this->db->order_by('nama_jurusan');

$query = $this->db->get('jurusan')->result();

return $query;

}
/**

* Data Mahasiswa

*/

public function getDataMahasiswa()

$this->datatables->select('a.id_mahasiswa, a.nama, a.nim, a.email, b.nama_kelas,


c.nama_jurusan');

$this->datatables->select('(SELECT COUNT(id) FROM users WHERE username = a.nim)


AS ada');

$this->datatables->from('mahasiswa a');

$this->datatables->join('kelas b', 'a.kelas_id=b.id_kelas');

$this->datatables->join('jurusan c', 'b.jurusan_id=c.id_jurusan');

return $this->datatables->generate();

public function getMahasiswaById($id)

$this->db->select('*');

$this->db->from('mahasiswa');

$this->db->join('kelas', 'kelas_id=id_kelas');

$this->db->join('jurusan', 'jurusan_id=id_jurusan');

$this->db->where(['id_mahasiswa' => $id]);

return $this->db->get()->row();
}

public function getJurusan()

$this->db->select('id_jurusan, nama_jurusan');

$this->db->from('kelas');

$this->db->join('jurusan', 'jurusan_id=id_jurusan');

$this->db->order_by('nama_jurusan', 'ASC');

$this->db->group_by('id_jurusan');

$query = $this->db->get();

return $query->result();

public function getAllJurusan($id = null)

if ($id === null) {

$this->db->order_by('nama_jurusan', 'ASC');

return $this->db->get('jurusan')->result();

} else {

$this->db->select('jurusan_id');

$this->db->from('jurusan_matkul');

$this->db->where('matkul_id', $id);

$jurusan = $this->db->get()->result();
$id_jurusan = [];

foreach ($jurusan as $j) {

$id_jurusan[] = $j->jurusan_id;

if ($id_jurusan === []) {

$id_jurusan = null;

$this->db->select('*');

$this->db->from('jurusan');

$this->db->where_not_in('id_jurusan', $id_jurusan);

$matkul = $this->db->get()->result();

return $matkul;

public function getKelasByJurusan($id)

$query = $this->db->get_where('kelas', array('jurusan_id'=>$id));

return $query->result();

/**
* Data Dosen

*/

public function getDataDosen()

$this->datatables->select('a.id_dosen,a.nip, a.nama_dosen, a.email, a.matkul_id,


b.nama_matkul, (SELECT COUNT(id) FROM users WHERE username = a.nip OR email =
a.email) AS ada');

$this->datatables->from('dosen a');

$this->datatables->join('matkul b', 'a.matkul_id=b.id_matkul');

return $this->datatables->generate();

public function getDosenById($id)

$query = $this->db->get_where('dosen', array('id_dosen'=>$id));

return $query->row();

/**

* Data Matkul

*/

public function getDataMatkul()


{

$this->datatables->select('id_matkul, nama_matkul');

$this->datatables->from('matkul');

return $this->datatables->generate();

public function getAllMatkul()

return $this->db->get('matkul')->result();

public function getMatkulById($id, $single = false)

if ($single === false) {

$this->db->where_in('id_matkul', $id);

$this->db->order_by('nama_matkul');

$query = $this->db->get('matkul')->result();

} else {

$query = $this->db->get_where('matkul', array('id_matkul'=>$id))->row();

return $query;

}
/**

* Data Kelas Dosen

*/

public function getKelasDosen()

$this->datatables->select('kelas_dosen.id, dosen.id_dosen, dosen.nip, dosen.nama_dosen,


GROUP_CONCAT(kelas.nama_kelas) as kelas');

$this->datatables->from('kelas_dosen');

$this->datatables->join('kelas', 'kelas_id=id_kelas');

$this->datatables->join('dosen', 'dosen_id=id_dosen');

$this->datatables->group_by('dosen.nama_dosen');

return $this->datatables->generate();

public function getAllDosen($id = null)

$this->db->select('dosen_id');

$this->db->from('kelas_dosen');

if ($id !== null) {

$this->db->where_not_in('dosen_id', [$id]);

$dosen = $this->db->get()->result();
$id_dosen = [];

foreach ($dosen as $d) {

$id_dosen[] = $d->dosen_id;

if ($id_dosen === []) {

$id_dosen = null;

$this->db->select('id_dosen, nip, nama_dosen');

$this->db->from('dosen');

$this->db->where_not_in('id_dosen', $id_dosen);

return $this->db->get()->result();

public function getAllKelas()

$this->db->select('id_kelas, nama_kelas, nama_jurusan');

$this->db->from('kelas');

$this->db->join('jurusan', 'jurusan_id=id_jurusan');

$this->db->order_by('nama_kelas');

return $this->db->get()->result();

}
public function getKelasByDosen($id)

$this->db->select('kelas.id_kelas');

$this->db->from('kelas_dosen');

$this->db->join('kelas', 'kelas_dosen.kelas_id=kelas.id_kelas');

$this->db->where('dosen_id', $id);

$query = $this->db->get()->result();

return $query;

/**

* Data Jurusan Matkul

*/

public function getJurusanMatkul()

$this->datatables->select('jurusan_matkul.id, matkul.id_matkul, matkul.nama_matkul,


jurusan.id_jurusan, GROUP_CONCAT(jurusan.nama_jurusan) as nama_jurusan');

$this->datatables->from('jurusan_matkul');

$this->datatables->join('matkul', 'matkul_id=id_matkul');

$this->datatables->join('jurusan', 'jurusan_id=id_jurusan');

$this->datatables->group_by('matkul.nama_matkul');

return $this->datatables->generate();
}

public function getMatkul($id = null)

$this->db->select('matkul_id');

$this->db->from('jurusan_matkul');

if ($id !== null) {

$this->db->where_not_in('matkul_id', [$id]);

$matkul = $this->db->get()->result();

$id_matkul = [];

foreach ($matkul as $d) {

$id_matkul[] = $d->matkul_id;

if ($id_matkul === []) {

$id_matkul = null;

$this->db->select('id_matkul, nama_matkul');

$this->db->from('matkul');

$this->db->where_not_in('id_matkul', $id_matkul);

return $this->db->get()->result();

}
public function getJurusanByIdMatkul($id)

$this->db->select('jurusan.id_jurusan');

$this->db->from('jurusan_matkul');

$this->db->join('jurusan', 'jurusan_matkul.jurusan_id=jurusan.id_jurusan');

$this->db->where('matkul_id', $id);

$query = $this->db->get()->result();

return $query;

[4:50 PM, 2/29/2024] Khadhir: <?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Soal_model extends CI_Model {

public function getDataSoal($id, $dosen)

$this->datatables->select('a.id_soal, a.soal, FROM_UNIXTIME(a.created_on) as


created_on, FROM_UNIXTIME(a.updated_on) as updated_on, b.nama_matkul,
c.nama_dosen');

$this->datatables->from('tb_soal a');

$this->datatables->join('matkul b', 'b.id_matkul=a.matkul_id');

$this->datatables->join('dosen c', 'c.id_dosen=a.dosen_id');


if ($id!==null && $dosen===null) {

$this->datatables->where('a.matkul_id', $id);

}else if($id!==null && $dosen!==null){

$this->datatables->where('a.dosen_id', $dosen);

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Ujian_model extends CI_Model {

public function getDataUjian($id)

$this->datatables->select('a.id_ujian, a.token, a.nama_ujian, b.nama_matkul,


a.jumlah_soal, CONCAT(a.tgl_mulai, " <br/> (", a.waktu, " Minute)") as waktu, a.jenis');

$this->datatables->from('m_ujian a');

$this->datatables->join('matkul b', 'a.matkul_id = b.id_matkul');

if($id!==null){

$this->datatables->where('dosen_id', $id);

return $this->datatables->generate();

public function getListUjian($id, $kelas)


{

$this->datatables->select("a.id_ujian, e.nama_dosen, d.nama_kelas, a.nama_ujian,


b.nama_matkul, a.jumlah_soal, CONCAT(a.tgl_mulai, ' <br/> (', a.waktu, ' Minute)') as waktu,
(SELECT COUNT(id) FROM h_ujian h WHERE h.mahasiswa_id = {$id} AND h.ujian_id =
a.id_ujian) AS ada");

$this->datatables->from('m_ujian a');

$this->datatables->join('matkul b', 'a.matkul_id = b.id_matkul');

$this->datatables->join('kelas_dosen c', "a.dosen_id = c.dosen_id");

$this->datatables->join('kelas d', 'c.kelas_id = d.id_kelas');

$this->datatables->join('dosen e', 'e.id_dosen = c.dosen_id');

$this->datatables->where('d.id_kelas', $kelas);

return $this->datatables->generate();

public function getUjianById($id)

$this->db->select('*');

$this->db->from('m_ujian a');

$this->db->join('dosen b', 'a.dosen_id=b.id_dosen');

$this->db->join('matkul c', 'a.matkul_id=c.id_matkul');

$this->db->where('id_ujian', $id);

return $this->db->get()->row();

}
public function getIdDosen($nip)

$this->db->select('id_dosen, nama_dosen')->from('dosen')->where('nip', $nip);

return $this->db->get()->row();

public function getJumlahSoal($dosen)

$this->db->select('COUNT(id_soal) as jml_soal');

$this->db->from('tb_soal');

$this->db->where('dosen_id', $dosen);

return $this->db->get()->row();

public function getIdMahasiswa($nim)

$this->db->select('*');

$this->db->from('mahasiswa a');

$this->db->join('kelas b', 'a.kelas_id=b.id_kelas');

$this->db->join('jurusan c', 'b.jurusan_id=c.id_jurusan');

$this->db->where('nim', $nim);

return $this->db->get()->row();

}
public function HslUjian($id, $mhs)

$this->db->select('*, UNIX_TIMESTAMP(tgl_selesai) as waktu_habis');

$this->db->from('h_ujian');

$this->db->where('ujian_id', $id);

$this->db->where('mahasiswa_id', $mhs);

return $this->db->get();

public function getSoal($id)

$ujian = $this->getUjianById($id);

$order = $ujian->jenis==="Random" ? 'rand()' : 'id_soal';

$this->db->select('id_soal, soal, file, tipe_file, opsi_a, opsi_b, opsi_c, opsi_d, opsi_e,


jawaban');

$this->db->from('tb_soal');

$this->db->where('dosen_id', $ujian->dosen_id);

$this->db->where('matkul_id', $ujian->matkul_id);

$this->db->order_by($order);

$this->db->limit($ujian->jumlah_soal);

return $this->db->get()->result();
}

public function ambilSoal($pc_urut_soal1, $pc_urut_soal_arr)

$this->db->select("*, {$pc_urut_soal1} AS jawaban");

$this->db->from('tb_soal');

$this->db->where('id_soal', $pc_urut_soal_arr);

return $this->db->get()->row();

public function getJawaban($id_tes)

$this->db->select('list_jawaban');

$this->db->from('h_ujian');

$this->db->where('id', $id_tes);

return $this->db->get()->row()->list_jawaban;

public function getHasilUjian($nip = null)

$this->datatables->select('b.id_ujian, b.nama_ujian, b.jumlah_soal, CONCAT(b.waktu, "


Minute") as waktu, b.tgl_mulai');

$this->datatables->select('c.nama_matkul, d.nama_dosen');
$this->datatables->from('h_ujian a');

$this->datatables->join('m_ujian b', 'a.ujian_id = b.id_ujian');

$this->datatables->join('matkul c', 'b.matkul_id = c.id_matkul');

$this->datatables->join('dosen d', 'b.dosen_id = d.id_dosen');

$this->datatables->group_by('b.id_ujian');

if($nip !== null){

$this->datatables->where('d.nip', $nip);

return $this->datatables->generate();

public function HslUjianById($id, $dt=false)

if($dt===false){

$db = "db";

$get = "get";

}else{

$db = "datatables";

$get = "generate";

$this->$db->select('d.id, a.nama, b.nama_kelas, c.nama_jurusan, d.jml_benar, d.nilai');

$this->$db->from('mahasiswa a');
$this->$db->join('kelas b', 'a.kelas_id=b.id_kelas');

$this->$db->join('jurusan c', 'b.jurusan_id=c.id_jurusan');

$this->$db->join('h_ujian d', 'a.id_mahasiswa=d.mahasiswa_id');

$this->$db->where(['d.ujian_id' => $id]);

return $this->$db->$get();

public function bandingNilai($id)

$this->db->select_min('nilai', 'min_nilai');

$this->db->select_max('nilai', 'max_nilai');

$this->db->select_avg('FORMAT(FLOOR(nilai),0)', 'avg_nilai');

$this->db->where('ujian_id', $id);

return $this->db->get('h_ujian')->row();

8.2 SAMPLE SCREEN SHOTS

1. LOGIN PAGE
2. ADMIN DASHBOARD

3. LECTURER DASHBOARD
ADD LECTURER

3. STUDENT
ADD STUDENT

4. CREATE QUESTION

You might also like