Accounting Journal Management System with Trial Balance in PHP Free Source Code



This is a Simple PHP entitled Accounting Journal Management System with Trial balance. This is a web-based application project that helps a certain company to store their transaction records for easy retrieval. The application generates a working trial balance and trial balance reports. It is easy to use with a simple and pleasant user interface using the Bootstrap Framework and AdminLTE template.

About the Accounting Journal Management System with Trial balance

I developed this project using the following:

  • XAMPP v3.3.0 as my local webserver that has a PHP Version 8.0.7
  • PHP Language
  • MySQL Database
  • HTML
  • CSS
  • JavaScript
  • jQuery
  • Ajax
  • Bootstrap
  • AdminLTE
  • and more...

The Accounting Journal Management System with Trial balance Project is accessible only for the company's accounting staff. The System users have 2 different roles which are the Administrators and Staff. The Administrator users have the privilege to access and manage all the features and functionalities of this project while the Staff have only limited access. The system requires the users to enter their system credentials in order to access the data, features, and functionalities. This has a feature that generates a date-wise Working Trial Balance and Trial Balance Report. The Admin users can dynamically manage the list of Accounts and Account Groups (debit/credit). In the journal entry list, staff users can only manage the entries that they have encoded only.


  • Secure Login and Logout
  • Dashboard
    • Display the summary of lists.
  • Account Management
    • Add New Account
    • List All Accounts
    • View Account
    • Update Account
    • Delete Account
  • Account Group Management
    • Add New Account Group
    • List All Account Groups
    • View Account Group Details
    • Update Account Group Details
    • Delete Account Group Details
  • Journal Entries Management
    • Add New Journal Entry
    • List All Journal Entries
    • Update Journal Entry Details
    • Delete Journal Entry Details
  • Generate Reports
    • Printable Date-wise Working Trial Balance Report
    • Printable Date-wise Trial Balance Report
  • Manage User List (CRUD)
  • Manage Account Details/Credentials
  • Manage System Information

System Snapshots of some Features

Accounting Journal Management System with Trial balance
Journal Entry List
Accounting Journal Management System with Trial balance
Journal Entry Form Modal
Accounting Journal Management System with Trial balance
Working Trial Balance Report
Accounting Journal Management System with Trial balance
Trial Balance Report
Accounting Journal Management System with Trial balance

How to Run ??


  • Download and Install any local web server such as XAMPP/WAMP.
  • Download the provided source code zip file. (download button is located below)


  1. Enable or Uncomment the GD Library on your php.ini file.
  2. Open your XAMPP/WAMP's Control Panel and start Apache and MySQL.
  3. Extract the downloaded source code zip file.
  4. If you are using XAMPP, copy the extracted source code folder and paste it into the XAMPP's "htdocs" directory. And If you are using WAMP, paste it into the "www" directory.
  5. Browse the PHPMyAdmin in a browser. i.e. http://localhost/phpmyadmin
  6. Create a new database naming ajms_db.
  7. Import the provided SQL file. The file is known as ajms_db.sql located inside the database folder.
  8. Browse the Accounting Journal Management System with Trial balance in a browser. i.e. http://localhost/ajms/.

Default Admin Access

Username: admin
Password: admin123


That's it. You can now explore the features and functionalities of this Accounting Journal Management System with Trial balance in PHP. I hope this project will help you with what you are looking for and you'll find something useful for your future projects.

Explore more on this website for more Free Source Codes and Tutorials.

Enjoy :)

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.

Virus note: All files are scanned once-a-day by for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.


1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.


thanks for your kind reply. yes i got it entry had to be debited and other had to be credited to be equal. But now when i make it online on live server Journal Entry Modal isnt working properly and failing to load drop down list of only loads account groups....its working fine on xampp live server has PHP 8.0 it due to php version difference?

Submitted bykhasharon Wed, 03/02/2022 - 15:50

thanks for your kind reply again.....i have checked the is there error


Uncaught SyntaxError: Unexpected end of JSON input
    at Function.parse [as parseJSON] (<anonymous>)
    at <anonymous>:2:21
    at b (jquery.min.js:2:839)
    at Pe (jquery.min.js:2:48536)
    at S.fn.init.append (jquery.min.js:2:49887)
    at S.fn.init.<anonymous> (jquery.min.js:2:50979)
    at $ (jquery.min.js:2:32392)
    at S.fn.init.html (jquery.min.js:2:50657)
    at Object.success (
    at c (jquery.min.js:2:28294)


Every form submission in the project are sent using Ajax Request. So in your DevTools under the network tab. Check the last request with the URL something like "http://localhost/ajms/classes/Master.php?f=save_journal". Then, click the said URL, DevTools will show you some details about the sent Request. You will see a Response and Preview tab their then you can select either of the 2 tabs. There you can check the detailed information about the error that occurred. 

this is what i get in response tab 


A page or script is accessing at least one of navigator.userAgentnavigator.appVersion, and navigator.platform. Starting in Chrome 101, the amount of information available in the User Agent string will be reduced.

To fix this issue, replace the usage of navigator.userAgentnavigator.appVersion, and navigator.platform with feature detection, progressive enhancement, or migrate to navigator.userAgentData.

Note that for performance reasons, only the first access to one of the properties is shown.

Submitted bykhasharon Wed, 03/02/2022 - 17:57

and plz also let me know how do i make base url constant....

currently am using define('base_url','/ajms'); 

only live server shud i user define('base_url',''); ???

Add new comment