mavrickdeveloper / ticksya
Advanced FilamentPHP Support Ticketing System
1.0.0
2024-11-17 12:16 UTC
Requires
- php: ^8.2
- filament/filament: ^3.2
- illuminate/contracts: ^11.0
- laravel/framework: ^11.0
- spatie/laravel-package-tools: ^1.16.0
Requires (Dev)
- laravel/pint: ^1.13
- nunomaduro/collision: ^8.1
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpunit/phpunit: ^11.0
README
A comprehensive, customizable support ticketing system built for FilamentPHP with advanced notification, workflow, and reporting capabilities.
Features
- 🌐 Multi-language Support
- Automatic language detection
- User language preferences
- Easy translation management
- Built-in English and Spanish translations
- 🎨 Highly Customizable
- Custom fields support
- Industry-specific adaptations
- Flexible workflows
- Configurable notifications
- 📊 Advanced Reporting
- Custom metric calculations
- Flexible filtering
- Multiple export formats
- Scheduled reporting
- 🔔 Smart Notifications
- Customizable triggers
- Multiple channels
- Template support
- Scheduled notifications
- ⚙️ Workflow Management
- Custom workflow definitions
- Transition validation
- State management
- Automated actions
Requirements
- PHP 8.2+
- Laravel 11.x
- FilamentPHP 3.2+
Installation
composer require mavrickdeveloper/ticksya
Configuration
- Publish the configuration file:
php artisan vendor:publish --tag="ticksya-config"
- Publish the translations (optional):
php artisan vendor:publish --tag="ticksya-translations"
- Run the migrations:
php artisan migrate
- Configure your environment variables in
.env
:
# Core Settings TICKSYA_QUEUE_CONNECTION=redis TICKSYA_CACHE_DRIVER=redis # Notification Settings TICKSYA_NOTIFICATIONS_ENABLED=true TICKSYA_NOTIFICATION_CHANNELS=["mail","slack"] # Workflow Settings TICKSYA_DEFAULT_WORKFLOW=standard TICKSYA_WORKFLOW_VALIDATION=true # Language Settings TICKSYA_DEFAULT_LOCALE=en TICKSYA_FALLBACK_LOCALE=en TICKSYA_AUTO_DETECT_LOCALE=true TICKSYA_USE_BROWSER_LOCALE=true TICKSYA_SHOW_LANGUAGE_SELECTOR=true
Usage
Basic Setup
- Add the necessary traits to your User model:
use Ticksya\Traits\HasTickets; use Ticksya\Traits\HasTicketNotifications; class User extends Authenticatable { use HasTickets, HasTicketNotifications; }
- Register the plugin in your Panel provider:
use Ticksya\TicksyaPlugin; class AdminPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ->plugins([ TicksyaPlugin::make(), ]); } }
Multi-language Support
- Enable language support in your models:
use Ticksya\Traits\HasLocalization; class YourModel extends Model { use HasLocalization; }
- Add the language selector to your Filament resources:
use Ticksya\Filament\Components\LanguageSelector; class YourResource extends Resource { public function getHeaderActions(): array { return [ LanguageSelector::make(), ]; } }
- Add new languages:
- Create translation file:
resources/lang/{locale}/ticksya.php
- Add locale to config:
config/ticksya.php
- Create translation file:
Custom Fields
- Define custom fields in config:
// config/ticksya.php 'custom_fields' => [ 'healthcare' => [ 'patient_id' => [ 'type' => 'string', 'required' => true, 'validation' => 'required|string|max:255', ], ], ],
- Use custom fields in your tickets:
$ticket->setCustomField('patient_id', 'P12345');
Custom Workflows
- Create a workflow class:
use Ticksya\Workflows\BaseWorkflow; class HealthcareWorkflow extends BaseWorkflow { public function configure(): void { $this->addState('triage') ->addState('diagnosis') ->addState('treatment') ->addTransition('triage', 'diagnosis') ->addTransition('diagnosis', 'treatment'); } }
- Register the workflow:
// config/ticksya.php 'workflows' => [ 'healthcare' => HealthcareWorkflow::class, ],
Customization
Regional Adaptations
- Timezone configurations
- Date/time format support
- Localization options
- Currency settings
Industry-Specific Features
- Healthcare (HIPAA compliance)
- E-commerce support
- Financial services
- Real estate management
Workflow Management
- Custom state definitions
- Transition rules
- Automated actions
- SLA monitoring
Reporting Capabilities
- Custom metrics
- Scheduled reports
- Export formats
- Dashboard widgets
Security
- Role-based access control
- Custom field validation
- Secure data storage
- Audit logging
Contributing
Please see CONTRIBUTING.md for details.
License
The MIT License (MIT). Please see License File for more information.