RepairFlow - Repair Shop Management System icon

RepairFlow - Repair Shop Management System

Go to Website
Hot or Not
RepairFlow - Repair Shop Management System

Description

RepairFlow — Repair & Service Shop Management System

I started building RepairFlow after working with a garage owner who tracked everything in paper notebooks. His real problem wasn't the repairs — it was knowing whether a job was profitable after parts were sourced, and whether his mechanics were working on what they were supposed to be working on. No off-the-shelf script handled that combination, so I built this from scratch for real shop conditions.

It's been running live in production and has processed real repair orders, real invoices, and real inventory movements. This isn't a demo-only project.

Live Demo — repairflow.dreamteams.cloud  |  Documentation

Demo accounts — password 123456 for all:

RoleLoginWhat they seeAdmin 0900000001 Everything — settings, reports, all modules Receptionist 0900000002 Front desk: appointments, repair orders, invoices, customers Technician +15550100001 Only their own assigned jobs — no prices, no estimates Accountant 0900000004 Payments, debts, cash book, financial reports only

Three things that make it different from other repair scripts

1. Digital Vehicle Inspection (DVI) with a customer-facing shareable link The technician fills out a checklist — Good / Monitor / Needs Repair — and uploads photos per item. The system generates a unique link you send to the customer via WhatsApp or Zalo. The customer views the full inspection report in their browser with no login. When the customer first opens the link, the system records the timestamp. Items flagged as "Needs Repair" can be converted into an estimate in one click — no re-typing. I haven't seen another repair shop script on any marketplace that does this.

2. Remote estimate approval via a shareable link Send a unique link to the customer. They enter their phone number to verify identity, then approve or decline. No customer account needed. On approval, the estimate converts directly into a repair order with all line items pre-filled. This was designed for situations where the customer drops off the car and you need their sign-off before starting work.

3. One codebase, four shop types Set the shop type once in General Settings — Auto Workshop, Phone Repair, Electronics, or Custom — and the entire system changes: what the "asset identifier" field is called (plate number / IMEI / serial number), whether odometer is shown, and which inspection templates appear. I'm using this same codebase deployed for different clients with different configurations.

Full module list (17 modules)

Repair Orders — status workflow (Received → In Progress → Parts Waiting → Completed → Returned), multiple technician assignment, internal timeline per order, FIFO inventory auto-deduction on completion, one-click invoice generation. The system prevents double-deducting parts from the same order.

Digital Inspection (DVI) — admin-built templates, technician fills on mobile, photo uploads per item, shareable customer link, first-view timestamp recorded, convert flagged items to estimate.

Estimates with Remote Approval — line items with discount and tax, shareable approval link, phone number verification, approved estimate converts to repair order automatically.

Appointments — book with customer, asset, technician, and service notes. Status: Pending → Confirmed → Arrived / Cancelled. Convert to repair order or DVI with one click — details carry over. Technicians have a personal day-by-day schedule view.

Invoices & Payments — auto-generated from completed repair orders, partial payment support, multiple payment accounts (cash, bank, e-wallet), shareable public invoice preview (no customer login needed), print-ready layout.

Inventory — FIFO batch lot tracking, purchase orders with supplier debt, multi-warehouse + storage location support, stock transfer between locations, kit unbundling with cost allocation, low-stock alerts. Product types: Part, Labor/Service, Bundle/Kit.

Customer Debt & Supplier Debt — aging tracking, partial repayments, overdue highlighting.

Cash Book — income entries auto-created from invoice payments, expense entries from supplier payments, manual expense entries, daily summary per account.

CRM / Leads — prospect pipeline, activity log per lead (calls, messages, notes), source tracking, one-click convert to customer.

5 Report types — Revenue & Profit (gross margin, net profit, trend chart), Inventory value & movement, Debt aging, Operations KPIs & technician performance, Customer & asset history. All reports support Today / 7 Days / This Month / This Quarter / Custom date range.

Roles & Permissions — 4 built-in roles + custom role builder. Powered by Spatie Laravel Permission. Technicians see only their assigned orders and never see cost prices or margins.

Web Installer — 7-step browser-based wizard, no SSH or CLI knowledge needed. Checks PHP extensions, creates the database if it doesn't exist, streams the install log live in the browser. Routes are auto-locked after install completes so the installer can't be re-run.

System Audit Log — every login, logout, failed login, create, update, delete, and restore action is recorded with a before/after data diff. Admin-only access.

PWA — installable from the browser, web push notifications for new orders and completions, mobile bottom nav for technicians, sidebar nav for office roles on desktop.

