shiftechafrica/shift-code-generator

This package generates code in relation to year, date and month. For instance, it uses A - Z letters for months.

Installs: 2 499

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 1

Open Issues: 0

pkg:composer/shiftechafrica/shift-code-generator

v1.5.3 2025-04-01 07:54 UTC

This package is auto-updated.

Last update: 2025-10-05 14:02:45 UTC


README

Be in the next level


Shift Code Generator Animation

🚀 Introduction

Shift Code Generator is a lightweight Laravel/PHP package that generates unique alphanumeric codes based on the year, month, and day, followed by a randomized string.
It’s ideal for applications that require sequential or time-based identifiers — such as transaction IDs, invoice numbers, or reference codes.

For example:
1E1NKJDQVW

  • 1 → Represents the number of years since the start year
  • E → Represents the month (A–Z mapping)
  • 1 → Represents the day of the month
  • NKJDQVW → Randomly generated string

This logic mimics the behavior of M-Pesa transaction IDs, ensuring unique, traceable, and time-bound identifiers.

⚙️ Installation

Install via Composer:

composer require shiftechafrica/shift-code-generator

Update to the latest version:

composer update shiftechafrica/shift-code-generator --lock

If the package isn’t automatically discovered, run:

composer dump-autoload

Publish the configuration file:

php artisan vendor:publish --provider="ShiftechAfrica\CodeGenerator\ShiftCodeGeneratorServiceProvider"

This will create a config file at:

config/shift-code-generator.php

⚙️ Configuration

In your .env file, add the following:

YEAR_OF_START=2020     # The year your application was launched
USE_DATABASE=false     # Set to true to use database tracking, or false to use static year configuration

If you enable database tracking, seed the database by adding this entry to your DatabaseSeeder:

/**
 * Seed the application's database.
 *
 * @return void
 */
public function run()
{
     // Other seeds...
     $this->call(\ShiftechAfrica\CodeGenerator\Seeds\ShiftCodeGeneratorFactory::class);
}

This ensures your application initializes with proper baseline data for generating codes dynamically.

🧩 Usage

Generate unique codes easily within your application.

use ShiftechAfrica\CodeGenerator\ShiftCodeGenerator;

/**
 * Generate a new Shift Code
 * 
 * @return string
 */
public function generateCode()
{
    return (new ShiftCodeGenerator())->generate(); 
    // Optionally pass an integer to set the random length, e.g. ->generate(5)
}

Example Output

1E1NKJDQVW
  • 1 = Year offset
  • E = Month letter
  • 1 = Day
  • NKJDQVW = Random string

🧭 Version Guidance

Version Status Packagist Namespace Release
1.x ✅ Latest shiftechafrica/shift-code-generator ShiftechAfrica\CodeGenerator v1.5.2

🛡️ Security Vulnerabilities

If you discover a security vulnerability, please contact:
📧 Bugs

📄 License

This package is open-source software licensed under the
MIT License