phpsamurai/laravel-module-maker

A Laravel package for generating modular HMVC structures with artisan commands

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/phpsamurai/laravel-module-maker

1.0.2 2025-10-09 09:53 UTC

This package is auto-updated.

Last update: 2025-10-09 11:54:03 UTC


README

πŸ—οΈ Laravel Module Maker

Transform Your Laravel App into a Modular Masterpiece

License: MIT Laravel PHP Livewire

Build scalable, maintainable Laravel applications with self-contained HMVC modules.

One command. Complete module. Zero configuration.

Quick Start β€’ Features β€’ Commands β€’ Examples β€’ Support

🎯 What Is This?

Laravel Module Maker is a powerful package that generates complete, production-ready modules for your Laravel applications using the HMVC (Hierarchical Model-View-Controller) pattern.

The Problem

Traditional Laravel App          Your App After Module Maker
─────────────────────           ──────────────────────────────
app/                            modules/
β”œβ”€β”€ Controllers/                β”œβ”€β”€ Product/
β”‚   β”œβ”€β”€ UserController              β”œβ”€β”€ Controllers/
β”‚   β”œβ”€β”€ ProductController           β”œβ”€β”€ Models/
β”‚   β”œβ”€β”€ OrderController             β”œβ”€β”€ Views/
β”‚   └── ... (100+ files)            β”œβ”€β”€ Routes/
β”œβ”€β”€ Models/                         β”œβ”€β”€ Tests/
β”‚   └── ... (50+ files)             └── ... (self-contained)
└── ... (messy!)                β”œβ”€β”€ Order/
                                β”‚   └── ... (self-contained)
❌ Hard to maintain             └── User/
❌ Tight coupling                   └── ... (self-contained)
❌ Difficult to scale           
                                βœ… Easy to maintain
                                βœ… Loose coupling
                                βœ… Scales effortlessly

The Solution

php artisan make:module Product --type=full

You get: A complete, self-contained module with API, UI, database, tests, and more. In 2 seconds.

✨ Features

πŸš€ Module Types πŸ”§ Automation πŸ“¦ Management 🎨 UI/UX
Full-Stack Auto-register providers List modules Tailwind CSS
API-only Auto-update composer Delete safely Alpine.js
Livewire-only Auto-add navigation Health checks Responsive
With relationships Auto-register routes Dashboard Real-time validation

πŸͺ„ Magical Features

  • 🧭 Auto Navigation: Adds links to your layout automatically
  • πŸ₯ Health Monitoring: 10-point health check system
  • πŸ“Š Dashboard: Beautiful overview of all modules
  • πŸ”— Relationships: Scaffold BelongsTo and HasMany relationships
  • ⚑ Zero Config: Everything works out of the box
  • πŸ›‘οΈ Safe Deletion: Double confirmation + automatic cleanup

πŸ“‹ Requirements

PHP      >= 8.2
Laravel  >= 12.0
Composer >= 2.0
Livewire >= 3.0  (optional, for Livewire modules)

πŸš€ Installation

composer require phpsamurai/laravel-module-maker

Optional: For Livewire modules:

composer require livewire/livewire

That's it! Ready to use. No configuration needed.

⚑ Quick Start

Create Your First Module

php artisan make:module Blog --type=full

Run Migrations

php artisan migrate

Access Your Module

  • 🌐 Web UI: http://your-app.test/blogs
  • πŸ”Œ API: http://your-app.test/api/blogs

See the Magic

php artisan module:dashboard

Done! Your module is ready with UI, API, database, tests, and navigation. πŸŽ‰

🎯 Module Types

Type Command What You Get Use Case
🌟 Full-Stack
Recommended
--type=full

β€’ API Controller
β€’ Livewire Components
β€’ Models & DB
β€’ Both Web & API
β€’ 18 files

Complete features needing both UI and API

πŸ”Œ API
--type=api

β€’ API Controller
β€’ Models & DB
β€’ Bootstrap Views
β€’ API Resources
β€’ 15 files

Backend services, REST APIs, microservices

⚑ Livewire
--type=livewire

β€’ Livewire Components
β€’ Tailwind Views
β€’ Web Routes
β€’ No Backend
β€’ 8 files

UI for existing APIs, frontend features

πŸ“š All Commands

🎨 Module Creation

# Interactive mode (prompts for type)
php artisan make:module Product

