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 by second-year IT students for their college projects. It has a number of features that will allow users to manage all the records within the school. 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 MySQL Project

In particular, this Web-based School Management System project in PHP CodeIgniter focuses mainly on keeping detailed track of the school’s records. To be more precise, the system helps to keep track of the students, teachers, parents, and more with their respective information and so on( Also, the system contains all the classroom management side of things. In addition, the system allows for examination, routine, subjects, and more. Evidently, this project contains an admin panel with a student, teacher, and parent. In an overview of this web application, a parent’s account has a primary role and control over the system. He/she can view students’ and teachers’ detail. With it, the user can view classroom details and announcements. Also, the users can compose and send mail to other users within the system. Besides, the user can update his/her profile.

Admin Panel

An administrator has full control over the system. He/she can manage all the users, classroom, subjects, accounting sections, and so on. Here, each and every section has its own respective details such as name, image, and other important details. The very first thing of management for the administrator side is to set up classrooms and sections. And with it(, the administrator also has to manage students’ admission, with teachers’ and parents’ detail. In order to add a student, the user has to provide a number of the required information. It includes the naming details of students with email, dob, contact details, class and section selection, roll number, and image. The same procedure applies to the rest of the accounts. After submission, the system automatically generates a password which is available inside the user log.

Classroom Management and Assigning Teachers

As soon as the administrator inserts the teacher’s record into the system, the user can assign him/her as a class teacher and section teacher. Particularly in this section, the system contains some important validations too as the system restricts using the same teacher for every class. With respect to this project’s working structure, it is a must to assign teachers under classrooms and sections ( In terms of classroom management, the admin can add classes in both numeric and alphabetical formats. With it, the administrator can make changes to any of the available ones. Each and every classroom and section holds a maximum number of students under the records. The users can view a list of student’s detail from each classroom’s available section. Also, the teachers can make some changes under this section.

Study Materials and Student Attendance

When it comes to projects such as school management systems, the user should also be able to upload study materials for their students. And there is one. The user has to provide some text details, select the available subject, and upload the attachment. As a result, the students can view these study materials under their classroom feeds. With it, the user can also download the materials( In fact, the system also keeps a record of the total number of downloads. Additionally, the system contains an important feature; an attendance system that helps to figure out the total number of present students from each class. In order to set a student’s attendance, the user has to click on the radio box and submit the form. The attendance can only be taken once in 24 hours time. Also, this feature is only available for administrators.

Examination Management and Syllabus

Talking about the examination section, an admin can add a list of exams by providing their names of them. Afterwards, the available examinations are required in order to filter students for providing examination marks. In order to insert exam marks, the user has to select the class, exam, and subject. In return, the system displays all the names of the student associated with the class and subjects( Here, the system user can insert marks according. Once the marks have been submitted, they cannot be updated later. So, the user has to fill up marks and attendance very carefully. Besides, the administrator can teacher’s user level can upload the syllabus of each available subject. For this, the user has to select class, and subject and add an attachment. Also, these are totally downloadable from the student’s side just as mentioned earlier.

Examination Routine and Results

Moreover, both of these are one of the basic features of this web-based school management system. It allows the user to upload exam routines by selecting exam and image files to it. As a result, other users can view their examination routine anytime from this section, and also he/she can download the routine. This makes things much easier for the system users of this school management system as it tracks each and every side. On the other side, all of the user levels can view exam results. For listing out exam results, the user just has to select class, exam, and subject( With it, the system lists out mark sheets containing all the students’ names with their obtained marks respectively. In fact, the system highlights the failed student’s marks. In short, the system helps to display the number of passed and failed students in a much easier way.

Accounting, Library

On one hand, there are two subject matters under the accounting section. They are fee management and payments. Fee management simply refers to setting up the terms for fees such as monthly, admission fees. In addition to it, the system also allows providing fees amount with fees terms. It’s clear that each and every fee term hold an amount that is directly tied to the payment section. As the system charges accordingly. And in order to make a fee payment, the user has to select a class with the name of the student( The system then lists out the fee status of the requested one where the user can mark students as paid under each month. Only the administrator can view the total collected fees from his/her dashboard. Moving towards the library section, contains records of library books with respect to their author and publication names.

Announcement and Messages

On the other hand, the system allows administrators to make announcements within the system. In fact, this whole announcement process works like a noticeboard under the system. Just like the regular notice boards, it also contains a simple heading with a text body describing the announcement. This section is totally viewable from all user levels. Moving towards the last feature of this system; sending and receiving messages. This feature does not mean online chatting like social media, but rather follows the working methods of emails. The users can compose emails to anyone within the system( For this, the user has to select any of the users and write mail subject and messages. Also, the system indicates users upon receiving mails in the inbox using counters in the navigation bar. In addition to it, this feature also follows the concept of read and unread messages.

The system displays the overview of various sections and displays them under the user’s dashboard. That also varies according to the user level. Last but not least, a clean and simple dashboard is presented with various color combinations for a greater user experience while using this 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 too contains all the essential features to follow up and is a knowledgeable resource for learning purposes.

Available Features:
  • Admin Panel
  • Student Panel
  • Teacher Panel
  • Parents Panel
  • Classroom Management
  • Student Management
  • Teacher Management
  • Classroom Sections
  • Assign Class Teachers
  • Assign Subjects
  • Syllabus Management
  • Download Syllabus
  • Manage Study Materials
  • Student Attendance Management
  • Download Study Materials
  • Manage Exams
  • Insert Examination Marks
  • Exam Routine and Results
  • Set up Fees Term
  • Fee Payment
  • Library Book Details
  • Noticeboard
  • Compose and Receive Messages
  • School’s Session
  • Login Attempt Validations
Project Name:School Management System PHP
Language/s Used:PHP with CodeIgniter Web Framework
PHP version (Recommended):5.6
Type:Web Application
Developers:Ronash, Bikash, Dipendra, Sumit
School Management System PHP MySQL 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 the 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 the URL “http://localhost/[ PROJECT_FOLDER_NAME ]/“
  • All the login details are provided inside the project folder, check that out and enter them 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 (more 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 Project in PHP Source Code – So, this school management 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. please help after running the program I am getting this Error as follow:
    Deprecated: Optional parameter $level declared before required parameter $message is implicitly treated as a required parameter in C:\xampp\htdocs\SMS-CIRA\os\core\Common.php on line 348
    SMS Debug ===> Error Encountered!
    Severity: 8192

    Message: Return type of Illuminate\Container\Container::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

    Filename: container/Container.php….

    1. This looks like an error due to your LATEST version of PHP.
      This project works and requires PHP 5.6 [as mentioned in the project overview and text files]

      1. Why not use the latest version or an early version of PHP? I do not understand the reason why you are still using PHP 5.6

  2. So i uploaded this on a live server and got alot of errors is there a way i can fix them. For educational purposes of even the admin the login details remain unchanged.

  3. please help
    After running the program I am getting this Error as follow:
    The Encrypt library requires the Mcrypt extension.

    1. Looks like you did not pay attention to the project overview table or the given text files. There we’ve mentioned that the project requires PHP 5.6 in order to work. The issue that you’re facing currently is due to your latest version of PHP.

    1. It looks like you haven’t checked the project overview table or the text file. There we’ve clearly mentioned that this project requires PHP 5.6 in order to work. You’ve got the latest version of PHP so you’re facing such issues while running the project.

  4. Dear admin. I have an openserver. I have unziped the file in openserver/domains/sms-ci. Created the database and imported the sql file. when i eneter the site i get the error DNS_PROBE_FINISHED_NXDOMAIN. I can not enter the site where i could enter the login and password of admin. Pls help.

      1. i did not do it for live productions. As I said I am not using XAMP. I am using Openserver, so that the files are not extracted to htdocs – this is for XAMP, the files are extracted to openserver/domains/ – this is for Openserver. So when I try to enter with googlechrome by entering the url like this – sms-ci/ – this for openserver (and for XAMP – http://localhost/sms-ci/) I get an error. How can I fix it?

  5. Admin please review the source code you sent. Because I have inspected the folder and realized that there are no php files to run except index.php which seems to me a documentation. Thanks and hoping to hear from you.

    1. It would have been better if you had done some research regarding file structures in CodeIgniter projects. Unlike PHP, CodeIgniter follows MVC Pattern.
      That’s the reason you’re unable to view the file in the first place. There are all those required files, but not in the root folder!

  6. Unable to connect to your database server using the provided settings.

    Filename: C:\xampp\htdocs\SMS-CI\os\database\DB_driver.php

    Line Number: 125
    with black screen

  7. its like the htdoc folder have been removed from the link in description so how do i get this entire process done? it seems impossible!

  8. Need some help, after creating a database and uploading the file, this error occurred
    Unable to connect to your database server using the provided settings.

    Filename: C:\xampp\htdocs\SMS-CI\os\database\DB_driver.php

    Line Number: 125

    1. The LOGIN DETAILS ARE CORRECT. The only problem is due to your LATEST version of PHP. This project requires PHP 5 [as mentioned in the project overview table and text files]. For the rest, the system won’t operate!

  9. School Management System (An Error Was Encountered)
    The action you have requested is not allowed.

    after login and password

    why this error?
    on next page

    1. Do not change the name of the project folder without configuring it. And also, this project requires PHP 5 [as mentioned in the project overview table and text files]

  10. Unable to connect to your database server using the provided settings.

    Filename: core/Loader.php

    Line Number: 349

    A Database Error Occurred | SMS | NBPI | APRS

    How to solve this sir. please reply.

  11. please help me to understand this meaning to run the code **After user registration you need to change the status of ‘banned’ column from 1 to 0 as a part of verification from the database**
    as i m not understanding .

    1. After user registration, check the users‘ table from the database. You’ll see your registered user’s details and there change the status of the ‘banned‘ column from 1 to 0.

  12. hi i tried to use it but it says Deprecated: Optional parameter $level declared before required parameter $message is implicitly treated as a required parameter in C:\xampp\htdocs\smsci\os\core\Common.php on line 348 what do I do

  13. Sir i got this Error and i am using PHP 5.6 but still get the problem could you plz help me out from this

    Unable to connect to your database server using the provided settings.

    Filename: C:……………….

  14. I got this error while i am running the program ( ! ) Fatal error: Uncaught TypeError: filter_var(): Argument #3 ($options) must be of type array|int, string given in C:\wamp64……………

  15. Sorrry, could you help me with this step?:

    After setting up all these, go to the URL “http://localhost/[ PROJECT_FOLDER_NAME ]/“

  16. please help after running the program I am getting this Error

    Deprecated: Required parameter $message follows optional parameter $level in C:\xamp…………………..

    Line Number: 783

  17. The requested URL was not found on this server.

    Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4 Server at localhost Port 80

  18. hiii,
    May i know the how to change student or parent password? What does mean Recent Password ? how to find it? without Recent Password, i cant change the password.

  19. I use this code on live server. I changed php version 7.3 to 5.6. then show HTTP ERROR 500. What should I do?

  20. Hey, The code works fine but as you have wrote that this system also contains Student attendance system but there is no attendance system in the project? Am I missing something or the system does not contain attendance functionality? Please Reply!

  21. Deprecated: Optional parameter $level declared before required parameter $message is implicitly treated as a required parameter in C:\xampp\htdocs\SMS-CI\os\core\Common.php on line 348
    SMS Debug ===> Error Encountered!
    Severity: 8192

    Message: Creation of dynamic property CI_URI::$config is deprecated
    this error appear any solution

  22. The password provided for each teacher and student are in encoded form. where can i find their password??

  23. Greetings, the system is working fine, congratulations. But there is a small security hole somewhere. If you provide a contact address, I can forward it to you.

  24. Hi thank for the efforts applied and generosity shown for sharing you source code. I’m finding it difficult to login using the login credential you provided.

  25. Hey, How do i open /localhost/phpmyadmin with 5.6 verion of php when i try to do this it says:

    Warning: Unsupported declare ‘strict_types’ in C:\xampp\phpMyAdmin\index.php on line 3
    PHP 7.2.5+ is required.

    Currently installed version is: 5.6.3

    Please help me

  26. Hi how are you? i am interested in this software, do you it fine tunned, is so pleae lets schedule a meeting to discuss business.
    my email is: **************

  27. How can to solve this error while trying to open school site…
    The Encrypt library requires the Mcrypt extension.

  28. Sorry to disturb but could you please be more specific about the php version 5.6 , I still get this”Deprecated: Optional parameter $level declared before required parameter $message is implicitly treated as a required parameter in C:\xampp\htdocs\SMS-CI\os\core\Common.php on line 34″ even thou i installed version 5.6.00 and 5.6.14

  29. Hi Codeastro Team,

    Im trying to create a new user, like student, teacher or parent but it doesn’t happen, I do not Know why. The one thing I can do is to make login only with Username and password you give in the project.
    I wondering if you can help me with this problem.

      1. When I create new users, the process doesn’t complete, and there’s no confirmation of success in creating the new user. Nevertheless, when I go to the list of users, be it teachers, parents, or students, I can see them in the list. However, I cannot access the passwords of the users I’ve created to log in.

        From now, I thanks for your help, Thank youuuuuuuuu CODEASTRO TEAM

  30. After typing http://localhost/SMS-CI on the browser, this was the response:
    Warning: require(C:\xampp\htdocs\SMS-CI\vendor\composer/../paragonie/random_compat/lib/random.php): Failed to open stream: No such file or directory in C…………………………

    please what can i do?

  31. I found the ERROR which is given below

    Deprecated: Required parameter $message follows optional parameter $level in D:\xmapp\htdocs\SMS-CI\os\core\Common.php on line 348
    SMS Debug ===> Error Encountered!
    Severity: 8192

    Message: Required parameter $full_name follows optional parameter $name

    Filename: libraries……………………………………….

    1. The errors you’re facing in this PHP CodeIgniter project might be due to your latest version of PHP. This project requires PHP 5 (as mentioned in the project overview table and text files)

  32. I’m trying to open the student and teacher panel but there is an issue.
    Everytime it says wrong details please guide

  33. I’m trying to add teacher, parent, student to click add button then it shows sand timer loading to the long time. But it’s not adding.

  34. I can’t add a new teacher the loader just keep loading and when I try to debug the error it giving me in the console is that “Unexpected token ‘<', " “… is not valid JSON

    I would be happy if you could give me a quick response to this

Leave a Reply

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