You are on page 1of 64

ONLINE GYM MANAGEMENT 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
MUTHUPANDI.V

Under the Guidance of

Mrs.,A.TAMIL SELVI,M.Sc., M.Phil.,DCHT.,


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- 630303

April-2024
BONAFIDSE CERTFICATE

This is to certify that this project entitled “ONLINE GYM MANAGEMENT


SYSTEM” is the bonafide work done by V.MUTHUPANDI (2221128020)& S.PAVITHRAN
(2221128021)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 heldon ________________________ at Ananda College,


Devakottai.

INTERNAL EXAMINAR EXTERNAL EXAMINAR


V.MUTHUPANDI Reg.No: 2221128020
S.PAVITRAN Reg.No: 2221128021
Department of Computer Science
Ananda College
Devakottai-630303

DECLARATION

I hereby declare that the project certified on “ONLINE GYM MANAGEMENT


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 : (V.MUTHUPANDI),

(S.PAVITHRAN)
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.

Wefeel privileged in extending our sense of gratitude to Mrs.,A.Tamil


selvi,M.Sc.,M.Phill.,DCHT., 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 oursystem adminMr.A.Jeyakumar, DEEE., DCHT., HDCA.,and Lab


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

( V.MUTHUPANDI

&

S.PAVITHRAN)
CONTENT

1. INTRODUCTION 1

1.1. Project Description 2

2.SYSTEM ANALYSIS

2.1 Existing System 3

2.2 Proposed System 3

2.3 Feasbility Study 4

3 .SYSTEM SPECIFICATION

3.1. Hardware Requirements 5

3.2. Software Requirements 5

4. SOFTWARE DESCRIPTION

4.1 Introduction to Frontend 6

4.2 Introduction to Backend 10

5. SYSTEM DESIGN

5.1 Module Description 15

5.2 Architecture 20

5.3 Data Flow Diagram 21

5.4 Database Design 23

6. SYSTEM TESTINGAND IMPLEMENTATION

6.1 Unit Testing 27

6.2 Integration Testing 27

6.3 Validation Testing 27

6.4 User Acceptance Testing 28

7. CONCLUSION & FUTURE ENHANEMENT 30

8. BIBLIOGRAPHY 32

APPENDIX

8.1 Sample Source Code 33

8.2 Screen Shots 63


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.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
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.

3
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 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

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.

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.

4
3.SYSTEM SPECIFICATION

3.1 HARDWARE REQUIREMENTS

Processor : AMD VISION PR

RAM : 2 GB

Hard Disk : 256 GB

Monitor : LG 23”

3.2. SOFTWARE REQUIREMENTS

Operating System : Window 7


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

5
4. SOFTWARE DESCRIPTION

4.1. INTRODUCTION TO FRONTEND

HTML

HTML, or Hypertext Markup Language, is the foundation of web development.


It provides the structure for web pages by using a system of tags to define elements such as
headings, paragraphs, links, images, and more. Here's a basic introduction to HTML:

Tags: HTML uses tags to mark elements within a document. Tags are enclosed in angle
brackets, such a<tagname>. For example, <p> denotes a paragraph tag.

Elements: Elements consist of an opening tag, content, and a closing tag. The
opening tag precedes the content, and the closing tag follows it. For example:

Attributes: Tags can have attributes that provide additional information about
the element. Attributes are placed within the opening tag. For example, the href attribute in the
<a> tag specifies the link's destination:

Structure: An HTML document typically begins with a <!DOCTYPE>


declaration, followed by the <html> element, which contains the entire document. The
document is divided into two main sections: the <head> section, which contains meta-
information about the document, and the <body> section, which contains the content visible to
users.

Comments: HTML allows comments to be added within the code using <!-- -->.
Comments are not displayed in the browser and are used for documentation or temporarily
disabling code.

Whitespace: Extra spaces and line breaks within the HTML code are typically
ignored by web browsers, making it easier for developers to format and organize their code for
readability.

6
CSS

CSS, or Cascading Style Sheets, is a styling language used to control the


presentation and layout of HTML documents. Here's a basic introduction to CSS:

Separation of Content and Presentation : CSS separates the content of a web


page (defined with HTML) from its presentation and styling. This separation allows for greater
flexibility and easier maintenance of web pages.

