Online Examination System in PHP CodeIgniter with Source Code

A fully functional project based on Online Examination System which uses PHP Language with CodeIgniter Web Framework. Following PHP CodeIgniter project contains all the essential features which can be in use for the final-year IT students for their college projects. It has a number of features that will allow users to manage and attend online examinations. This system as well as the web application’s concept is all clear. It’s the same as real-life scenarios and well-implemented on it. To download free online exam system project in PHP MySQL CodeIgniter Framework with source code files, please scroll down to the bottom of this post for the Download button.

About Online Examination System PHP MySQL Project

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 has full control over the system. He/she can manage users, classes, departments, courses, question sets, and their relations. Here, each and every section has its 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.

Teacher’s Panel

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.

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

Student’s Panel

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

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)
Project Name:Online Examination System PHP
Language/s Used:PHP with CodeIgniter Web Framework
PHP version (Recommended):7.4
Type:Web Application
Developer:Muhammad Ghifari Arfananda
Online Exam System PHP Project Overview

Instructions: How to Run?

  • After you finish downloading the project, unzip the project file and head over to your XAMPP directory.
  • There you’ll find a folder naming “htdocs”.
  • Inside the “htdocs” folder, paste the project folder (not the .zip one, but the extracted one).
  • Open your favorite browser; we recommend using Google Chrome or Mozilla Firefox.
  • Then, go to URL “http://localhost/phpmyadmin“.
  • Create a Database with a name that is provided inside the “01 LOGIN DETAILS & PROJECT INFO.txt”.
  • Click on the “Import” tab and choose the database file (.sql) which is provided under the folder naming “DATABASE FILE”.
  • After setting up all these, go to URL “http://localhost/[ PROJECT_FOLDER_NAME ]/“
  • All the login details are provided inside the project folder, check that out and enter in order to use it.

And there you have it, a full setup of the Online Examination System project in PHP CodeIgniter. For this particular PHP project, PHP Version 7.4 or Newer is required because the project does not operate with the oldest PHP version. So, users with the oldest PHP version (older than 7) might face various problems while operating it. As a result, you’ll need to manage your PHP version (only if you’re using the old version) at the moment. Also, Download Free Online Exam System Project in PHP MySQL CodeIgniter Source Code. So, this online examination system PHP project is a fully functional project for all the intermediate levels that broads vast knowledge into such PHP web applications. In conclusion, this whole PHP project with free source code is an absolute project and a meaningful way for the users to learn and explore more about it.

Free Download Online Examination System Project in PHP MySQL CodeIgniter with Source Code:
Click the Download Button Below to Start Downloading

