School Management System in PHP CodeIgniter with Source Code

A fully functional project based on School Management 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 every school-related record. 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 School Management system project in PHP MySQL with source code files, please scroll down to the bottom of this post for the Download button.

About School Management System PHP Project

In particular, this Online School Management System project in PHP CodeIgniter focuses mainly on keeping track of the student activities. To be more precise, the system helps to keep track of teachers, classes, students, fees payment, and so on. Also, the system contains all the class schedules and subjects. In addition, the system allows managing students’ parents, attendance, system setting, and more. Evidently, this project contains an admin panel with student, teacher, and parents panel as well. In an overview of this web application, parents have a minor role and control over the system. He/she can view their respective child’s attendance, markings, subjects, and class schedules. In short, a parent’s account can only view certain records, but cannot make changes to them.

Administrator Panel

An administrator has full control over the system. He/she can manage examinations, grades, daily attendance, and so on. Here, each and every section has its own respective details such as name and other important details. Here, an admin has the right to the management of students, teachers, parents, subjects, class schedules. Additionally, the admin can manage each student’s grade, classes, section, subjects, fees payments. To be more precise, the administrator plays an important role in maintaining the whole system. In fact, the admin has access to everything within the system. Also, the system contains academic sessions, an accounting section, an examination section, and much more advanced features.

Class, Subject and Routine

Talking about some of the important factors of this school management system which is related to classes and schedules. Here, each of the class, sections has its own name, a numeric name with a short description. In fact, the administrator has to assign a class teacher to each class section. In addition to it, the system also allows the management of class routines. For this, the admin has to a class, day and provide starting and ending times. With it, the users can easily fetch out all the available class routines according to their classes and weekdays. To be more precise, the system manages each routine on basis of class subjects as the user has to select subjects too.

Attendance, Examination, Marksheets

Moreover, an administrator has the right to manage daily attendance. For this, the user has to select available classes, sections with dates. In return, the system lists out all the enrolled students under the selected classes and sections. With it, here comes an interesting feature that purely focuses on the school examination. This examination management section allows the user to manage examination terms with their respective names. Besides, the administrator can manage the markings of each student individually under each available subject. In fact, the administrator has to enter obtained marks with a short comment to it. With all these, the system calculates and generates mark sheets for each student. As a result, the mark sheet contains names of students with their subject, marks, total score with a GPA.

Fees Payment and Invoice

When it comes to a school management system project, there should also be some attachment of fees with it. And here, this school management system allows collecting fees and maintaining the records of each payment detail. For this, the user simply has to select the name of the student, enter payment name, amount, and select payment mode with status. With all these, the system lists out all the available payment details with each status whether it’s paid or unpaid. In fact, the administrator can generate an invoice for each payment detail and print it out. The invoice consists of details such as student name, payment mode, name, amount, status with generated date and time.

Messages, Noticeboard and Others

On one hand, this system also contains message features that allow users to message each other within the system. For this, the user has to select any of the available users, enter a message and just send it. Additionally, this messaging section contains seen and unseen message features too. In short, this simple portion helps the user to identify unseen messages from the message list. In terms of notices, the administrator can make an announcement from the noticeboard section in order to convey messages, notices, and so on. Besides, there are still more features to it such as dormitory management, books management, and general settings.

Teacher and Student Panel

On the other hand, both account level has almost similar features as mentioned above. The only fact that differentiates them from the administrator and parent panel is that teachers can still make changes to certain sections. Whereas, the student can only view their respective classes, subjects, attendance, class schedules, payment details, and so on. The teacher’s account indeed plays a vital role in maintaining the system as there are various sections where the teacher account can act as administrator. Besides all, the teacher has all the access for the management side of students, parents, attendance, markings, notices, and more.

Last but not least, a clean and simple dashboard is presented with various color combinations for greater user experience while using this Online School 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 School Management 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:
  • Admin Panel
  • Teacher Panel
  • Student Panel
  • Parents Panel
  • Academic Sessions
  • Class and Section Management
  • Subject, Class Routine Management
  • Student Management
  • Teacher Management
  • Parents Management
  • Daily Attendance Management
  • Examination Management
  • Student Grading System
  • View Student’s Mark Sheet
  • Fees Payment and Invoice
  • Print Invoice
  • Accounting Section
  • Library Books Management
  • Dormitory Management
  • Transportation Details
  • Manage Noticeboard
  • Message System
  • General Settings
Project Name:School Management System
Language/s Used:PHP with CodeIgniter Web Framework
PHP version (Recommended):5.6
Type:Web Application
Developer:Riadul Islam, TMSS ICT
Online School Management 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 School Management System Project in PHP MySQL. For this particular PHP project, PHP Version 5.6 is required because the project does not operate with the latest PHP version. So, users with the latest PHP version (greater than 5.6) might face various problems while operating it. As a result, you’ll need to manage your PHP version (only if you’re using the latest version) at the moment. Also, Download Free School Management System Project in PHP MySQL CodeIgniter Source Code. So, this online school 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 School Management System Project in PHP MySQL CodeIgniter with Source Code:
Click the Download Button Below to Start Downloading

