serhiikorniienko / laravel-kuchi
A plug-and-play Laravel package for collecting user feedback and bug reports
Requires
- php: ^8.2
- laravel/framework: ^10.0|^11.0|^12.0
- livewire/livewire: ^3.0
Requires (Dev)
- laravel/pint: ^1.22.1
- orchestra/testbench: ^8.0|^9.0|^v10.0
- phpstan/phpstan: ^2.1.16
- phpunit/phpunit: ^10.0|^11.0
- rector/rector: ^2.0.16
- symfony/var-dumper: ^7.2.6
README
In Japanese, "kuchi" (口), pronounced "koo-chee" directly translates to "mouth".
A comprehensive Laravel package for collecting user feedback and bug reports with a beautiful, interactive UI built with Livewire.
Features
- 📝 Feedback Collection - Allow users to submit feature requests, improvements, and general feedback
- 🐛 Bug Reporting - Comprehensive bug reporting with steps to reproduce, browser info, and priority levels
- 👍 Voting System - Users can upvote/downvote feedback to prioritize features
- 🎛️ Admin Dashboard - Manage all feedback and bug reports with status updates
- 🎨 Beautiful UI - Modern, responsive interface built with Tailwind CSS and Livewire
- 🔐 Authentication - Only authenticated users can submit feedback (configurable)
- 📊 Analytics - Track feedback trends and bug report statistics
- ⚙️ Configurable - Extensive configuration options for customization
Installation
Install the package via Composer:
composer require serhiikorniienko/laravel-kuchi
Run the migrations or publish (optional) them to your application:
php artisan migrate
php artisan vendor:publish --tag="kuchi-migrations"
Publish the configuration file (optional):
php artisan vendor:publish --tag="kuchi-config"
Publish the views for customization (optional):
php artisan vendor:publish --tag="kuchi-views"
Configuration
The configuration file config/kuchi.php
allows you to customize:
- Middleware for routes
- Admin users who can access the dashboard
- Categories for feedback
- Bug report priorities
- Status options
- Pagination settings
Usage
Basic Usage
To use the feedback and bug report forms, just provide the link for your users to access the feedback page. Add a button or any interactive element of your choice.
By default, the feedback page is available at /feedback
(configurable via route prefix).
If you are using Livewire you can add the feedback components to any Blade template:
<!-- Feedback and Bug Report Forms --> <livewire:feedback-form /> <livewire:bug-report-form /> <!-- Display Feedback List --> <livewire:feedback-list />
Admin Dashboard
Access the admin dashboard at /feedback/admin
(configurable via route prefix).
Admin users are defined in the configuration file:
'admin_users' => [ 'admin@example.com', 1, // user ID ],
Routes
The package registers the following routes:
GET /feedback
- Main feedback pageGET /feedback/admin
- Admin dashboard
Models
The package provides three main models:
SerhiiKorniienko\LaravelKuchi\Models\Feedback
- User feedbackSerhiiKorniienko\LaravelKuchi\Models\BugReport
- Bug reportsSerhiiKorniienko\LaravelKuchi\Models\FeedbackVote
- Voting system
Customization
Views
Publish the views to customize the UI:
php artisan vendor:publish --tag="kuchi-views"
Views will be published to resources/views/vendor/feedback/
.
Configuration
Key configuration options:
return [ 'middleware' => ['web', 'auth'], 'route_prefix' => 'feedback', 'admin_users' => [ // Add admin emails or user IDs ], 'categories' => [ 'feature_request' => 'Feature Request', 'improvement' => 'Improvement', 'question' => 'Question', 'other' => 'Other', ], 'bug_priorities' => [ 'low' => 'Low', 'medium' => 'Medium', 'high' => 'High', 'critical' => 'Critical', ], ];
Requirements
- PHP 8.2+
- Laravel 11.0+
- Livewire 3.0+
Screenshots
Feedback and Bug-report Forms
Nice modal forms for submitting feedback and bug reports.
Feedback List
Interactive list with voting, filtering, and search functionality.
Admin Dashboard
Comprehensive dashboard for managing all feedback and bug reports.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This package is open-sourced software licensed under the MIT license.
Support
If you encounter any issues or have questions, please open an issue on GitHub.