# Full-Stack module (API + Livewire)
php artisan make:module Product --type=full

# API module (backend only)
php artisan make:module Product --type=api

# Livewire module (UI only)
php artisan make:module Product --type=livewire

# With relationships
php artisan make:module-with-relations OrderItem \
  --type=full \
  --belongs-to=Order \
  --belongs-to=Product \
  --has-many=Review

# With options
php artisan make:module Product --force --no-tests --no-seeders

πŸ“Š Module Management

# Interactive dashboard
php artisan module:dashboard

# List all modules
php artisan list:modules

# Check module health
php artisan module:health Product

# Check all modules health
php artisan module:health

# Delete module (with confirmation)
php artisan delete:module Product

# Force delete (no confirmation)
php artisan delete:module Product --force

βš™οΈ Customization

# Publish configuration
php artisan vendor:publish --tag=module-maker-config

# Publish stub templates
php artisan vendor:publish --tag=module-maker-stubs

πŸ—οΈ What Gets Generated

Full-Stack Module Structure

modules/Product/
β”‚
β”œβ”€β”€ πŸ“ Controllers/
β”‚   └── ProductApiController.php       # RESTful API with search, filter, pagination
β”‚
β”œβ”€β”€ πŸ“ Livewire/
β”‚   β”œβ”€β”€ Index.php                      # List with real-time search & delete
β”‚   β”œβ”€β”€ Create.php                     # Create form with validation
β”‚   └── Edit.php                       # Edit form with validation
β”‚
β”œβ”€β”€ πŸ“ Models/
β”‚   └── Product.php                    # Eloquent model with scopes
β”‚
β”œβ”€β”€ πŸ“ Views/
β”‚   └── livewire/
β”‚       β”œβ”€β”€ index.blade.php            # Tailwind styled list view
β”‚       β”œβ”€β”€ create.blade.php           # Tailwind styled form
β”‚       └── edit.blade.php             # Tailwind styled form
β”‚
β”œβ”€β”€ πŸ“ Routes/
β”‚   β”œβ”€β”€ web.php                        # Livewire routes (/products)
β”‚   └── api.php                        # API routes (/api/products)
β”‚
β”œβ”€β”€ πŸ“ Http/
β”‚   β”œβ”€β”€ Resources/
β”‚   β”‚   β”œβ”€β”€ ProductResource.php        # JSON resource transformer
β”‚   β”‚   └── ProductCollection.php      # JSON collection wrapper
β”‚   β”œβ”€β”€ Middleware/                    # Ready for custom middleware
β”‚   └── Requests/                      # Ready for form requests
β”‚
β”œβ”€β”€ πŸ“ Database/
β”‚   β”œβ”€β”€ Migrations/
β”‚   β”‚   └── 2025_xx_xx_create_product_table.php
β”‚   β”œβ”€β”€ Seeders/
β”‚   β”‚   └── ProductSeeder.php          # Sample data seeder
β”‚   └── Factories/
β”‚       └── ProductFactory.php         # Factory for testing
β”‚
β”œβ”€β”€ πŸ“ Tests/
β”‚   β”œβ”€β”€ Feature/
β”‚   β”‚   └── ProductTest.php            # HTTP endpoint tests
β”‚   └── Unit/
β”‚       └── ProductTest.php            # Model unit tests
β”‚
β”œβ”€β”€ πŸ“ Providers/
β”‚   └── ProductServiceProvider.php     # Auto-registered provider
β”‚
└── πŸ“ Config/                         # Module-specific config

Total: 18 files, ~35 KB, Production-ready

πŸ”₯ Automatic Features

What Happens Automatically

When you run php artisan make:module Product --type=full:

βœ… File Generation

  • 18 files created
  • All properly namespaced
  • PSR-4 compliant
  • Modern PHP 8.2+ syntax

βœ… Registration

  • Service provider registered
  • Routes registered (web & API)
  • Livewire components registered
  • View namespaces registered

βœ… Configuration

  • Composer autoload updated
  • composer dump-autoload runs
  • All caches cleared
  • Migrations loaded

βœ… UI Enhancement

  • Navigation link added
  • Layout created (if needed)
  • Views registered
  • Components ready

What You Need to Do

php artisan migrate

That's it! Everything else is automatic. πŸŽ‰

πŸ’» Code Examples

Generated API Controller

namespace Modules\Product\Controllers;