SMTP Config — configurable from admin settings panel, test email from UI, Gmail App Password supported.

Tech stack

  • Backend: Laravel 12, PHP 8.2+
  • Frontend: Livewire v3 (v4.x compatible), Alpine.js, Tailwind CSS v4
  • Database: PostgreSQL 14+ — MySQL is not supported (JSONB columns are used)
  • Auth: Custom provider — staff can log in with phone number or email
  • Permissions: Spatie Laravel Permission v6
  • Audit: owen-it/laravel-auditing v14
  • PDF: barryvdh/laravel-dompdf v3
  • Push: laravel-notification-channels/webpush (VAPID)
  • Architecture: Livewire component → Service interface → Service → Repository interface → Repository → Model. Every interface is bound in service providers — no concrete class injection.

The codebase uses a custom Enum base class (not PHP 8.1 backed enums) that supports values() for select dropdowns and getLabel($value) with locale-aware translation. All user-visible strings go through translation keys — nothing is hardcoded in English or Vietnamese.

What's in the package

  • Full Laravel 12 source code, PHP 8.2+ — no encoded files, no licensing server
  • 17 functional modules, all wired up and working
  • 7-step web installer (browser-based, no CLI)
  • Vietnamese and English language files, fully translated
  • 4 built-in roles with a custom role builder
  • Inspection template seeders for Auto, Phone Repair, and Electronics shop types
  • Demo seeder with realistic data across all modules
  • PWA manifest, service worker, web push keys setup guide
  • Database migrations and role/permission seeders
  • HTML documentation: Installation Guide, User Guide (all 17 modules), Changelog
  • 6 months support

Server requirements

PHP 8.2 or 8.3, PostgreSQL 14–16, Apache 2.4+ or Nginx 1.18+, HTTPS (required for PWA and push notifications). Required PHP extensions: pdo_pgsql, openssl, mbstring, tokenizer, xml, ctype, json, curl, gd, zip, fileinfo, intl. Node.js is not needed at runtime — compiled frontend assets are included.

Tested on: Ubuntu 22.04 VPS, macOS local dev (Herd), Hostinger shared hosting (PHP 8.2).

Who this is for

Shop owners who want to stop tracking jobs on paper or in spreadsheets and need something that actually fits how a repair shop works — not a generic CRM with "repair" bolted on.

Developers and agencies deploying a system for a repair shop client. The Service/Repository architecture and interface binding make it straightforward to extend without touching the core layer.

SaaS builders who want a working multi-role, multi-vertical base to clone per customer or build a proper multi-tenant product on top of.

Changelog

v1.0.0 — 2026-08-26 — Initial release 17 modules: Repair Orders, Digital Inspections (DVI), Appointments, Estimates (remote approval), Invoices, Payments, Customer Debt, Supplier Debt, Cash Book, Inventory (FIFO + Kit Unbundling), CRM/Leads, 5 Reports, Roles & Permissions, System Audit Log, SMTP Config, PWA, Web Installer.

Features

Repair Orders

  • Full status workflow: Received → In Progress → Parts Waiting → Completed → Returned
  • Multiple technician assignment per job; internal timeline logs every status change and note
  • FIFO inventory deduction on completion — parts cannot be double-issued
  • One-click invoice generation from a completed order

Digital Inspection — DVI

  • Admin builds reusable inspection templates with groups and checklist items
  • Technician marks each item: Good / Monitor / Needs Repair; attaches photos per item
  • Shareable customer result link — customer views without logging in
  • System records the moment the customer first views the link
  • Convert flagged inspection items to an estimate in one click

Estimates with Remote Customer Approval

  • Line-item estimates with discount and tax
  • One-click shareable link — send via WhatsApp, Zalo, or SMS
  • Customer verifies with their phone number then approves or declines remotely
  • Approved estimate converts to repair order with no data re-entry

Invoices & Payments

  • Auto-generated from completed repair orders; print-ready layout
  • Shareable public preview link — customer views invoice without logging in
  • Multiple partial payment entries per invoice
  • Configurable payment accounts: cash, bank transfer, e-wallet
  • Status tracking: Unpaid / Partially Paid / Fully Paid

Inventory Management

  • Product types: Single Part, Service/Labor, Bundle/Kit
  • Purchase orders: Draft → Review → Confirmed workflow
  • FIFO batch lot tracking — oldest stock issued first, automatically
  • Multi-warehouse and storage location support
  • Stock transfer between locations with quantity selection
  • Kit unbundling with per-component cost allocation
  • Low-stock alerts when quantity falls below minimum level

