School Management and Accounting Software

Build Status Linux Code Climate Latest release shield Join the chat at

We like to challenge the quality of what we build to make it better. To do so, we try to make the product intuitive, beautiful, and user friendly. Innovation and hard work help to fulfill these requirements. I believe in order to innovate we need to think differently. A few months ago I discovered there was no open source free school management software that met my quality standards. I happen to know a bit of programming so I decided to make one. I also believe that working with more people can push the standard higher than working alone. So I decided to make it open source and free.

Screenshot_2019-04-07 Laravel News See the news here

Framework used

Server Requirements

Table of Contents


Unifiedtransform is 100% open source and free forever!!

Community contribution can make this product better!! See Contribution guideline before making any Pull request.

When you contribute to a Github project you agree with this terms of Github Terms of Service(Contributions Under Repository License).

Since this project is under GNU General Public License v3.0, according to Github’s Terms of Service all your contributions are also under the same license terms. Thus you permit the user of this software to use your contribution under the terms of GNU General Public License v3.0.

Contributors Hall of Fame



GNU General Public License v3.0

Whats New


This software has following features:

Feature Description
Roles Master, Admin, Teacher, Student, Librarian, Accountant.
  (You can Impersonate User Roles in Development environment) See how Impersonation works. Cool !!
Certificate Now you can upload certificate to a student using student code.
Payment Stripe is used. See configuration below.
  Students can pay from their accounts.
  Student can view payment receipts (history)
  View Screenshot below
Attendance Take student attendance for each course
Mark Can give marks to students for each course
Registration Register students
Notice, Syllabus Manage uploaded Notices, Syllabus, Routines
Library Manage a library of books.
  Add new books.
  Keep track of books.
Exam Manage Semester by Examination
Grade Give Grades based on marks of each course.
Accounts Manage Income, Expense Amounts
  View Graphs based on year.
Messaging Uses CKEditor 5
Export/Import Users (Students, Teachers) from/to Excel
  Laravel Excel package is used.
  Important: Single sheet supported in an Excel file. So delete any extra sheet in an Excel file.
  Following excel column names supported for both Teachers and Students: name, email, password, address, about, phone_number, blood_group, nationality, gender.
  Other columns:
  For Teachers: department, (class, section) if assigned as class teacher.
  For Students: class, section, session, version, group, birthday, religion, father_name, father_phone_number, father_national_id, father_occupation, father_designation, father_annual_income, mother_name, mother_phone_number, mother_national_id, mother_occupation, mother_designation, mother_annual_income
  For any number(e.g: phone_number) starts with zero, put (‘) before zero.
Supported Languages English, Spanish
  To set default Language and Timezone, Edit as following in config/app.php:
'timezone' => 'Asia/Dhaka',//'UTC',
'locale' => 'en',//'es-MX' for Spanish

How to Start

Using Docker Container:

Docker is now supported and improved.

With the improved Docker setup, you will get:

In a nutshell, you only need to install Docker as well as docker-compose on your (host) machine and let Docker does the rest

Step to install:

  1. Run cp .env.example .env
  2. If you think the default setting are pretty well setup, you can run ./ right away from your terminal.
  3. Otherwise, read a section below for further information about properties you may change.
  4. Run ./


Here are .env properties you can change:

You can also customize the database name defined on the DB_DATABASE property when Docker is being initialized the first time.

Added Commands

Not using a Container:

Here are some basic steps to start using this application

Note: Instruction on cached data for Dashboard is given in Good to know segment below.

git clone
   Logviewer Service provider,
   'Debugbar' => Barryvdh...

from config/app.php before running composer install in Production Environment)


Note that this is just an example, and the values may vary depending on your database environment.

Video Tutorial

See Video Tutorial.

Video Tutorial


Stripe setup

Create a school and an admin

Manage a school

Basic Steps by Serial

Manage Exam (In exam manage page) by Admin

  1. Check Notice published checkbox for an Exam after uploading Exam Notice.
  2. Check Result published checkbox for an Exam after all teachers updated their courses’ marks.

    • Checking result as published sets the Exam as completed.
  3. Exam is set as Active by default while created. You can deactivate the exam by checking related checkbox.

Manage GPA and Grade

  1. Admin adds GPAs for respective mark ranges.
  2. For giving marks, Teacher clicks on Submit Grade button and do the following:

    1. Select a GPA by name from dropdown
    2. Configure Class Test, Quiz, …etc. count, percentage (Optional)
    3. Give marks
    4. To get Grade of students of a course for given marks, Teacher clicks the Get Total Marks button. (Usually this is done at the end of the semester)

Give Certificate or Diploma to students

Upon request in issue #258, Certification file upload system has been added.

Good to know


$classes = \Cache::remember('classes-'.$school_id, $minutes, function () use($school_id) {
   return \App\Myclass::where('school_id', $school_id)


$classes = \App\Myclass::where('school_id', $school_id)

You can do similar for other cache lines.

Here are some screenshots:

Auto generated fake data were used.

Screenshot_2019-04-11 - Ms Duane Welch(2) Screenshot_2019-05-11 Stripe Payment - Elvis Leffler Screenshot_2019-04-29 All Examinations - Santino Bergstrom V Screenshot_2019-03-21 Account Sectors - Britney Luettgen Screenshot_2019-03-12 Add New Book - Arvid Marquardt Screenshot_2019-03-12 Add Routine - Arvid Marquardt Screenshot_2019-03-12 Alba Huel - Arvid Marquardt Screenshot_2019-03-12 All Classes and Sections - Arvid Marquardt Screenshot_2019-03-12 All Issued Book - Arvid Marquardt Screenshot_2019-03-12 Attendance - Arvid Marquardt(1) Screenshot_2019-03-12 Attendance - Arvid Marquardt(2) Screenshot_2019-03-12 Attendance - Arvid Marquardt Screenshot_2019-03-12 Course - Arvid Marquardt Screenshot_2019-04-06 Course Students - Prof Buddy Hermann Screenshot_2019-04-06 Messages - Prof Buddy Hermann Screenshot_2019-03-29 Grade - Deron Ruecker DDS Screenshot_2019-03-12 Manage Schools - Arvid Marquardt(3) Screenshot_2019-03-12 Manage Schools - Arvid Marquardt Screenshot_2019-03-12 Promote Section Students - Arvid Marquardt(1) Screenshot_2019-03-12 Students - Arvid Marquardt Screenshot_2020-07-24 Give Certificate - Ruthie Gorczany Screenshot_2020-07-24 My Certificates - Ruthie Gorczany