class ProductApiController
{
    public function index(Request $request): JsonResponse
    {
        $query = Product::query();
        
        // πŸ” Built-in search
        if ($request->has('search')) {
            $query->where('name', 'like', "%{$request->search}%");
        }
        
        // 🎯 Built-in filtering
        if ($request->has('is_active')) {
            $query->where('is_active', $request->is_active);
        }
        
        // πŸ“„ Built-in pagination
        $products = $query->paginate(15);
        
        return response()->json(new ProductCollection($products));
    }
    
    // βœ… store(), show(), update(), destroy() included
}

Generated Livewire Component

namespace Modules\Product\Livewire;

use Livewire\Component;
use Livewire\WithPagination;

class Index extends Component
{
    use WithPagination;
    
    public $search = '';
    public $confirmingDeletion = false;
    
    // πŸ” Real-time search
    protected $queryString = ['search'];
    
    // πŸ—‘οΈ Delete with confirmation
    public function delete($id)
    {
        $this->confirmingDeletion = true;
        $this->deletingId = $id;
    }
    
    public function render()
    {
        $products = Product::query()
            ->when($this->search, fn($q) => 
                $q->where('name', 'like', "%{$this->search}%")
            )
            ->latest()
            ->paginate(15);
            
        return view('products::livewire.index', [
            'products' => $products
        ]);
    }
}

Generated Routes

// Web Routes (Livewire UI)
Route::get('/products', Index::class)->name('products.index');
Route::get('/products/create', Create::class)->name('products.create');
Route::get('/products/{product}/edit', Edit::class)->name('products.edit');

// API Routes (JSON)
Route::prefix('products')->group(function () {
    Route::get('/', [ProductApiController::class, 'index']);
    Route::post('/', [ProductApiController::class, 'store']);
    Route::get('/{product}', [ProductApiController::class, 'show']);
    Route::put('/{product}', [ProductApiController::class, 'update']);
    Route::delete('/{product}', [ProductApiController::class, 'destroy']);
});

🌟 Advanced Features

1. 🧭 Automatic Navigation

Navigation links are added automatically!

php artisan make:module Product --type=full

Before:

<nav>
  <a href="/">Home</a>
  <a href="/orders">Orders</a>
</nav>

After:

<nav>
  <a href="/">Home</a>
  <a href="/orders">Orders</a>
  <a href="/products">Products</a>  ← Added automatically!
</nav>

Features:

  • βœ… Auto-adds for Livewire/Full-Stack modules
  • βœ… Auto-removes when module deleted
  • βœ… No duplicates
  • βœ… Maintains formatting

2. πŸ“Š Interactive Dashboard

See everything at a glance!

php artisan module:dashboard

Output:

╔══════════════════════════════════════════════════════════════╗
β•‘           πŸ—οΈ  LARAVEL MODULE MAKER DASHBOARD πŸ—οΈ             β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ“Š MODULE STATISTICS

  Total Modules:        5
  Full-Stack Modules:   3
  API Modules:          2
  Livewire Modules:     0
  Total Routes:         45
  Total Files:          85
  Total Size:           250.5 KB

πŸ“¦ YOUR MODULES

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Module   β”‚ Type       β”‚ Routes β”‚ Health  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Category β”‚ Full-Stack β”‚ 9      β”‚ βœ… 100% β”‚
β”‚ Order    β”‚ Full-Stack β”‚ 9      β”‚ βœ… 100% β”‚
β”‚ Product  β”‚ Full-Stack β”‚ 9      β”‚ βœ… 100% β”‚
β”‚ Tag      β”‚ API        β”‚5       β”‚ βœ… 100% β”‚
β”‚ UserUI   β”‚ Livewire   β”‚ 3      β”‚ βœ… 100% β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⚑ QUICK ACTIONS
  β€’ Create:  php artisan make:module {name} --type=full
  β€’ Health:  php artisan module:health {name}
  β€’ Delete:  php artisan delete:module {name}

3. πŸ₯ Health Check System

Monitor your modules' health!

# Check single module
php artisan module:health Product

# Check all modules
php artisan module:health

10-Point Health Check:

  1. βœ… Has controllers/components
  2. βœ… Has models
  3. βœ… Has routes
  4. βœ… Has views
  5. βœ… Has migrations
  6. βœ… Has tests
  7. βœ… Has service provider
  8. βœ… Provider registered
  9. βœ… Routes registered
  10. βœ… Namespace configured

