About this software
About clientpulse
ClientPulse CRM is a Laravel 12 application built on Filament 5, with separate panels at /admin, /account, /sales, /project_manager and /client. It covers client services, projects, meetings, follow-ups and monthly project reports, plus invoicing with PDF download, payments, expenses, sales teams and commission rules. Optional BulkSMSBD SMS payment reminders and Meta WhatsApp Cloud API notifications run through scheduled commands and a queue worker. Access is enforced by model policies and per-role record scoping, with feature tests covering client isolation and inactive-account login. It ships with Docker Compose (app, queue, scheduler, MySQL 8.4) and setup documentation for VPS and Docker deployment.
Why clientpulse
What makes it better
than the alternatives
- 01
Five role-based portals
Admin, Account, Sales, Project Manager and Client panels each have their own resources and widgets, with paths and allowed roles centralised in config/roles.php.
- 02
Read-only, scoped client portal
Clients see only their own invoices, payments, services and project reports, and a feature test checks that another client's invoice returns 404.
- 03
Commission engine
Commission rules, commission records and a CommissionCalculator service let sales teams be paid from billing activity, with a Sales-panel view of earned commissions.
- 04
SMS and WhatsApp automation
BulkSMSBD payment reminders run daily at 10:00, and WhatsApp reminders and follow-up checks run every minute, with logs and settings screens in the admin panel.
- 05
Deployment-ready packaging
Dockerfile and Compose with separate queue and scheduler services, an artisan create-admin command, a .env.example with placeholders, and no hardcoded credentials found in the secret scan.
Clients & Services
- Client service records linked to client users
- Service type
- payment type
- total and advance amounts
- project status
- Admin CRUD with a read-only client view
Projects
- Project management for admins and assigned project managers
- Project meetings
- follow-ups and reports as relation managers
- Project manager widgets: assigned projects
- timeline
- overdue and upcoming follow-ups
- pending actions
Follow-ups & Reports
- Assigned project follow-ups across Admin
- Account
- Sales and Project Manager panels
- In-app notifications for due follow-ups
- Project reports with a reporting-month field
- visible to clients
Invoicing & Payments
- Invoices with line items and an InvoiceCalculator service
- Discount (type and value) and tax fields
- PDF invoice download via dompdf with configurable company branding
- Payment tracking with an observer and queued WhatsApp payment notifications
Expenses
- Expense records with admin create
- edit
- view and list screens
- Expense policy enforcing access
Sales & Commissions
- Sales team management with strong-password validation on the form
- Commission rules and commission records
- Sales dashboard overview widget and read-only sales views of services and commissions
SMS Reminders
- BulkSMSBD integration for payment reminders
- Reminder settings and SMS logs resources
- SMS statistics widget and a test-SMS command
WhatsApp Integration
- Meta WhatsApp Cloud API with approved template support
- Reminders for follow-ups
- meetings and invoice payments
- Admin WhatsApp settings page
- logs and status widget
Security & Administration
- User management by admins
- with role and status not mass-assignable
- Login throttled to 5 attempts per minute; inactive accounts blocked
- Last login time and IP recorded
- Dashboard financial stats widget
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| PHP | — | — | Web, API | 97% |
| SQL | — | — | Database | 2.9% |
| JavaScript | — | — | Front-end | 0.1% |
| CSS | — | — | Styling | 0.1% |
- Primary language
- PHP 8.2+ (Docker image runs PHP 8.3)
- Framework
- Laravel 12 with Filament 5
- Database
- MySQL 8.0+ or MariaDB (Docker Compose uses MySQL 8.4)
- Authentication
- Email and password session login with role-based panel access, account status check, and login throttling (5 attempts per minute)
- Licence
- Single-site
- Screens
- 100
- Database tables
- 21
- Supported languages
- English only (APP_LOCALE=en); no RTL support evidenced
- Browser support
- Not specified in the digest; the admin UI is built on Filament and Tailwind CSS
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB |
| OS | Linux with Docker, or PHP 8.2+ with Composer 2, Node.js 20+ for asset builds, and MySQL 8.0+ or MariaDB | Linux with Docker, or PHP 8.2+ with Composer 2, Node.js 20+ for asset builds, and MySQL 8.0+ or MariaDB |
| Est. monthly hosting | $25 | $25 |
```bash cp .env.example .env # Set DB_PASSWORD and MYSQL_ROOT_PASSWORD in .env, then: docker compose up -d --build db app docker compose exec app php artisan key:generate --force docker compose exec app php artisan migrate --force docker compose exec app php artisan app:create-admin # Optional queue worker and scheduler: docker compose --profile background up -d ```
```bash composer install --no-dev --optimize-autoloader cp .env.example .env php artisan key:generate # Set DB_* values in .env, then: php artisan migrate --force php artisan app:create-admin npm ci && npm run build php artisan queue:work php artisan schedule:work ``` Serve the `public` directory through Apache or Nginx and use HTTPS.
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
Reviewer notes (5 minor)
Small improvements the developer has been told about. None of them stop the software from working.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.