Selectors: CSS uses selectors to target HTML elements and apply styling to
them. Selectors can target elements based on their tag name, class, ID, attributes, or their
relationship with other elements.

Cascading and Specificity: CSS follows a cascading mechanism where multiple


styles can be applied to the same element, with the most specific style taking precedence.
Specificity refers to the priority given to different selectors based on their specificity level.

Inheritance: CSS properties can be inherited from parent elements to their


children. This means that a style applied to a parent element can automatically apply to its
children unless overridden.

Responsive Design: CSS enables responsive web design by allowing developers


to create styles that adapt to different screen sizes and devices, ensuring a consistent and optimal
viewing experience across various platforms.

CSS plays a crucial role in web development by enhancing the visual appeal,
usability, and accessibility of web pages. It works hand in hand with HTML and JavaScript to
create dynamic and engaging user experiences on the web.

CSS properties define the style of targeted elements, such as color, font size,
margin, padding, etc. Each property is assigned a value.

7
JAVA SCRIPT

JavaScript is a high-level, interpreted programming language primarily used for


front-end web development. It's often referred to as the "language of the web" because it allows
developers to create interactive elements on web pages. Here are some key points about
JavaScript:

Client-Side Scripting: JavaScript runs on the client side, meaning it executes in


the user's web browser rather than on the server. This allows for dynamic content and
interactivity without requiring constant communication with the server.

Versatility: JavaScript is a versatile language that can be used for a wide range
of tasks, including DOM manipulation, event handling, form validation, animations, and much
more.

Interactivity: JavaScript enables developers to create interactive elements such


as dropdown menus, slideshows, form validation, and games, enhancing user experience on
websites.

Object-Oriented: JavaScript is an object-oriented language, meaning it supports


objects, classes, and inheritance. This allows for modular and organized code, making it easier
to manage and maintain.

Asynchronous Programming: JavaScript supports asynchronous programming,


which allows certain operations (such as fetching data from a server) to occur in the background
without blocking the main execution thread. This is typically achieved using callbacks,
promises, or async/await syntax.

. Libraries and Frameworks: There are many libraries and frameworks built on
top of JavaScript, such as React, Angular, and Vue.js, which provide developers with tools and
abstractions to build complex web applications more efficiently.

Overall, JavaScript is a powerful and essential tool for web developers, enabling
them to create dynamic and interactive websites and web applications.

8
BOOTSTRAP

Bootstrap is a popular open-source front-end framework for developing


responsive and mobile-first websites and web applications. Here are some key points about
Bootstrap:

Responsive Design: Bootstrap provides a grid system and pre-designed


components that automatically adjust and adapt to different screen sizes and devices, ensuring
a consistent user experience across desktops, tablets, and smartphones.

Pre-styled Components: Bootstrap offers a collection of CSS and JavaScript


components, such as buttons, navigation bars, forms, modals, carousels, and more. These
components are customizable and can be easily integrated into projects, saving developers
time and effort.

Easy to Use: Bootstrap's documentation is comprehensive and well-organized,


making it easy for developers to get started with the framework. It also provides starter
templates and examples that developers can use as a foundation for their projects.

Customizable: While Bootstrap comes with a default theme and styling, it's
highly customizable. Developers can easily modify colors, typography, spacing, and other
aspects of the design to match their project's branding or design requirements.

Browser Compatibility: Bootstrap is designed to work across different web


browsers, including Chrome, Firefox, Safari, Edge, and Internet Explorer. It handles cross-
browser inconsistencies and ensures a consistent user experience for all users.

Overall, Bootstrap is a powerful and versatile framework that simplifies the process of building
responsive and visually appealing websites and web applications. Whether you're a beginner
or an experienced developer, Bootstrap can help streamline your development process and
produce professional-looking results.

9
4.2 INTRODUTION TO BACKEND

PHP (Hypertext Preprocessor)

PHP (Hypertext Preprocessor) is a server-side scripting language primarily used


for web development. Here are some key points about PHP:

Server-Side Scripting: PHP code is executed on the server, generating HTML


content that is then sent to the client's web browser. This allows for dynamic content
generation, database interactions, and other server-side tasks.