Health Scores:

  • 🟒 90-100%: Excellent
  • 🟑 70-89%: Needs attention
  • πŸ”΄ Below 70%: Critical

4. πŸ”— Relationship Scaffolding

Generate modules with relationships built-in!

php artisan make:module-with-relations OrderItem \
  --type=full \
  --belongs-to=Order \
  --belongs-to=Product \
  --has-many=Review

Automatically generates:

In Model:

public function order()
{
    return $this->belongsTo(\Modules\Order\Models\Order::class);
}

public function product()
{
    return $this->belongsTo(\Modules\Product\Models\Product::class);
}

public function reviews()
{
    return $this->hasMany(\Modules\Review\Models\Review::class);
}

In Migration:

$table->foreignId('order_id')->constrained()->onDelete('cascade');
$table->foreignId('product_id')->constrained()->onDelete('cascade');

🌈 Real-World Examples

Example 1: E-commerce Platform

# Step 1: Create product catalog
php artisan make:module Product --type=full
php artisan migrate

# Step 2: Create orders with relationships
php artisan make:module-with-relations Order \
  --type=full \
  --has-many=OrderItem

# Step 3: Create order items with relationships
php artisan make:module-with-relations OrderItem \
  --type=full \
  --belongs-to=Order \
  --belongs-to=Product

# Step 4: View dashboard
php artisan module:dashboard

# Done! You have:
# βœ… Product catalog with UI and API
# βœ… Order management with relationships
# βœ… Order items linked to orders and products
# βœ… All navigation links added automatically

Example 2: Blog Platform

# Backend API
php artisan make:module Post --type=api
php artisan make:module Comment --type=api

# Frontend UIs
php artisan make:module BlogPublic --type=livewire
php artisan make:module BlogAdmin --type=livewire

# Result: Separate backend and multiple frontends!

Example 3: SaaS Application

# Core modules
php artisan make:module User --type=full
php artisan make:module Subscription --type=full
php artisan make:module Payment --type=full

# Feature modules
php artisan make:module Analytics --type=api
php artisan make:module Reporting --type=api

# UI modules
php artisan make:module Dashboard --type=livewire
php artisan make:module Settings --type=livewire

# Check everything
php artisan module:dashboard

πŸ”Œ API Endpoints

Generated Endpoints

Method Endpoint Features
GET /api/products List, search, filter, paginate, sort
POST /api/products Create with validation
GET /api/products/{id} Show single resource
PUT /api/products/{id} Update with validation
DELETE /api/products/{id} Delete resource

Example API Usage

# List products
curl http://your-app.test/api/products

# Search
curl "http://your-app.test/api/products?search=laptop"

# Filter
curl "http://your-app.test/api/products?is_active=1"

# Paginate
curl "http://your-app.test/api/products?page=2"

# Create
curl -X POST http://your-app.test/api/products \
  -H "Content-Type: application/json" \
  -d '{"name":"Laptop","description":"Gaming laptop"}'

# Update
curl -X PUT http://your-app.test/api/products/1 \
  -H "Content-Type: application/json" \
  -d '{"name":"Updated Laptop"}'

# Delete
curl -X DELETE http://your-app.test/api/products/1

Response Format:

{
  "data": [
    {
      "id": 1,
      "name": "Product Name",
      "description": "Description",
      "is_active": true,
      "created_at": "2025-10-09T12:00:00.000000Z"
    }
  ],
  "meta": {
    "total": 100,
    "per_page": 15,
    "current_page": 1
  }
}

🎨 Livewire Components

Interactive UI Components

Index Component:

  • πŸ” Real-time search
  • πŸ“„ Pagination
  • πŸ—‘οΈ Delete with confirmation modal
  • βœ… Success/error messages
  • πŸ“± Responsive design

Create Component:

  • πŸ“ Form with validation
  • ⚑ Real-time validation
  • 🎯 Wire:model binding
  • βœ… Success redirect

Edit Component:

  • πŸ“ Pre-filled form
  • ⚑ Real-time validation
  • πŸ’Ύ Update functionality
  • βœ… Success redirect

Example Livewire View