Appointments

  • Book with customer, asset, date/time, assigned technician, and service notes
  • Status: Pending → Confirmed → Arrived / Cancelled
  • One-click convert to repair order or digital inspection — all fields pre-filled
  • Technician "My Schedule" — personal day-by-day calendar view

Customers & Assets

  • Individual and corporate customer types (with tax code field for B2B invoicing)
  • Multiple assets per customer; asset identifier uniqueness enforced system-wide
  • Customer detail page: asset list, full invoice history, outstanding balance
  • Shop type configures asset terminology (vehicle / device / equipment) throughout the UI

CRM / Leads

  • Track prospects who enquired but have not visited yet
  • Activity log per lead: calls, notes, Zalo/Facebook messages
  • Source tracking for conversion analysis
  • Status: New → Contacted → Qualified → Converted / Not Interested
  • One-click convert lead to full customer record

Debt Management

  • Customer debt aging summary and per-invoice payment history
  • Supplier debt with overdue highlighting and repayment recording
  • Payment history is immutable — corrections via reverse entry

Cash Book

  • Auto-recorded income entries from invoice payments
  • Auto-recorded expense entries from supplier payments
  • Manual expense entry for other outgoings
  • Summary: Total In / Total Out / Net Balance per payment account and date range

Reports (5 Types)

  • Revenue & Profit — gross margin, net profit, month-on-month trend chart
  • Inventory — stock value, fast/slow movers, movement history, location allocation
  • Debt & Cash Flow — customer aging, top debtors, supplier aging, daily cash flow
  • Operations — repair order KPIs, average handling time, technician performance, appointment conversion rate
  • Customers & Assets — new vs. returning customer ratio, assets due for service, full service history
  • Date filters: Today / 7 Days / Month / Quarter / Custom range

Roles & Permissions

  • 4 built-in roles: Admin, Receptionist, Technician, Accountant
  • Fully customizable additional roles via Admin panel
  • Granular permission matrix — powered by Spatie Laravel Permission v6
  • Technicians see only their own assigned repair orders; never see cost prices or financial reports

System & Administration

  • System audit log — records every login, logout, create, update, delete, and restore with before/after diff
  • General settings: shop name, logo, currency, language (VI/EN), timezone, opening hours, PWA icons
  • SMTP configuration from Admin UI — no server file editing; test send feature included
  • Forgot password — time-limited email reset link (60 minutes)
  • Phone-or-email authentication — staff can log in with either

Web Installer

  • 7-step guided wizard runs entirely in the browser — no SSH or CLI needed
  • Automatic PHP extension check with clear pass/fail display
  • Auto-creates PostgreSQL database if it does not exist
  • Real-time install log streamed to browser during setup
  • Installer routes auto-locked after completion

PWA & Mobile

  • Fully responsive — designed for phones first, scales to tablet and desktop
  • Installable as a native-style app from the browser (no App Store)
  • Web push notifications for new repair orders and completions
  • Bottom navigation bar optimised for technicians on mobile
  • Sidebar navigation for office roles on desktop

Multi-Vertical

  • Shop type setting adapts asset labels, identifier fields, and inspection templates throughout the entire UI
  • Supported verticals: Auto Workshop, Phone Repair, Electronics Repair, Custom
  • Switch vertical at any time from General Settings — no code changes needed

Internationalisation

  • Full Vietnamese and English language support
  • Language can be switched from General Settings
  • All text uses translation keys — easy to add additional languages

Requirements

Server Requirements

  • PHP 8.2 or higher (8.3 recommended)
  • PostgreSQL 14 or higher — MySQL is NOT supported
  • Apache 2.4+ or Nginx 1.18+
  • Composer 2.x
  • HTTPS — required for PWA install prompt and push notifications

Required PHP Extensions

  • pdo
  • pdo_pgsql
  • pgsql
  • openssl
  • mbstring
  • tokenizer
  • xml
  • json
  • curl
  • gd
  • zip
  • fileinfo
  • bcmath
  • intl

The web installer checks all extensions automatically and shows a clear pass/fail list before you proceed.

Directory Permissions

  • storage/ — must be writable by the web server (775 or 777)
  • bootstrap/cache/ — must be writable by the web server (775 or 777)

Optional (Recommended for Production)

  • Supervisor — keeps the queue worker running for background jobs (push notifications, email delivery)
  • Redis — can replace the database cache/queue driver for better performance; the database driver works well out of the box
  • OPcache — PHP opcode cache for faster response times

Mail (Optional — for Forgot Password)

  • Any SMTP provider: Gmail, Mailgun, Postmark, SendGrid, etc.
  • Port 587 (TLS) or 465 (SSL)
  • Configurable from the Admin panel — no server file editing needed

