Initial commit

This commit is contained in:
2026-03-09 09:18:21 +00:00
commit b4355fee17
191 changed files with 25537 additions and 0 deletions

94
src/app/Modules/README.md Normal file
View File

@@ -0,0 +1,94 @@
# Module System
This Laravel application uses a modular architecture to organize features into self-contained modules.
## Creating a New Module
Use the artisan command to scaffold a complete module:
```bash
php artisan make:module ProductCatalog
```
This creates:
- **Model**: `app/Modules/ProductCatalog/Models/ProductCatalog.php`
- **Controller**: `app/Modules/ProductCatalog/Controllers/ProductCatalogController.php`
- **Routes**: `app/Modules/ProductCatalog/routes.php`
- **Views**: `app/Modules/ProductCatalog/Views/`
- **Migration**: `database/migrations/YYYY_MM_DD_HHMMSS_create_product_catalogs_table.php`
- **Filament Resource**: `app/Filament/Resources/ProductCatalogResource.php`
- **Tests**: `tests/Modules/ProductCatalog/ProductCatalogTest.php`
## Module Structure
```
app/Modules/
└── ProductCatalog/
├── Models/
│ └── ProductCatalog.php
├── Controllers/
│ └── ProductCatalogController.php
├── Views/
│ ├── index.blade.php
│ ├── create.blade.php
│ ├── edit.blade.php
│ └── show.blade.php
└── routes.php
```
## Registering Module Routes
After creating a module, register its routes in `routes/web.php`:
```php
require __DIR__.'/../app/Modules/ProductCatalog/routes.php';
```
## Module Features
Each module includes:
**CRUD Operations** - Full Create, Read, Update, Delete functionality
**Authentication** - Routes protected by auth middleware
**Filament Admin** - Auto-generated admin panel resource
**Blade Views** - Responsive Tailwind CSS templates
**Tests** - Pest test suite for module functionality
**Permissions** - Ready for role-based access control
## Example Usage
```bash
# Create an Inventory module
php artisan make:module Inventory
# Run migrations
php artisan migrate
# Register routes in routes/web.php
require __DIR__.'/../app/Modules/Inventory/routes.php';
# Access at: http://localhost:8080/inventory
# Admin panel: http://localhost:8080/admin/inventories
```
## Adding Permissions
To add module-specific permissions:
```php
// In database/seeders/RolePermissionSeeder.php
$permissions = [
'inventory.view',
'inventory.create',
'inventory.edit',
'inventory.delete',
];
```
## Best Practices
1. **Keep modules self-contained** - Each module should be independent
2. **Use namespaces** - Follow the `App\Modules\{ModuleName}` pattern
3. **Test your modules** - Run `php artisan test` after creating
4. **Document changes** - Update module README if you modify structure
5. **Use Filament** - Leverage the admin panel for quick CRUD interfaces