<div class="max-w-7xl mx-auto px-4">
    <!-- Search -->
    <input wire:model.live="search" 
           placeholder="Search products..." 
           class="w-full px-4 py-2 border rounded-lg">
    
    <!-- Results -->
    <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mt-4">
        @foreach($products as $product)
            <div class="bg-white p-6 rounded-lg shadow">
                <h3>{{ $product->name }}</h3>
                <p>{{ $product->description }}</p>
                
                <button wire:click="delete({{ $product->id }})"
                        class="text-red-600 hover:text-red-800">
                    Delete
                </button>
            </div>
        @endforeach
    </div>
    
    <!-- Pagination -->
    {{ $products->links() }}
</div>

πŸ§ͺ Testing

Generated Tests

Feature Test:

public function test_product_can_be_created(): void
{
    $response = $this->post(route('api.products.store'), [
        'name' => 'Test Product',
        'description' => 'Test description',
    ]);

    $response->assertStatus(201);
    $this->assertDatabaseHas('products', [
        'name' => 'Test Product'
    ]);
}

Unit Test:

public function test_product_active_scope(): void
{
    Product::factory()->create(['is_active' => true]);
    Product::factory()->create(['is_active' => false]);
    
    $this->assertCount(1, Product::active()->get());
}

Livewire Test:

public function test_can_create_product_via_livewire(): void
{
    Livewire::test(Create::class)
        ->set('name', 'New Product')
        ->call('save')
        ->assertRedirect(route('products.index'));
}

Run Tests

# All tests
php artisan test

# Specific module
php artisan test modules/Product/Tests/

# With coverage
php artisan test --coverage

βš™οΈ Configuration

Publish Config

php artisan vendor:publish --tag=module-maker-config

Available Options

return [
    // Module directory
    'path' => 'modules',
    
    // Namespace prefix
    'namespace' => 'Modules',
    
    // Default module type
    'default_type' => 'api',
    
    // Auto-register routes
    'auto_register_routes' => true,
    
    // Route types to register
    'route_registration' => 'both', // 'web', 'api', or 'both'
    
    // Generation options
    'generate_tests' => true,
    'generate_seeders' => true,
    'generate_factories' => true,
];

Customize Stubs

php artisan vendor:publish --tag=module-maker-stubs

Stubs copied to resources/stubs/module-maker/

Available variables:

Variable Output Use
{{module}} Product Class names
{{moduleLower}} product Variables
{{moduleSnake}} product Tables
{{modulePlural}} Products Labels
{{namespace}} Modules Namespaces
{{moduleNamespace}} Modules\Product Full namespace

🚨 Troubleshooting

❓ Class Not Found
composer dump-autoload
php artisan optimize:clear

Verify bootstrap/providers.php contains your service provider.

❓ Routes Not Working
php artisan route:clear
php artisan route:list --name=products

Check service provider is registered.

❓ Livewire Component Not Found
composer require livewire/livewire
php artisan optimize:clear

Ensure @livewireStyles and @livewireScripts in layout.

❓ Views Not Found
php artisan view:clear

Use namespace notation: products::livewire.index

❓ Navigation Link Not Added

Check resources/views/components/layouts/app.blade.php exists. The package creates it automatically for first Livewire module.

πŸ“– Best Practices

βœ… DO

  • Use PascalCase for module names: ProductCatalog, UserManagement
  • Plan relationships before creating modules
  • Run health checks before deployment
  • Use dashboard to monitor modules
  • Test modules after generation
  • Backup before deleting modules
  • Use Full-Stack for complete features

❌ DON'T

  • Use snake_case for module names
  • Skip migrations after creating modules
  • Delete without confirmation in production
  • Ignore health warnings
  • Create without planning structure
  • Use --force without backups

🎯 Use Cases

🏒 Enterprise

  • User Management
  • Role & Permissions
  • Audit Logging
  • Reporting
  • Admin Dashboards
  • Multi-tenancy

πŸ›’ E-commerce

  • Product Catalog
  • Shopping Cart
  • Order Processing
  • Payment Gateway
  • Inventory
  • Customer Portal

πŸ“± SaaS

  • Subscription Management
  • Billing
  • Analytics
  • User Dashboards
  • API Services
  • Webhooks

πŸ“ CMS

  • Blog Posts
  • Pages
  • Media Library
  • Comments
  • Categories
  • Tags

πŸŽ“ Education

  • Courses
  • Lessons
  • Quizzes
  • Student Management
  • Progress Tracking
  • Certificates

