Skip to content

Latest commit

 

History

History
153 lines (112 loc) · 4.22 KB

File metadata and controls

153 lines (112 loc) · 4.22 KB

Shiftech Africa Logo

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