Note: Only for Educational Purpose


  1. project is not workng and while executing the project errors coming and also done corrections and project not working

    1. Please mention your issue in brief! Before that, make sure of these mentioned factors that might be responsible for your issues regarding this project. Db connection, changes in project folder name without configuring, lower PHP version than the recommended one

      1. Hello Please i need help regarding Employee Management System, Am having Php Error Encounter whenever i try to open it in my browser, php version is 8. please i need help urgently

  2. I wonder why the start button is not appearing in the exam in Student? and it just keep on refreshing. Help me please.

      1. This is how I set the time in Lecturer -> Exam Data, but still start button is not appearing in the Student -> Take Exam and the page just keeps on refreshing.

        Start Date
        2022-01-29 13:25:00
        Completion Date
        2022-01-30 13:22:00

          1. I still can’t figure out how to set exam time :((( same problem

            Start Date
            2022-01-31 12:43:00
            Completion Date
            2022-01-30 12:58:00

          2. How come the examination starts a day after, but ends before that? (acc. to your set time) Watch the full video, there we’ve set the time, and try managing with it accordingly!

  3. Just a typo error, I corrected it after, maybe you didn’t read it.

    Start Date
    2022-01-31 12:43:00
    Completion Date
    2022-01-31 12:58:00 (it was set to this)

  4. hi, while login it shows the following error in the console
    Failed to load resource: the server responded with a status of 404 (Not Found) /onlineExaminationCI/auth/cek_login:1

      1. These are my db configurations
        $db[‘default’] = array(
        ‘dsn’ => ”,
        ‘hostname’ => ‘localhost’,
        ‘username’ => ‘root’,
        ‘password’ => ”,
        ‘database’ => ‘onlinexaminationci’,

        created db with same name and username root and password blank

  5. Is it possible to upload this system online? I have tried it and get multiply error mssg about insecure bootstrap (HTTP it need HTTPS) Any way to solve it?

  6. Web page was great.
    but encountered an error. kindly if you can detect the error and plz suggest me a solution.

    Parse error: syntax error, unexpected ‘list’ (T_LIST), expecting identifier (T_STRING) in C:\xampp\htdocs\OnlineExaminationCI\application\controllers\Ujian.php on line 211

    A PHP Error was encountered
    Severity: Parsing Error

    Message: syntax error, unexpected ‘list’ (T_LIST), expecting identifier (T_STRING)

    Filename: controllers/Ujian.php

    Line Number: 21

        1. After creating Lecturer’s account, click on view records and there you’ll see the “Active” blue button. Simply click on that and that’ll create the account for you. The login details will be displayed on the success message dialog box. And the same goes for Student’s section. For more details: Please check out the demo video carefully, you’ll know everything.

  7. Anyone willing to share their solutions on the continuous refreshing in the exams page after the time reached ZERO? I tried everything but to no avail.

  8. Soal tidak cukup, anda hanya punya 0 soal

    this is the warning when i create a new exam, while entering number of questions

  9. please help me to change it to english language when i open the code on visual studio are files are showing diff language kindly help me in it

  10. Hi sir, I executed your project. That is good working in one system. What about in second and third computers (I mean in LAN).
    I have 3 systems in my school. To conduct exams to the students.i what to use your project. Please help out here.

    I have systems with the Below IP addresses

    1st system – 192———– ( project is available in this xampp->htdocs>project

    2nd system – ————–
    3rd system – ————–

    While accessing in these(2nd,3rd system’s with 192———–/project

    I am not getting full project view, I mean css and images and look also not visible

    Guide me how to access your project from one system to another


    Php 7.4.8
    I have

    1. Not sure about this, but might be due to your LATEST PHP version. This project was only tested with PHP 5.6 and 7 where it works fine as shown in the video.

  11. No if you check the video when you set the time to be 15 min it countdown strating from hour and half
    Thanks in advance
    And I really want a solution for this

  12. I am getting below issue:
    warning: require_once(c:\xampp\htdocs\online examination\system\core/codeigniter.php): failed to open stream: No such file or directory in C:\xampp\htdocs\OnlineExaminationCI\index.php on line 315
    Fatal error: require_once(): Failed opening required…………………… on line 315

  13. I have not changed the name of the project folder:
    Warning: require_once(C:\xampp\htdocs\OnlineExaminationCI\system\core/CodeIgniter.php): failed to open stream: No such file or directory in C:\xampp\htdocs……………….

    1. Hi ser,
      Thank you very much for your quick answer.
      I downloaded the project, and extracted the project.
      I put the extracted project file inside the “htdocs” folder.
      on “http://localhost/phpmyadmin“. I created the DB with name “onlinexaminationci”.
      I downloaded “tcpdf” and placed it under the directory “\application\libraries” with the name “tcpdf”.
      I Imported the database file (onlinexaminationci.sql) which is provided under the folder naming “DATABASE FILE”.
      then I tried to run the project via localhost “http://localhost/OnlineExaminationCI/“.
      then I received the error message above.
      Best Regards

  14. An uncaught Exception was encountered
    Type: mysqli_sql_exception

    Message: Unknown database ‘onlinexaminationci’

    Filename: C…………………………….

    Line Number: 201



    help me with this please

    1. Ohh come on…. it literally says “Unknown database ‘onlinexaminationci’”
      Meaning you’ve not created any db naming “onlinexaminationci” and imported the given db file!!

  15. hello! great project. i cant login as a student; everytime it says wrong password; i am entering everything properly. please help

  16. A PHP Error was encountered
    Severity: 8192

    Message: Return type of CI_Session_files_driver::open($ save_path, $n ame) should either be compatible with SessionHandlerInterface::open(string $ path, string $name): bool, or the #[\ ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

    Filename: ……………………………
    Line: 315
    Function: require_once

    please help why getting these eerrors

    1. This looks like an error coming from your LATEST version of PHP. This particular project is tested only with PHP 7.4, so the latest PHP 8 might create these problems. Still, you can find related solutions for these problems online!

  17. A PHP Error was encountered

    Severity: 8192

    Message: Return type of CI_Session_files_ driver:: open($save_ path, $name) should either be compatible with SessionHandlerInterface::open(string $ path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

    Filename: drivers……………………..

    1. This looks like an error coming from your LATEST version of PHP. This particular project is tested only with PHP 7.4, so the latest PHP 8 might create these problems. Still, you can find related solutions for these problems online!

  18. dear sir, all tests are being executed fo default 1 hour 30 minutes….is it hard coded somewhere…also pls tell how mail functionality will work. pls we are using this for just deminstration purpose not for production

    1. Regarding mail functionality, google has now removed the “Less Secure App” feature while integrating it with the Gmail SMTP server. Rest, this is all we’ve got from the developers!

    1. [PROJECT_FOLDER_NAME] is where you have to enter the name of the project folder. And not just copy-paste the same dummy link to the URL in order to run the project!

Leave a Reply

Your email address will not be published. Required fields are marked *