Embeddable in HTML: PHP code can be embedded directly into HTML files,
making it easy to mix dynamic content with static HTML markup. PHP code is enclosed within
<?php ?> tags.

Database Integration: PHP has built-in support for interacting with databases,
making it easy to perform tasks such as querying databases, inserting or updating data, and
handling database connections. Popular database systems like MySQL, PostgreSQL, and SQLite
are commonly used with PHP.

Wide Adoption: PHP is one of the most widely used server-side scripting
languages, powering millions of websites and web applications worldwide. It is supported by
most web hosting providers and is compatible with various web servers, including Apache and
Nginx.

Open Source: PHP is an open-source language, meaning its source code is freely
available and can be modified and redistributed by anyone. This has led to a large and active
community of developers who contribute to its development, provide support, and create
libraries and frameworks built on top of PHP.

Platform Independence: PHP is platform-independent, meaning it can run on


various operating systems, including Windows, Linux, macOS, and others. This makes it a
versatile choice for web development projects

10
RDBMS

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 Each record is made up
of a number of fields. No two fields in a record can have the same field name.

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.

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.

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

11
enables you to define relationships between the table and enables you to define relationships
between the tables.

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.

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.

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

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

12
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.

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.

13
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

14
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.

15
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 administrator as full

16
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 download it. In addition, the system

17
strictly restricts users to attend examinations multiple times.Last but not least, a clean and simple
dashboard is presented with various color combinations for greater user experience while using
this Online Exam Management System Project in PHP MySQL CodeIgniter. For its UI elements,
a free open-source CSS framework; Bootstrap is on board with some Vanilla CSS too.
Presenting a new Online Exam System Project in PHP MySQL which includes an admin panel
that contains all the essential features to follow up, and a knowledgeable resource for learning
purposes.

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

18
 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 detailsAbout 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

19
5.2 Architectural Design

20
5.3 Data Flow Diagram

21
User case

22
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.

A) Student details:

FIELD DATATYPE COSTRAINT

Id Int (10) Not null

Std name Char (20) Not null

Nim Int (10) Primary key

Email id Varchar Not null

Class id Varchar Not null

23
B) Teacher details:

FIELD DATATYPE COSTRAINT

Id Int (10) Not null

lect name Char (20) Not null

Nip Int (10) Primary key

Email id Varchar Not null

Course id Varchar Not null

C)course:

FIELD DATATYPE COSTRAINT

Course id Int (10) Not null

course name Char (20) Not null

D) class:

FIELD DATATYPE COSTRAINT

class id Int (10) Not null

class name Char (20) Not null

24
E) Test

FIELD DATA TYPE CONSTRAINT

Id Int (3) Not null

Lect id Int (10) Not null

Course id Int (10) Not null

Test name Varchar Not null

No of question Int (4) Not null

Time Time Not null

Type Varchar Not null

Start date Date Not null

Token Varchar Primary key

25
6. SYSTEM TESTING AND IMPLEMENTATION

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.

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.

26
6.1 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.

6.2 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.

6.3 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.

27
6.4 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.

SYSTEM IMPLEMENTATION

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

28
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.

29
7. CONLUSION & FEATURE ENHANCMENT

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.

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..

30
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.

8. 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

31
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

https://dotnet.microsoft.com/

https://procodeguide.com/

https://www.sensibledev.com/

https://www.c-sharpcorner.com

APPENDIX

8.1 SAMPLE SOURCE CODE

<?php

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

classDashboard_model extends CI_Model {

public function total($table)

32
$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();

33
return $query;

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

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

classSettings_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) {

34
$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');

classMaster_model extends CI_Model

public function __construct()

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


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

35
}

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)

36
{

$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');

37
$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;

38
}

/**

* 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');

39
$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');

40
$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();

41
/**

* 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

*/

42
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;

43
}

/**

* Data KelasDosen

*/

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]);

44
}

$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');

45
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 JurusanMatkul

*/

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');

46
$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);

47
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');

classSoal_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');

48
$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');

classUjian_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();

49
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();

50
}

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);

51
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);

52
$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)

53
$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";

54
$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

55
2. ADMIN DASHBOARD

3. LECTURER DASHBOARD

56
ADD LECTURER

3. STUDENT

57
ADD STUDENT

4. CREATE QUESTION

58
59

You might also like