πŸ₯ Healthcare

  • Patient Records
  • Appointments
  • Prescriptions
  • Billing
  • Reports
  • Notifications

πŸš€ Performance

Production Optimization

# Cache everything
php artisan route:cache
php artisan config:cache
php artisan view:cache

# Optimize autoloader
composer install --optimize-autoloader --no-dev

Module Performance

  • ⚑ Fast Generation: 1-3 seconds per module
  • ⚑ Lazy Loading: Resources loaded only when needed
  • ⚑ Efficient Autoloading: PSR-4 compliant
  • ⚑ Zero Runtime Overhead: Only used during generation
  • ⚑ Optimized Queries: Includes pagination and filtering

πŸ“Š Command Reference

Complete Command List

Command Description Example
make:module Create module php artisan make:module Product --type=full
make:module-with-relations Create with relationships php artisan make:module-with-relations OrderItem --belongs-to=Order
list:modules List all modules php artisan list:modules
module:dashboard Show dashboard php artisan module:dashboard
module:health Check health php artisan module:health Product
delete:module Delete module php artisan delete:module Product

Command Options

Option Available On Description
--type={full|api|livewire} make:module Module type
--belongs-to={Model} make:module-with-relations BelongsTo relationship
--has-many={Model} make:module-with-relations HasMany relationship
--force make:module, delete:module Skip confirmations
--no-tests make:module Skip test generation
--no-seeders make:module Skip seeder generation
--no-factories make:module Skip factory generation

πŸŽ“ Learning Path

Beginner

  1. Install the package
  2. Create your first module: php artisan make:module Blog --type=full
  3. Run migrations: php artisan migrate
  4. Visit in browser: /blogs
  5. Explore the generated files

Intermediate

  1. Create multiple modules
  2. Use relationships: make:module-with-relations
  3. Customize stubs
  4. Monitor with dashboard
  5. Run health checks

Advanced

  1. Publish configuration
  2. Customize all stubs
  3. Create custom module types
  4. Integrate with CI/CD
  5. Build complex architectures

🀝 Contributing

We welcome contributions!

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/amazing
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push branch: git push origin feature/amazing
  5. Open Pull Request

Development

git clone https://github.com/phpsamurai/laravel-module-maker.git
cd laravel-module-maker
composer install

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ’¬ Support

Need Help?

πŸ“§ Email β€’ πŸ› Issues β€’ πŸ“š Wiki

πŸ“ˆ Changelog

Version 1.0.2 (October 2025)

πŸŽ‰ Initial Release

Core Features:

  • βœ… Three module types (Full-Stack, API, Livewire)
  • βœ… Interactive CLI with type selection
  • βœ… 27 customizable stub templates
  • βœ… Complete HMVC structure generation

Automation:

  • βœ… Auto-register service providers
  • βœ… Auto-update composer autoload
  • βœ… Auto-register routes (web & API)
  • βœ… Auto-register Livewire components
  • βœ… Auto-add navigation links
  • βœ… Auto-create Livewire layout

Module Management:

  • βœ… List modules with statistics
  • βœ… Interactive dashboard
  • βœ… Health check system (10-point)
  • βœ… Safe module deletion
  • βœ… Automatic cleanup

Advanced Features:

  • βœ… Relationship scaffolding
  • βœ… BelongsTo and HasMany support
  • βœ… Foreign key generation
  • βœ… Navigation management
  • βœ… Health monitoring

Developer Experience:

  • βœ… Beautiful CLI output
  • βœ… Helpful tips and suggestions
  • βœ… Comprehensive error messages
  • βœ… Progress indicators
  • βœ… Double confirmations for safety

πŸ—ΊοΈ Roadmap

Coming Soon

  • πŸ”„ Module update command
  • πŸ“¦ Module export/import
  • πŸ”— Module dependency graph
  • 🌐 Multi-language support
  • 🎨 More UI frameworks (Bootstrap, Vuetify)
  • 🧩 Plugin system
  • πŸ“Š Advanced analytics
  • πŸ” Permission scaffolding
  • πŸš€ Performance dashboard
  • πŸ“± Mobile-first templates

⭐ Show Your Support

If this package helps you build better Laravel applications:

⭐ Star on GitHub πŸ’¬ Leave Feedback

Laravel Module Maker - Your magic wand for building modular Laravel applications.

Transform monolithic apps into modular masterpieces with a single command.