Download the PHP package a2zwebltd/laravel-feature-voting without Composer
On this page you can find all versions of the php package a2zwebltd/laravel-feature-voting. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download a2zwebltd/laravel-feature-voting
More information about a2zwebltd/laravel-feature-voting
Files in a2zwebltd/laravel-feature-voting
Package laravel-feature-voting
Short Description A portable Laravel engine for feature requests, voting, and status updates — with optional Blade and Livewire UI layers.
License MIT
Homepage https://github.com/a2zwebltd/laravel-feature-voting
Informations about the package laravel-feature-voting
Laravel Feature Voting
A portable Laravel engine for feature requests, one-vote-per-user voting, and status updates — with optional Blade and Livewire UI layers.
Drop a feature-voting board into any Laravel app. Users submit ideas, vote (one vote per user, toggleable), and comment. Admins update the status (under_review → planned → in_progress → completed or declined) and submitters are emailed when it changes.
Three layers, each opt-in from the one below:
- Engine — models, migrations, service, events, policies, mailables. Always works.
- HTTP + Blade — controllers, routes, Tailwind-styled views. Works in any Laravel + Tailwind app.
- Livewire — reactive vote button, inline commenting, sortable board. Auto-registers only when
livewire/livewireis installed.
Screenshots
| Board | Submit a request |
|---|---|
![]() |
![]() |
| Admin list | Status-change email |
|---|---|
![]() |
![]() |
Features
- ✅ One-vote-per-user enforced at the database level (unique index).
- ✅ Submission, voting (toggle), commenting — all through a single
FeatureVotingService. - ✅ Industry-standard status workflow:
under_review,planned,in_progress,completed,declined. - ✅ Admin response field on each request + styled admin comment thread.
- ✅ Email the configured admin on every new submission.
- ✅ Email the submitter every time the status changes — the "closed loop" that research shows is the #1 retention driver for feedback tools.
- ✅ Pluggable admin role — the consumer app defines a Gate; no hard-coded
is_admincolumn. - ✅ Events you can listen to:
FeatureRequestCreated,FeatureRequestVoted,FeatureRequestCommented,FeatureRequestStatusChanged. - ✅ Publishable config, migrations, views, and mail templates.
- ✅ Portable: no assumptions about the User model, theme, or UI library.
Requirements
- PHP
^8.2 - Laravel
^12.0 | ^13.0 - Tailwind CSS in the consumer app (if using the shipped Blade views — not required if you build your own UI)
livewire/livewire^3.0 | ^4.0(optional — only for the Livewire layer)
Installation
Publish and migrate:
Optionally publish the views if you want to restyle them:
Configuration
config/feature-voting.php:
.env:
Define who is an admin
The package delegates the "is this user an admin?" decision to a Gate the consumer app defines:
If no gate is registered, the package falls back to comparing $user->email to config('feature-voting.admin_email'). If neither is set, nobody is an admin (fail-closed).
Point the views at your own layout
The shipped pages extend a layout you control. In your published config/feature-voting.php:
Usage
Drop-in: use the shipped pages
After install you get a working board at /feature-requests. Add a link from your app's nav:
Embed Blade components into your own pages
Use the Livewire components
Call the engine directly
Listen for events
Data model
feature_requests — id, user_id (nullable), title, slug unique, description, status, votes_count, comments_count, admin_response, admin_responded_at, metadata (json), timestamps, soft deletes.
feature_request_votes — id, feature_request_id, user_id, timestamps. Unique (feature_request_id, user_id).
feature_request_comments — id, feature_request_id, user_id (nullable), body, is_admin_response, timestamps, soft deletes.
Disabling the HTTP layer
If you want to wire your own routes:
Then use the service directly and/or mount the Blade components into your own controllers.
Testing
Security Vulnerabilities
If you discover a security vulnerability, please report it responsibly through private communication with the maintainers.
License
MIT. See LICENSE.
Credits
Developed and maintained by the A2Z WEB crew:
- Dawid Makowski
- Website: https://a2zweb.co/
- GitHub: https://github.com/a2zwebltd/