Note: Only for Educational Purpose


    1. ONLY WORKS WITH PHP 5.6 (as mentioned in the project overview table and the text file) If the login does not work even after configuring the database, then it’s due to your latest PHP version!

        1. The given login details are all correct. This project ONLY WORKS WITH PHP 5.6 (as mentioned in the project overview table and the text file) If the login does not work even after configuring the database, then it’s due to your latest PHP version!

          1. it says “you dont have permission to access this resource”
            Apache /2.4.53(win64)Open SSL/1.1n PHP/8.1.4 Server at localhost Port 80.
            Please any help?

        1. Frontend is basically all the visual aspects that are seen and experienced by end-users. And in terms of the backend, it’s everything that happens in the background.

  1. J’ai utilisé vos informations de connexion mais je n’arrive pas à me connecter.. pourtant j’utilise les versions requises de PHP et Mysql

    1. At first, this project requires PHP 5.6 (as mentioned in the project overview table), and regarding login details make sure you’ve entered the given password correctly [“P” is capital]

        1. That’s because you probably have the LATEST PHP version installed. This particular project requires PHP 5.6 in order to work (as mentioned in the project overview table and text files)

          1. It would be a better project if it was not limited to a particular PHP version


  2. Can you please explain me what is “acd_history” in the database used for? Please, I really need to understand all the tables from the database.

  3. I installed the template and it works fine but I want to change the names to Spanish and it doesn’t work when I change the language and put all the translations. Plus I want to delete some stuff I don’t need. Does this mean I must change the backend in MySQL or the Frontend in PHP? Please help me I don’t want to break the code.

      1. I have the same problem. I can´t change the language. Could you please explain how to do this?

        thank you and best regards

  4. Unable to take students attendance, update mark sheet and even add new teacher. Each time I do that, I get an error 1364…

          1. The error says
            Error Number: 1364
            Field ‘comment’ doesn’t have a default value.
            INSERT INTO ‘mark'(‘exam_id’,’class_id’, ‘subject_id’,’student_id’)VALUES(‘1′,’2′,’3′,’1’)
            Filename: marks.php
            Line Number: 112

    1. Sorry, what? You mean while you’re trying to access the localhost it asks for username and password? If that’s the case then you should’ve your own server details. That is not related to the given source code.

  5. I’m having a problem we’re after setting up everything cannot get to log in I don’t know if I was supposed to change anything in the configurations but here is the website you can see when you log in it loads and then go back to the login page…..

    1. LOGIN DETAILS are all correct. The only problem is with your latest version of PHP.
      Looks like you haven’t checked the project overview table or the text files. It says this project requires PHP 5.6 in order to work!

  6. code dosen’t work man….!
    Fatal error: Uncaught TypeError: filter_var(): Argument #3 ($options) must be of type array|int, string given in E:…………………………..
    those are some of the errors PHP Version i have 8.1

      1. i change the currency $ into ₱ in general settings but didn’t change the currency in payment and invoice, please help me how to change or remove the $ sign. thanks

          1. It might be hard for beginners. Simply, open the project using any text editor. Go through each code file and look for the existing currency and replace it with your own.

          2. Please help me to find what im going to edit what is the file name or any details, that is my only problem the currency $ to ₱ ,thanks a lot and more power.

        1. Simply check the PHP file name from the URL [on certain pages that require changes]. And head over to that particular PHP file, find the existing currency and replace it with your own!

  7. Hi when I went to the http://localhost/%5B PROJECT_FOLDER_NAME ]/ it says that
    The requested URL was not found on this server.

    Apache/2.4.54 (Win64) OpenSSL/1.1.1p PHP/8.1.12 Server at localhost Port 80
    why is that

    1. When I type the file name it says
      This page isn’t working
      localhost is currently unable to handle this request.
      HTTP ERROR 500

      1. I did it but still didn’t work
        it says
        This page isn’t working
        localhost is currently unable to handle this request.
        HTTP ERROR 500

  8. hello i have problem which state that i try to unzip folder but they ask me the password of zip folder can i get it pleasure

  9. This is the error I get.
    Unable to connect to your database server using the provided settings.

    Filename: core/CodeIgniter.php

    Line Number: 500

  10. I;m using appache Ampps which makes use of username (root) and a password, how do I make those effect to enable my code to run

  11. Warning

    Message: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.

    Filename: libraries/Calendar.php

    Line Number: 103

    1. Open the file and look for the line that says date_default_timezone_set(‘UTC’);. Replace ‘UTC’ with your desired timezone, such as ‘America/New_York’. If the line doesn’t exist, you can add it after the $system_path variable definition.

  12. It’s just refreshing, it’s not logging in, and when I use wrong log in details, it’ll say it’s wrong but if it’s right, it’ll just refresh the page and not log in

Leave a Reply

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