PHPackages                             fuelviews/laravel-sabhero-estimator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fuelviews/laravel-sabhero-estimator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

fuelviews/laravel-sabhero-estimator
===================================

A comprehensive painting project estimator package for Laravel applications with Livewire and FilamentPHP

0.0.15(3mo ago)0455[3 PRs](https://github.com/fuelviews/laravel-sabhero-estimator/pulls)MITPHPPHP ^8.3CI failing

Since Sep 21Pushed 1mo agoCompare

[ Source](https://github.com/fuelviews/laravel-sabhero-estimator)[ Packagist](https://packagist.org/packages/fuelviews/laravel-sabhero-estimator)[ Docs](https://github.com/fuelviews/laravel-sabhero-estimator)[ RSS](/packages/fuelviews-laravel-sabhero-estimator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (17)Versions (19)Used By (0)

Laravel SAB Hero Estimator
==========================

[](#laravel-sab-hero-estimator)

[![Latest Version on Packagist](https://camo.githubusercontent.com/759de898d62cfbddcff0c482d69d763469a4faac64e0399c84f285f4cc1de06a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6675656c76696577732f6c61726176656c2d7361626865726f2d657374696d61746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fuelviews/laravel-sabhero-estimator)[![GitHub Tests Action Status](https://camo.githubusercontent.com/6debb7cd940d03de37e1e1e378397b7b2b7d8c3a5171c7910b53454221e6edec/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6675656c76696577732f6c61726176656c2d7361626865726f2d657374696d61746f722f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/fuelviews/laravel-sabhero-estimator/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/cde6ce126d90bcb1b0c24cc1af55a89f9d6a3191a4bcedd9e85b7e7f536186a7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6675656c76696577732f6c61726176656c2d7361626865726f2d657374696d61746f722f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/fuelviews/laravel-sabhero-estimator/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/b7c9c74c7a5096024da94a00c50b9b1f40177ebc082ea7c3a18a48bb5040357e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6675656c76696577732f6c61726176656c2d7361626865726f2d657374696d61746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fuelviews/laravel-sabhero-estimator)

A comprehensive painting project estimator package for Laravel applications. This package provides a complete solution for collecting project details, calculating estimates, and managing painting project quotes with support for both interior and exterior projects.

Installation
------------

[](#installation)

### 1. Install via Composer

[](#1-install-via-composer)

```
composer require fuelviews/laravel-sabhero-estimator
```

### 2. Run Installation Command

[](#2-run-installation-command)

```
php artisan sabhero-estimator:install
```

This command will:

- Publish configuration file
- Publish and run migrations (including default data)
- Publish assets (house style images)
- Optionally publish views for customization

### 3. Configure Tailwind CSS

[](#3-configure-tailwind-css)

Add the package views to your `tailwind.config.js`:

```
export default {
    content: [
        // ... your existing paths
        './vendor/fuelviews/laravel-sabhero-estimator/resources/**/*.blade.php',
    ],
    // ... rest of your config
}
```

### 4. Setup FilamentPHP Integration

[](#4-setup-filamentphp-integration)

Register the plugin in your FilamentPHP panel provider:

```
use Fuelviews\SabHeroEstimator\Filament\EstimatorPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ... other configuration
        ->plugins([
            EstimatorPlugin::make(),
        ]);
}
```

### 5. Add the Estimator Component

[](#5-add-the-estimator-component)

Add the Livewire component to any Blade template:

```
@livewire('estimator::project-estimator')
```

Installation Options
--------------------

[](#installation-options)

### Clean Installation

[](#clean-installation)

Remove old migrations before installing:

```
php artisan sabhero-estimator:install --fresh
```

### Force Overwrite

[](#force-overwrite)

Overwrite existing files:

```
php artisan sabhero-estimator:install --force
```

### Silent Installation

[](#silent-installation)

For automated deployments:

```
php artisan sabhero-estimator:install --fresh --force --no-interaction
```

### Manual Installation

[](#manual-installation)

For complete control over the installation process:

```
# 1. Publish config
php artisan vendor:publish --tag="sabhero-estimator-config"

# 2. Publish migrations
php artisan vendor:publish --tag="sabhero-estimator-migrations"

# 3. Publish assets (images)
php artisan vendor:publish --tag="sabhero-estimator-assets"

# 4. Run migrations
php artisan migrate

# 5. (Optional) Publish views for customization
php artisan vendor:publish --tag="sabhero-estimator-views"
```

Configuration
-------------

[](#configuration)

The configuration file is published to `config/sabhero-estimator.php`:

### Database Tables

[](#database-tables)

```
'table' => [
    'prefix' => 'estimator_', // Customize table prefix
],
```

### Form Endpoints

[](#form-endpoints)

```
'form_endpoints' => [
    'production_url' => config('forms.forms.free_estimate.production_url'),
    'development_url' => config('forms.forms.free_estimate.development_url'),
],
```

### Media Storage

[](#media-storage)

```
'media' => [
    'disk' => 'public', // Use any Laravel filesystem disk (public, s3, etc.)
],
```

Usage
-----

[](#usage)

### Basic Implementation

[](#basic-implementation)

The package provides a complete multi-step estimation wizard:

1. **Welcome** - Introduction and project type selection
2. **Contact Info** - Customer details collection
3. **Measurements** - Project-specific measurements and options
4. **Review** - Final estimate display and submission

### FilamentPHP Admin Resources

[](#filamentphp-admin-resources)

Access these resources in your admin panel:

- **Projects** - View and manage submitted estimates
- **Rates** - Configure pricing for different surface types
- **Multipliers** - Manage house styles, floors, conditions, coverage
- **Settings** - Customize deviation percentages and labels

### API Usage

[](#api-usage)

```
use Fuelviews\SabHeroEstimator\SabHeroEstimator;

$estimator = app(SabHeroEstimator::class);

// Get surface types for a project
$surfaces = $estimator->getSurfaceTypes('interior', 'partial');

// Get house styles with images
$houseStyles = $estimator->getHouseStyles();

// Get configuration options
$floorOptions = $estimator->getFloorOptions();
$paintConditions = $estimator->getPaintConditionOptions();
$coverageOptions = $estimator->getCoverageOptions();

// Manage settings
$deviationPercentage = $estimator->getDeviationPercentage();
$estimator->setSetting('key', 'value');

// Work with images
$imageUrl = $estimator->getImageUrl('pbg-ranch-1.jpg');
```

### Model Usage

[](#model-usage)

```
use Fuelviews\SabHeroEstimator\Models\Project;
use Fuelviews\SabHeroEstimator\Models\Rate;
use Fuelviews\SabHeroEstimator\Models\Multiplier;

// Query projects
$projects = Project::with(['areas.surfaces'])->latest()->get();
$interiorProjects = Project::where('project_type', 'interior')->get();
$premiumProjects = Project::where('estimated_high', '>', 5000)->get();

// Work with rates and multipliers
$rates = Rate::where('project_type', 'interior')->get();
$houseStyles = Multiplier::houseStyle()->get();
```

Troubleshooting
---------------

[](#troubleshooting)

### Images Not Loading

[](#images-not-loading)

If images are showing duplicate paths:

1. Re-run migrations to fix image paths
2. Ensure images are published to the correct location
3. Check your media disk configuration

```
php artisan migrate:fresh
php artisan vendor:publish --tag="sabhero-estimator-assets" --force
```

### Migration Issues

[](#migration-issues)

```
# Check migration status
php artisan migrate:status | grep estimator

# Clean reinstall
php artisan sabhero-estimator:install --fresh --force
```

### Table Not Found

[](#table-not-found)

```
# Verify tables exist
php artisan tinker --execute="DB::table('estimator_rates')->count()"

# If not found, reinstall
php artisan sabhero-estimator:install --fresh
```

Advanced Topics
---------------

[](#advanced-topics)

### Calculation Logic

[](#calculation-logic)

#### Interior Projects

[](#interior-projects)

**Full Interior:**

```
Base Cost = Total Square Footage × Interior Rate
Extras = Sum of selected extras (as multipliers)
Final Cost = Base Cost × (1 + Extras)

```

**Partial Interior:**

```
Cost = Sum of (Surface Area × Surface Rate) for each surface

```

#### Exterior Projects

[](#exterior-projects)

```
Base Cost = Total Square Footage × Exterior Rate
Style/Floor/Condition = Applied additively
Coverage = Applied multiplicatively
Final Cost = ((Base Cost + Additive Multipliers) × Coverage)

```

#### Estimate Ranges

[](#estimate-ranges)

```
Low Estimate = Final Cost × (1 - Deviation %)
High Estimate = Final Cost × (1 + Deviation %)

```

### Database Schema

[](#database-schema)

The package creates these tables:

- `estimator_projects` - Main project records
- `estimator_areas` - Project areas (partial interior)
- `estimator_surfaces` - Surface details within areas
- `estimator_rates` - Pricing rates with default data
- `estimator_multipliers` - Calculation multipliers with defaults
- `estimator_settings` - Configuration with default settings

### Package Structure

[](#package-structure)

```
src/
├── Commands/           # Installation commands
├── Contracts/          # Interface definitions
├── Filament/          # Admin panel resources
├── Livewire/          # Livewire components
├── Models/            # Eloquent models
└── Services/          # Business logic

database/
├── migrations/        # Schema migrations
└── factories/         # Model factories

resources/
├── views/            # Blade templates
└── images/           # House style images

```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Sweatybreeze](https://github.com/sweatybreeze)
- [Thejmitchener](https://github.com/thejmitchener)
- [Fuelviews](https://fuelviews.com)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance87

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 59.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~26 days

Total

14

Last Release

98d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/dd4a27681d2fe0a911a7c32f6ce4a54822748a6443892a27d7f6c651370559d8?d=identicon)[fuelviews](/maintainers/fuelviews)

---

Top Contributors

[![thejmitchener](https://avatars.githubusercontent.com/u/64335706?v=4)](https://github.com/thejmitchener "thejmitchener (19 commits)")[![sweatybreeze](https://avatars.githubusercontent.com/u/67076156?v=4)](https://github.com/sweatybreeze "sweatybreeze (8 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (5 commits)")

---

Tags

laravellivewirecalculatorfilamentestimatorFuelviewslaravel-sabhero-estimatorpaintingproject-estimation

###  Code Quality

TestsPest

Static AnalysisRector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/fuelviews-laravel-sabhero-estimator/health.svg)

```
[![Health](https://phpackages.com/badges/fuelviews-laravel-sabhero-estimator/health.svg)](https://phpackages.com/packages/fuelviews-laravel-sabhero-estimator)
```

###  Alternatives

[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[spatie/laravel-livewire-wizard

Build wizards using Livewire

4061.0M4](/packages/spatie-laravel-livewire-wizard)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

205144.8k5](/packages/bezhansalleh-filament-google-analytics)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

124139.3k2](/packages/dotswan-filament-map-picker)[laracraft-tech/laravel-useful-additions

A collection of useful Laravel additions!

58109.4k](/packages/laracraft-tech-laravel-useful-additions)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
