Module Overview
The src/Modules directory contains feature modules that sit alongside the main Laravel app. Each module owns a focused business area and usually ships its own service provider, config file, routes, migrations, views, Filament resources, jobs, and integration services.
Most modules follow this shape:
- A
*ServiceProvider.phpthat registers config, migrations, views, routes, commands, Filament panels, and event listeners. - A
config/*.phpfile for module-specific settings. - Optional
routes/web.phpandroutes/api.phpfiles. - Optional
database/Migrationsfiles for tables owned by the module. - Optional
Models,Jobs,Events,Listeners,Services,Support, andFilamentdirectories.
Current Modules
| Module | Primary Purpose |
|---|---|
| CPQ | Scaffold for configure-price-quote functionality. |
| Calendar | Calendar and calendar event APIs, Google Workspace import, invites, and Filament management. |
| Esign | Electronic signature templates, envelopes, provider callbacks, and signing status events. |
| PartnerPortal | Channel partner records, partner users, and partner lead management. |
| PicERP | PIC ERP integration, configurator proxy routes, datasources, and purchase order sync jobs. |
| Quickbooks | QuickBooks Online OAuth credentials, object sync workflows, webhook jobs, and accounting admin tools. |
| Telephony | Non-SMS telephony drivers, call logs, call context, extension assignment, and telephony admin UI. |
| Ticketing | Ticket model, ticket state classes, and the base service ticket table. |
Adding Or Changing A Module
When working in a module, check the service provider first. It tells you which routes, config, migrations, events, commands, and panels are actually registered at runtime.
After changing module config or routes, run:
php artisan optimize:clear
When adding migrations inside a module, keep them under the module's database/Migrations directory so the provider can load them with the rest of the module.