kejubayer/bd-address-manager

Laravel package for managing Bangladesh address hierarchy (Division, District, Upazila, Union) with multilingual support, helper functions, and JSON seeder.

Maintainers

Package info

github.com/kejubayer/bd-address-manager

pkg:composer/kejubayer/bd-address-manager

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-04-29 09:40 UTC

This package is auto-updated.

Last update: 2026-04-29 09:41:29 UTC


README

A complete Laravel package for managing Bangladesh hierarchical address system:

Division โ†’ District โ†’ Upazila โ†’ Union

Supports multilingual (English + Bangla), slug system, helper functions, caching, and full Laravel integration.

๐Ÿš€ Features

  • ๐Ÿ“ Complete Bangladesh address hierarchy (Division โ†’ District โ†’ Upazila โ†’ Union)
  • ๐ŸŒ English + Bangla support
  • ๐Ÿ”— Slug-based system (SEO friendly)
  • โšก Eloquent relationships
  • ๐ŸŒฑ JSON-based seeder system
  • ๐Ÿงฉ Global helper functions
  • ๐Ÿ” Search across all levels
  • ๐Ÿ“ฆ Dropdown helpers (UI ready)
  • ๐Ÿง  Full address generator (EN + BN)
  • ๐Ÿงน Cache optimized queries
  • ๐Ÿ›  Artisan install command
  • ๐Ÿ”Œ Extensible API-ready structure

๐Ÿ“ฆ Installation

Install via Composer:

composer require kejubayer/bd-address-manager

โš™๏ธ Quick Setup (Recommended)

Run full installation in one command:

php artisan bd-address:install

๐Ÿ”ฅ Fresh Install (Reset DB)

php artisan bd-address:install --fresh --seed

๐Ÿ—ƒ๏ธ Manual Setup (Optional)

If you want full control:

1. Publish migrations

php artisan vendor:publish --tag=bd-address-migrations

2. Publish seeders

php artisan vendor:publish --tag=bd-address-seeders

3. Publish JSON data

php artisan vendor:publish --tag=bd-address-data

4. Run migrations

php artisan migrate

5. Run seeder

php artisan db:seed --class=BdAddressSeeder

๐Ÿ—ƒ๏ธ Database Structure

๐Ÿ“ bd_divisions

  • id
  • name_en
  • name_bn
  • slug

๐Ÿ“ bd_districts

  • id
  • division_id
  • name_en
  • name_bn
  • slug

๐Ÿ“ bd_upazilas

  • id
  • district_id
  • name_en
  • name_bn
  • slug

๐Ÿ“ bd_unions

  • id
  • upazila_id
  • name_en
  • name_bn
  • slug

๐Ÿง  Usage (Helper Functions)

๐Ÿ“ Get all divisions

bd_divisions();

๐Ÿ“ Get districts by division

bd_districts($divisionId);

๐Ÿ“ Get upazilas by district

bd_upazilas($districtId);

๐Ÿ“ Get unions by upazila

bd_unions($upazilaId);

๐ŸŒ Full Address Generator

English

echo bd_full_address($unionId);

Output:

Mirpur Union, Mirpur, Dhaka, Dhaka

Bangla

echo bd_full_address_bn($unionId);

๐Ÿ” Search System

bd_search('mirpur');

Returns:

[
  'divisions' => [],
  'districts' => [],
  'upazilas' => [],
  'unions' => []
]

๐Ÿ”— Find by Slug

bd_find_by_slug('division', 'dhaka');
bd_find_by_slug('district', 'dhaka');
bd_find_by_slug('upazila', 'mirpur');
bd_find_by_slug('union', 'mirpur-union');

๐Ÿ“ฆ Dropdown Helpers (UI Ready)

Divisions

bd_division_dropdown();

Districts

bd_district_dropdown($divisionId);

Upazilas

bd_upazila_dropdown($districtId);

Unions

bd_union_dropdown($upazilaId);

โšก Eloquent Usage

use Kejubayer\BdAddress\Models\Division;

$divisions = Division::with('districts.upazilas.unions')->get();

๐ŸŒฑ JSON Seeder Structure

[
  {
    "name_en": "Dhaka",
    "name_bn": "เฆขเฆพเฆ•เฆพ",
    "districts": [
      {
        "name_en": "Dhaka",
        "name_bn": "เฆขเฆพเฆ•เฆพ",
        "upazilas": [
          {
            "name_en": "Mirpur",
            "name_bn": "เฆฎเฆฟเฆฐเฆชเงเฆฐ",
            "unions": [
              {
                "name_en": "Mirpur Union",
                "name_bn": "เฆฎเฆฟเฆฐเฆชเงเฆฐ เฆ‡เฆ‰เฆจเฆฟเงŸเฆจ"
              }
            ]
          }
        ]
      }
    ]
  }
]

๐Ÿ›  Artisan Command

Install Package

php artisan bd-address:install

Fresh Install

php artisan bd-address:install --fresh --seed

โšก Performance Features

  • Cached division data (24h)
  • Indexed slug columns
  • Eager loading support
  • Optimized helper queries

๐Ÿ”Œ Service Provider

Auto-loaded via:

Kejubayer\BdAddress\BdAddressServiceProvider::class

๐Ÿ“Œ Requirements

  • PHP >= 7.4
  • Laravel >= 8

๐Ÿš€ Roadmap

  • REST API support
  • Admin CRUD panel
  • AJAX cascading dropdown UI
  • Geo-location integration
  • Redis cache layer
  • Google Maps integration

๐Ÿ‘จโ€๐Ÿ’ป Author

Khondoker Eftakhar Jubayer Laravel Developer ERP & SaaS Builder Open Source Contributor

โญ Support

If you like this package, consider giving it a โญ on GitHub.