Skip to content

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

License

Notifications You must be signed in to change notification settings

SHIFTECH-AFRICA/shift-code-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages