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
Requires
- illuminate/support: ^5.8|^6.0|^7.0|^8.0|^9.0|^10|^11|^12
- webpatser/laravel-uuid: ^3.0|^4.0
README
🚀 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