Node.js (Build-time Only)

  • Node.js 18+ and npm 9+ — only required if you want to rebuild frontend assets
  • Pre-compiled assets are included in the package — Node.js is not needed in production

Browser Support

  • Chrome 90+
  • Firefox 90+
  • Safari 14+ (iOS 14+)
  • Edge 90+

PWA / Push Notification Support

  • Android + Chrome: full install and push notification support
  • Desktop Chrome / Edge: full install and push notification support
  • iPhone / Safari: home screen install supported; push notifications require iOS 16.4+

Instructions

Step 1 — Upload Files to Your Server

Extract the downloaded ZIP. Upload the contents of the repairflow/ folder to your server. Point your web server's document root to the public/ subdirectory inside the application.

Example locations:

  • Shared hosting: upload to /public_html/, set document root to /public_html/public/
  • VPS / Dedicated: upload to /var/www/repairflow/, set document root to /var/www/repairflow/public/

Never expose the application root directory directly — only the public/ subfolder should be web-accessible.

Step 2 — Set Directory Permissions

The web server user must have write access to two directories:

chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

If unsure of the web server user, use chmod -R 777 temporarily.

Step 3 — Run the Web Installer

Open your browser and go to https://your-domain.com/install. The installer walks you through 7 steps:

  1. Requirements Check — verifies PHP version and all required extensions. Fix any red items before continuing.
  2. Permissions Check — confirms storage/ and bootstrap/cache/ are writable.
  3. Database Configuration — enter your PostgreSQL host, port, database name, username, and password. Click Test Connection. The installer creates the database automatically if it does not exist.
  4. Site Information — set your shop name, full app URL (including https://), and timezone.
  5. Admin Account — create the primary administrator account (phone number + password required; email optional).
  6. Installation — click Start Installation. Runs migrations, seeds roles and permissions, creates demo accounts, generates APP_KEY, and finalises the .env file. Do not close the tab during this step.
  7. Finish — installation complete. Click Go to Login. The /install route is now permanently locked.

Important: The App URL set in Step 4 must exactly match the URL you access the app from. A mismatch will break PWA push notifications and shareable links.

Step 4 — Post-Install Setup

Complete these steps before inviting your team:

  1. Change the admin password — avatar → My Profile → change password
  2. Delete or reset the three demo accounts (phone: 0900000002, 0900000003, 0900000004) — Admin → Users
  3. Set shop details and upload your logo — Admin → Settings → General
  4. Configure SMTP email for password reset — Admin → Settings → Email (SMTP)
  5. Add product categories, suppliers, warehouses, and payment accounts — Admin → Settings
  6. Add your products and import initial stock via Purchase Orders
  7. Create staff accounts and assign roles — Admin → Users

Nginx Configuration

server {
    listen 80;
    server_name your-domain.com;
    root /var/www/repairflow/public;

    index index.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.(?!well-known).* { deny all; }
}

Troubleshooting

  • Blank white page — check that storage/ and bootstrap/cache/ are writable; open error log at /var/log/nginx/error.log
  • Cannot connect to PostgreSQL — verify PostgreSQL is running (sudo systemctl status postgresql), host/port is correct, and port 5432 is not firewalled
  • Permission denied to create database — run ALTER USER youruser CREATEDB; in psql, or create the database manually first
  • 419 Page Expired — CSRF token expired; refresh the page and retry the installer step
  • 404 for all routes — document root must point to public/; on Apache confirm mod_rewrite is enabled and AllowOverride All is set
  • PWA install prompt does not appear — HTTPS is required; ensure a valid SSL certificate is installed
  • Need to reinstall — delete storage/app/installed and remove the app_installed row from the settings table; the installer becomes accessible again

Need Help?

Open a support ticket via the item page. Include your PHP version (php -v), the exact error message, and which installer step failed.

Authordreamteam
CategoryScripts & Code / PHP Scripts / Management / Business
Price$37
Extended License$111
First ReleaseSep 9, 2026
Last UpdateSep 9, 2026
DatabasePostgreSQL 14, PostgreSQL 15, PostgreSQL 16, PostgreSQL 17
Files included.php, .css, .html, JavaScript .js
Software versionPHP 8.2, PHP 8.3, PHP 8.4, PHP 8.5
Html/css frameworkTailwind CSS, Sass / SCSS
Programming languagePHP, JavaScript

External listing. code.market does not sell this product and does not process payment for it. Pricing, payment, delivery, licensing, refunds, and support are handled by the third-party merchant on its own website. We may earn an affiliate commission from a referral. Details.

Products of the Week.

Submit