Developed by Khawer Ali
A modular, multi-role accounting and business management system built on Laravel 10.31.0 and PHP 8.1.13, integrated with Stripe Connect for split payments, with secure authentication using Laravel Sanctum.
🔰 Project Overview
This ERP system is tailored for businesses with multiple user types (Admin, User, Employee), offering core accounting functionalities, customizable branch-based data access. Designed for high performance, extensibility, and API-driven architecture.
🎯 Key Features
-
🧑💼 Role-Based Access Control (RBAC):
Admin(Superuser, Web Panel)User(Business Owner)Employee(Sub-users under each Business)
-
🔁 Modular Structure:
- Clean separation of Controllers, Repositories, Filters, Requests, and Models
- Trait-based exception logging and foreign key checking
-
💳 Stripe Payment Integration:
- Stripe Connect for split payments between platform and connected accounts
-
📡 RESTful API Design:
- Consistent JSON responses using helper methods like
api_success,api_error,api_successWithData - API error handling via centralized
HandlesExceptionLogtrait
- Consistent JSON responses using helper methods like
-
🔐 Secure Authentication:
- Laravel Sanctum for token-based API authentication
-
🏢 Multi-Tenant Structure:
parent_idpattern used across all data models to segregate company data- Branch-level filters to allow business-level scoping
-
📁 File Uploads & Document Handling
🛠 Tech Stack
| Area | Technology |
|---|---|
| Backend Framework | Laravel 10.31.0 |
| PHP Version | PHP 8.1.13 |
| Authentication | Laravel Sanctum |
| Payment Gateway | Stripe PHP SDK 9.6 |
| Database | MySQL / MariaDB |
| API Response | Custom helper methods |
| Dev Tools | Postman, Laravel Tinker |
📂 Project Architecture
app/Http/Controllers– All HTTP controllers, grouped by module (e.g.,CommissionMaster,Contact)app/Repositories– Repository pattern for model abstractionapp/Filters– Used to apply conditional queries based on request dataapp/Models– Eloquent models with relationships and scopesapp/Http/Requests– Form request validation classesapp/Core/Traits– Reusable logic like logging and foreign key checks
🧪 Testing APIs
Recommended: Use Postman with the provided collection
SetAuthorization: Bearer {token}in headers
Use account number000123456789for testing
API Endpoints Overview total 424:
Breakdown of USER endpoints: total of 386 endpoints
Authentication & Password Recovery (No Auth): 9 endpoints Auth routes: 4 endpoints
Password recovery: 3 endpoints
ID recovery: 2 endpoints
Authenticated Routes (Main Application): 377 endpoints These are grouped under middleware and organized into various modules:
Account/User Management: 5 endpoints
Master Data (Warehouse, Classification, Currency, etc.): ~85 endpoints
Party Ledger & Chart of Accounts: ~25 endpoints
Administration (User Maintenance, Branch, Subscriptions): ~45 endpoints
Transaction Modules (Vouchers, Payments, Banking): ~180 endpoints
Processes (Approvals, Locks, PDC): ~20 endpoints
Reports & General Utilities: ~17 endpoints
Public General Routes: 16 endpoints
Breakdown of ADMIN endpoints: total of 38 endpoints
Authentication & Password Recovery (No Auth): 5 endpoints Auth routes: 2 endpoints (login, logout)
Password recovery: 3 endpoints (verify-email, verify-code, update-password)
Protected Admin Routes: 33 endpoints These require admin authentication and are organized into:
Account Management: 4 endpoints (index, update, destroy, change-password)
User Management: 4 endpoints (index, show, status, branches)
Subscription Management: 1 endpoint (index)
Support Type Management: 5 endpoints (index, show, create, update, destroy)
Package Management: 7 endpoints (index, show, create, update, status, destroy, reject)
Notification Management: 2 endpoints (index, update)
Feedback Management: 4 endpoints (index, types, show, create)
Home & Dashboard: 2 endpoints (home, charts)
Unlock Request Management: 3 endpoints (index, show, status)