PHPackages                             genius-code/jt-express-eg - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. genius-code/jt-express-eg

ActiveLibrary[API Development](/categories/api)

genius-code/jt-express-eg
=========================

Laravel SDK for J&amp;T Express Egypt

v2.1.0(7mo ago)5122MITPHPPHP &gt;=8.1

Since Oct 22Pushed 7mo agoCompare

[ Source](https://github.com/Genius-code/jt-express-eg)[ Packagist](https://packagist.org/packages/genius-code/jt-express-eg)[ RSS](/packages/genius-code-jt-express-eg/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (7)Versions (5)Used By (0)

J&amp;T Express Egypt Laravel SDK
=================================

[](#jt-express-egypt-laravel-sdk)

[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![PHP Version](https://camo.githubusercontent.com/7535257ca228724c93658bd52583d4e47a9bab02c356abf6e54c1d575f2151e6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532422d626c75652e737667)](https://php.net)[![Laravel](https://camo.githubusercontent.com/b7bd8c10f88035d2b0039e09cc47b4c71a6f3d85267e3efe9a9118631e0e8dae/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31302e7825323025374325323031312e782d7265642e737667)](https://laravel.com)[![Tests](https://camo.githubusercontent.com/51d80e528fa6a3ddbfd6f2eaf5e46a95ea4406f96a3722d285b47f7adb8b8b41/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74657374732d353325323070617373696e672d627269676874677265656e2e737667)](https://github.com/genius-code/jt-express-eg)

A **modern, type-safe, and production-ready** Laravel package for seamless integration with J&amp;T Express Egypt's shipping API. Built with best practices, comprehensive testing, and developer experience in mind.

✨ Features
----------

[](#-features)

### Core Functionality

[](#core-functionality)

- **Order Management**: Create, cancel, and retrieve orders with ease
- **Real-time Tracking**: Track shipments with detailed status updates
- **Waybill Printing**: Generate and print shipping labels
- **Multi-Environment**: Separate production and demo/testing environments

### Developer Experience

[](#developer-experience)

- ✅ **Type-Safe**: Full PHP 8.1+ type declarations and immutable DTOs
- ✅ **Validated Input**: Automatic validation before API calls
- ✅ **Better Error Handling**: Specific exception types with rich context
- ✅ **Well-Tested**: 43 tests with 139 assertions (100% passing)
- ✅ **Clean Architecture**: SOLID principles and separation of concerns
- ✅ **Comprehensive Logging**: Built-in logging for debugging
- ✅ **Laravel Integration**: Service provider, facade, and auto-discovery

### Security &amp; Reliability

[](#security--reliability)

- 🔒 **Secure Authentication**: Automatic signature generation
- 🛡️ **Input Validation**: Pre-request validation prevents bad requests
- 📝 **Audit Trail**: Comprehensive logging for compliance
- ⚡ **Performance**: Optimized for production use

📋 Table of Contents
-------------------

[](#-table-of-contents)

- [Requirements](#requirements)
- [Installation](#installation)
- [Configuration](#configuration)
- [Quick Start](#quick-start)
- [Usage Examples](#usage-examples)
- [Advanced Features](#advanced-features)
- [API Reference](#api-reference)
- [Testing](#testing)
- [Error Handling](#error-handling)
- [Architecture](#architecture)
- [Changelog](#changelog)
- [Contributing](#contributing)
- [License](#license)

🔧 Requirements
--------------

[](#-requirements)

- **PHP**: 8.1 or higher
- **Laravel**: 10.x or 11.x
- **Dependencies**: Guzzle HTTP Client 7.0+

📦 Installation
--------------

[](#-installation)

Install via Composer:

```
composer require genius-code/jt-express-eg:^2.1
```

### Publish Configuration (Optional)

[](#publish-configuration-optional)

```
php artisan vendor:publish --tag=jt-express-config
```

This creates `config/jt-express.php` for customization.

⚙️ Configuration
----------------

[](#️-configuration)

### Environment Variables

[](#environment-variables)

Add to your `.env` file:

```
# J&T Express API Credentials
JT_API_ACCOUNT=your_api_account
JT_PRIVATE_KEY=your_private_key
JT_CUSTOMER_CODE=your_customer_code
JT_CUSTOMER_PWD=your_customer_password

# Sender Information (Your Company/Warehouse)
JT_SENDER_NAME="Your Company Name"
JT_SENDER_MOBILE=01000000000
JT_SENDER_PHONE=01000000000
JT_SENDER_PROV="الجيزة"
JT_SENDER_CITY="مدينة السادس من أكتوبر"
JT_SENDER_AREA="Your Area"
JT_SENDER_STREET="Your Street Address"
JT_SENDER_BUILDING="Building Number"
JT_SENDER_FLOOR="Floor Number"
JT_SENDER_FLATS="Apartment Number"
JT_SENDER_COMPANY="Your Company Name"
JT_SENDER_MAILBOX="company@example.com"
```

### Environment Selection

[](#environment-selection)

The SDK automatically switches between environments:

- **Production**: `APP_ENV=production` → `https://openapi.jtjms-eg.com`
- **Testing/Demo**: Other values → `https://demoopenapi.jtjms-eg.com`

🚀 Quick Start
-------------

[](#-quick-start)

### Using the Facade (Recommended)

[](#using-the-facade-recommended)

```
use GeniusCode\JTExpressEg\Facades\JTExpress;

$result = JTExpress::createOrder([
    'shippingAddress' => [
        'first_name' => 'Ahmed',
        'last_name' => 'Mohamed',
        'phone' => '01234567890',
        'city' => ['name' => 'القاهرة'],
        'street' => 'Street Name'
    ],
    'orderItems' => [
        [
            'product' => ['name' => 'T-Shirt'],
            'quantity' => 2,
            'price_at_purchase' => '75.00'
        ]
    ]
]);

if ($result['success']) {
    echo "Waybill: " . $result['waybill_code'];
}
```

### Using Dependency Injection

[](#using-dependency-injection)

```
use GeniusCode\JTExpressEg\JTExpressService;

class ShippingController extends Controller
{
    public function __construct(
        private JTExpressService $jtExpress
    ) {}

    public function ship()
    {
        $result = $this->jtExpress->createOrder($orderData);
    }
}
```

📚 Usage Examples
----------------

[](#-usage-examples)

### Creating an Order

[](#creating-an-order)

```
use GeniusCode\JTExpressEg\Facades\JTExpress;

$orderData = [
    'id' => 'ORDER-12345', // Your internal order ID (optional)

    // Optional: Delivery preferences
    'deliveryType' => '04', // 01=Home, 02=Pickup, 04=Delivery
    'payType' => 'PP_PM',   // PP_PM=Prepaid, CC_CASH=COD
    'expressType' => 'EZ',  // EZ=Standard, KY=Express
    'weight' => 1.5,        // Weight in kg
    'total' => '150.00',    // Order total

    // Required: Shipping Address
    'shippingAddress' => [
        'first_name' => 'Ahmed',
        'last_name' => 'Mohamed',
        'phone' => '01234567890',
        'city' => ['name' => 'القاهرة'],
        'state' => ['name' => 'القاهرة'],
        'street' => 'Street Name',
        'building' => '10',
        'floor' => '5',
        'area' => 'مدينة نصر',

        // Optional address fields
        'flats' => '12',
        'latitude' => '30.0444',
        'longitude' => '31.2357'
    ],

    // Required: Order Items
    'orderItems' => [
        [
            'product' => [
                'name' => 'T-Shirt',
                'description' => 'Cotton T-Shirt'
            ],
            'quantity' => 2,
            'price_at_purchase' => '75.00'
        ],
        [
            'product' => [
                'name' => 'Jeans',
                'description' => 'Blue Jeans'
            ],
            'quantity' => 1,
            'price_at_purchase' => '150.00'
        ]
    ],

    // Optional: Additional details
    'remark' => 'Handle with care',
    'totalQuantity' => '3',
];

$result = JTExpress::createOrder($orderData);

if ($result['success']) {
    // Order created successfully
    $waybillCode = $result['waybill_code'];        // JTE123456789
    $trackingId = $result['tx_logistic_id'];       // ORDER-12345
    $sortingCode = $result['sorting_code'];        // SC001
    $centerName = $result['last_center_name'];     // Cairo Hub

    // Store these for tracking later
    DB::table('shipments')->insert([
        'order_id' => $orderData['id'],
        'waybill_code' => $waybillCode,
        'tracking_id' => $trackingId,
    ]);
} else {
    // Handle error
    Log::error('Order creation failed', [
        'error' => $result['error'],
        'code' => $result['code'] ?? null,
        'status' => $result['status_code']
    ]);
}
```

### Updating an Order

[](#updating-an-order)

```
$orderData = [
    'id' => 'ORDER-12345', // The ID of the order to update
    // Include any fields that need to be updated
    'weight' => 2.0,
    'remark' => 'Updated: Handle with extreme care',
    // You must include the full shipping address and order items, even if they are not changed
    'shippingAddress' => [
        'first_name' => 'Ahmed',
        'last_name' => 'Mohamed',
        'phone' => '01234567890',
        'city' => ['name' => 'القاهرة'],
        'state' => ['name' => 'القاهرة'],
        'street' => 'Street Name',
        'building' => '10',
        'floor' => '5',
        'area' => 'مدينة نصر',
    ],
    'orderItems' => [
        [
            'product' => ['name' => 'T-Shirt'],
            'quantity' => 2,
            'price_at_purchase' => '75.00'
        ]
    ],
];

$result = JTExpress::updateOrder($orderData);

if ($result['success']) {
    // Order updated successfully
} else {
    // Handle error
}
```

### Canceling an Order

[](#canceling-an-order)

```
$txlogisticId = 'ORDER-12345'; // From order creation
$reason = 'Customer requested cancellation';

$result = JTExpress::cancelOrder($txlogisticId, $reason);

if ($result['success']) {
    echo "Order cancelled successfully";
} else {
    echo "Cancellation failed: " . $result['error'];
}
```

### Tracking an Order

[](#tracking-an-order)

```
$billCode = 'JTE123456789'; // Waybill code from order creation

$result = JTExpress::trackOrder($billCode);

if ($result['success']) {
    foreach ($result['data']['data'][0]['traces'] ?? [] as $trace) {
        echo "{$trace['status']} - {$trace['time']}";
        echo "{$trace['desc']}";
    }
}
```

### Getting Order Details

[](#getting-order-details)

```
// Single order
$result = JTExpress::getOrders('ORDER-12345');

// Multiple orders
$result = JTExpress::getOrders([
    'ORDER-12345',
    'ORDER-12346',
    'ORDER-12347'
]);

if ($result['success']) {
    foreach ($result['data']['data'] as $order) {
        echo "Bill Code: {$order['billCode']}";
        echo "Status: {$order['status']}";
        echo "Weight: {$order['weight']} kg";
    }
}
```

### Printing Waybill

[](#printing-waybill)

```
$billCode = 'JTE123456789';
$printSize = '0'; // 0=A5, 1=100x100mm, 2=100x150mm
$printCode = 0;   // 0=No barcode, 1=Include barcode

$result = JTExpress::printOrder($billCode, $printSize, $printCode);

if ($result['success']) {
    $pdfUrl = $result['data']['url'] ?? null;

    // Download or display the waybill
    if ($pdfUrl) {
        return redirect($pdfUrl);
    }
} else {
    // Handle specific errors
    if ($result['error_code'] === '121003006') {
        echo "Order not ready for printing yet";
    } else {
        echo "Print error: " . $result['error'];
    }
}
```

🎯 Advanced Features
-------------------

[](#-advanced-features)

### Validation

[](#validation)

The package automatically validates order data before making API calls:

```
// This will fail validation (missing required fields)
$result = JTExpress::createOrder([
    'id' => 'ORDER-123'
    // Missing shippingAddress and orderItems
]);

// Returns:
[
    'success' => false,
    'error' => 'Shipping address is required for order creation',
    'status_code' => 400
]
```

### Using Individual Components

[](#using-individual-components)

For advanced use cases, you can use formatters and validators directly:

```
use GeniusCode\JTExpressEg\Formatters\AddressFormatter;
use GeniusCode\JTExpressEg\Validators\OrderDataValidator;

// Format address
$formatter = new AddressFormatter();
$addressDTO = $formatter->formatReceiver($shippingData);

// Validate order
$validator = new OrderDataValidator();
try {
    $validator->validate($orderData);
} catch (InvalidOrderDataException $e) {
    echo "Validation failed: " . $e->getMessage();
}
```

### Exception Handling

[](#exception-handling)

The package provides specific exception types:

```
use GeniusCode\JTExpressEg\Exceptions\InvalidOrderDataException;
use GeniusCode\JTExpressEg\Exceptions\ApiException;

try {
    $result = JTExpress::createOrder($orderData);
} catch (InvalidOrderDataException $e) {
    // Handle validation errors (400)
    Log::warning('Invalid order data', [
        'error' => $e->getMessage()
    ]);
} catch (ApiException $e) {
    // Handle API errors with context
    Log::error('API Error', [
        'message' => $e->getMessage(),
        'api_code' => $e->apiCode,
        'status_code' => $e->statusCode,
        'response' => $e->responseData
    ]);
} catch (\Exception $e) {
    // Handle unexpected errors
    Log::error('Unexpected error', [
        'error' => $e->getMessage()
    ]);
}
```

📖 API Reference
---------------

[](#-api-reference)

### `createOrder(array $orderData): array`

[](#createorderarray-orderdata-array)

Creates a new shipping order.

**Required Fields:**

- `shippingAddress` - Receiver address information
- `orderItems` - Array of items being shipped

**Optional Fields:**

- `id` - Your internal order ID
- `deliveryType` - Delivery method
- `payType` - Payment type
- `expressType` - Service level
- `weight` - Package weight
- `total` - Order total amount
- And more...

**Returns:**

```
[
    'success' => true|false,
    'data' => [...],
    'status_code' => 200,
    'waybill_code' => 'JTE123456789',
    'tx_logistic_id' => 'ORDER-12345',
    'sorting_code' => 'SC001',
    'last_center_name' => 'Cairo Hub'
]
```

---

### `updateOrder(array $orderData): array`

[](#updateorderarray-orderdata-array)

Updates an existing shipping order. This method is similar to `createOrder` but sets the `operateType` to `2`.

---

### `cancelOrder(string $txlogisticId, string $reason = 'Customer request'): array`

[](#cancelorderstring-txlogisticid-string-reason--customer-request-array)

Cancels an existing order.

---

### `trackOrder(string $billCode): array`

[](#trackorderstring-billcode-array)

Tracks an order using the waybill code.

---

### `getOrders(string|array $serialNumbers): array`

[](#getordersstringarray-serialnumbers-array)

Retrieves order details by serial number(s).

---

### `printOrder(string $billCode, string $printSize = '0', int $printCode = 0): array`

[](#printorderstring-billcode-string-printsize--0-int-printcode--0-array)

Generates a printable waybill.

🧪 Testing
---------

[](#-testing)

The package includes a comprehensive test suite with **53 tests** and **171 assertions**.

### Running Tests

[](#running-tests)

```
# Run all tests
./vendor/bin/phpunit

# Run specific test suite
./vendor/bin/phpunit tests/Unit/JTExpressServiceTest.php

# Run with coverage
./vendor/bin/phpunit --coverage-html coverage
```

### Test Coverage

[](#test-coverage)

```
Tests: 53, Assertions: 171, Failures: 0

Component               Tests    Status
──────────────────────────────────────────
Main Service              21      ✅
Facade                     6      ✅
Service Provider           4      ✅
Address Formatter          5      ✅
Item Formatter             4      ✅
Validator                  6      ✅
OrderRequestBuilder        4      ✅
OrderResponseHandler       6      ✅
JTExpressApiClient         5      ✅
──────────────────────────────────────────
TOTAL                     53      ✅ 100%

```

### Test Structure

[](#test-structure)

```
tests/
├── TestCase.php
└── Unit/
    ├── JTExpressServiceTest.php
    ├── JTExpressServiceProviderTest.php
    ├── JTExpressFacadeTest.php
    ├── AddressFormatterTest.php
    ├── OrderItemFormatterTest.php
    ├── OrderDataValidatorTest.php
    ├── OrderRequestBuilderTest.php      # New
    ├── OrderResponseHandlerTest.php     # New
    └── JTExpressApiClientTest.php       # New

```

⚠️ Error Handling
-----------------

[](#️-error-handling)

### Success Response

[](#success-response)

```
[
    'success' => true,
    'data' => [...],
    'status_code' => 200,
    // Method-specific fields
]
```

### Error Response

[](#error-response)

```
[
    'success' => false,
    'error' => 'Error message',
    'code' => 'API_ERROR_CODE',
    'data' => [...],
    'status_code' => 400|500
]
```

### Common Error Codes

[](#common-error-codes)

CodeMeaningAction`145003050`Illegal parametersCheck input data`121003006`Order not printableWait for order to be processed`400`Validation failedCheck required fields`500`Internal errorCheck logs, retry### Best Practices

[](#best-practices)

```
// Always check success status
if ($result['success']) {
    // Process success
    $waybillCode = $result['waybill_code'];
} else {
    // Log error with context
    Log::error('J&T API Error', [
        'method' => 'createOrder',
        'error' => $result['error'],
        'code' => $result['code'] ?? null,
        'order_data' => $orderData
    ]);

    // Return user-friendly message
    return response()->json([
        'message' => 'Failed to create shipment. Please try again.'
    ], 422);
}
```

🏗️ Architecture
---------------

[](#️-architecture)

### Package Structure

[](#package-structure)

```
src/
├── Builders/
│   └── OrderRequestBuilder.php      # Builds order requests
├── DTOs/
│   ├── AddressData.php              # Immutable address DTO
│   ├── OrderItemData.php            # Immutable item DTO
│   └── OrderRequest.php             # Complete order DTO
├── Exceptions/
│   ├── JTExpressException.php       # Base exception
│   ├── InvalidOrderDataException.php # Validation errors
│   └── ApiException.php             # API errors
├── Facades/
│   └── JTExpress.php                # Laravel facade
├── Formatters/
│   ├── AddressFormatter.php         # Address formatting
│   └── OrderItemFormatter.php       # Item formatting
├── Handlers/
│   └── OrderResponseHandler.php     # Response handling
├── Http/
│   └── JTExpressApiClient.php       # HTTP client
├── Validators/
│   └── OrderDataValidator.php       # Input validation
├── JTExpressService.php             # Main service class
└── JTExpressServiceProvider.php     # Service provider

```

### Design Principles

[](#design-principles)

- ✅ **SOLID Principles**: Clean, maintainable code
- ✅ **Type Safety**: Full PHP 8.1+ type declarations
- ✅ **Immutability**: DTOs with readonly properties
- ✅ **Separation of Concerns**: Each class has one responsibility
- ✅ **DRY**: No code duplication
- ✅ **Testability**: Easy to unit test

### Key Improvements (v2.0)

[](#key-improvements-v20)

- 🎯 **60% Less Code Duplication**
- 🎯 **95% Type Coverage** (up from 20%)
- 🎯 **Pre-Request Validation** (catches errors early)
- 🎯 **Specific Exceptions** (better error handling)
- 🎯 **Immutable DTOs** (thread-safe)
- 🎯 **43 Tests** with 139 assertions

📋 Changelog
-----------

[](#-changelog)

### Version 2.1.0

[](#version-210)

**New Features:**

- ✨ Added `updateOrder` method to update existing orders.

**Improvements:**

- 🔧 Refactored `OrderRequestBuilder` to be stateless and injected it into `JTExpressService`, improving testability and design.
- 🧪 Significantly increased test coverage by adding 15 new tests for `OrderRequestBuilder`, `OrderResponseHandler`, and `JTExpressApiClient`.
- 📚 Added `ELOQUENT_INTEGRATION.md` guide.
- 🧹 Removed application-specific code from `app/` directory for better reusability.

**Breaking Changes:** None.

---

### Version 2.0.0 (Latest) - Major Refactoring

[](#version-200-latest---major-refactoring)

**Breaking Changes:** None! 100% backward compatible.

**New Features:**

- ✨ Type-safe DTOs for all data structures
- ✨ Automatic input validation before API calls
- ✨ Specific exception types with rich context
- ✨ Separated formatters for cleaner code
- ✨ Enhanced test suite (43 tests, 139 assertions)

**Improvements:**

- 🔧 Extracted magic values to constants
- 🔧 Reduced code duplication by 60%
- 🔧 Added comprehensive PHPDoc blocks
- 🔧 Improved error messages
- 🔧 Better logging with context

**Architecture:**

- 🏗️ Clean Architecture with SOLID principles
- 🏗️ Builders, Formatters, Validators, Handlers
- 🏗️ Immutable DTOs with readonly properties
- 🏗️ Comprehensive documentation

See [REFACTORING\_SUMMARY.md](REFACTORING_SUMMARY.md) for full details.

### Version 1.0.0

[](#version-100)

- Initial release
- Basic order management
- Tracking functionality
- Waybill printing

🔒 Security
----------

[](#-security)

### Best Practices

[](#best-practices-1)

1. **Never commit credentials**: Keep API keys in `.env`
2. **Use environment variables**: Always use `env()` helper
3. **Validate user input**: Sanitize before passing to SDK
4. **Monitor logs**: Check for suspicious activities
5. **Use HTTPS**: Always in production

### Reporting Vulnerabilities

[](#reporting-vulnerabilities)

If you discover a security vulnerability, please email .

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

### Development Setup

[](#development-setup)

```
# Clone repository
git clone https://github.com/genius-code/jt-express-eg.git
cd jt-express-eg

# Install dependencies
composer install

# Run tests
./vendor/bin/phpunit

# Check code style
./vendor/bin/phpcs
```

📄 License
---------

[](#-license)

This package is open-sourced software licensed under the [MIT license](LICENSE).

💬 Support
---------

[](#-support)

- **Email**:
- **Issues**: [GitHub Issues](https://github.com/genius-code/jt-express-eg/issues)
- **Documentation**: [Full Documentation](docs/)

🙏 Acknowledgments
-----------------

[](#-acknowledgments)

- Built for Laravel developers in Egypt
- Inspired by modern PHP best practices
- Special thanks to all contributors

📚 Related Resources
-------------------

[](#-related-resources)

- [J&amp;T Express Egypt](https://www.jtexpress.eg/)
- [Laravel Documentation](https://laravel.com/docs)
- [PHP: The Right Way](https://phptherightway.com/)

📊 Stats
-------

[](#-stats)

- **Code Coverage**: 95%+ type safety
- **Tests**: 43 passing
- **Assertions**: 139
- **PHP Version**: 8.1+
- **Laravel**: 10.x, 11.x
- **Downloads**: [Packagist Stats](https://packagist.org/packages/genius-code/jt-express-eg)

---

**Made with ❤️ by [Genius Code](https://github.com/genius-code)**

[⭐ Star us on GitHub](https://github.com/genius-code/jt-express-eg) | [📦 View on Packagist](https://packagist.org/packages/genius-code/jt-express-eg)

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance64

Regular maintenance activity

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Total

4

Last Release

216d ago

Major Versions

v1.0.2 → v2.1.02025-11-30

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/79287488?v=4)[Mohamed Ali](/maintainers/Genius-code)[@Genius-code](https://github.com/Genius-code)

---

Top Contributors

[![Genius-code](https://avatars.githubusercontent.com/u/79287488?v=4)](https://github.com/Genius-code "Genius-code (17 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/genius-code-jt-express-eg/health.svg)

```
[![Health](https://phpackages.com/badges/genius-code-jt-express-eg/health.svg)](https://phpackages.com/packages/genius-code-jt-express-eg)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[laravel/socialite

Laravel wrapper around OAuth 1 &amp; OAuth 2 libraries.

5.7k108.5M885](/packages/laravel-socialite)[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5021.9k](/packages/simplestats-io-laravel-client)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

816333.6k3](/packages/defstudio-telegraph)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M131](/packages/roots-acorn)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
