Preview Lumina | Field Service Management Laravel Script With Offline Technician Portal
Lumina | Field Service Management for Trades Businesses
Lumina FSM is a self-hosted field service platform for plumbing, HVAC, electrical and appliance repair companies. The office schedules work on a drag-and-drop dispatch board. Technicians work their day from an installable phone app that keeps working with no signal at all. Invoices build themselves from the work the technician recorded on site.
It runs on ordinary shared hosting. There is no monthly SaaS fee, no per-technician charge, and no third-party account you are forced to open before it will start.
The problem it solves
Most small trades businesses run on a paper diary, a group chat and a spreadsheet. Jobs get double-booked, the office cannot say where anyone is, and half the work never reaches an invoice because nobody wrote it down. Lumina closes that loop: what the technician records on the job is what the customer gets billed for.
Built for a technician with no signal
This is the part most field service scripts get wrong. A basement, a plant room, a rural site: the connection goes and the app becomes useless.
Lumina’s technician portal writes every action to the device first, then syncs. Status changes, hours, parts fitted, photos and the customer’s signature are all captured offline and replayed when the signal comes back. Replay is idempotent, so a flaky connection cannot duplicate a job’s hours. The whole day works from an aeroplane.
What is included
- Dispatch board. One lane per technician, a proportional day timeline and a week grid. Drag a job from the unscheduled queue onto a lane to schedule it. An optional map shows where every technician and today’s jobs actually are.
- Jobs. Full lifecycle with an enforced status machine, line items, photos, notes, a customer signature and an append-only audit trail of every status change and where it came from.
- Technician portal. Installable progressive web app. Today, Upcoming and History; one-tap status changes; camera capture; signature pad; optional push alerts; and an offline queue that replays safely.
- Customers and sites. Multiple service addresses per customer, access notes, per-site contacts and full job history.
- Contracts. Repeat work such as quarterly services and annual inspections. Books the next visit and nothing further ahead, so a change of plan only ever means moving one job.
- Customer portal. A private link with no account and no password. Customers follow their visit live, download invoices, and can ask the office for a different time. Requests never change the board on their own.
- Invoicing. Generated from the job’s line items, emailed with a PDF, with part payments, a running balance and void handling.
- Parts and stock. Optional inventory with stock movements, reorder levels and automatic depletion when a technician fits a part.
- Route suggestions. Proposes a better order for a technician’s day that a dispatcher accepts or dismisses. Nothing moves by itself.
- Email templates. Rewrite any email the product sends from the admin, with a live preview and a test send.
- Marketing. Send an update to the customers who agreed to hear from you, with consent recorded per customer and one-click unsubscribe.
- Reports. Throughput, average job time, punctuality per technician, revenue by service and pipeline mix.
- Team and roles. Administrators see everything. Dispatchers schedule work but never see billing. Technicians see only the jobs assigned to them.
Multi-tenant, and safely so
Run it for one company or many. Tenant isolation is enforced at the model layer by a global scope that fails closed: with no tenant context, a query returns nothing rather than everything. That is the opposite of the usual approach, where a forgotten where clause leaks another company’s data. There is a dedicated test suite for exactly this.
Every string is translatable
All interface copy lives in language files. Translate the product by copying one folder and editing it. Nothing is hardcoded in the views, including validation messages, email subjects and PDF labels.
Requirements
- PHP 8.4 or newer, with the usual Laravel extensions
- MySQL 8 or MariaDB 10.6, or PostgreSQL
- Composer and Node.js, to install dependencies and build the assets once
- Ordinary shared hosting is enough. A cron entry drives the scheduled work.
Third-party services and costs
Every integration below is optional and the product runs fully without all of them. Where you use one, you sign up in your own name and that provider bills you directly. None of these fees are included in the item price, and this item is not affiliated with any of them.
- Maps. OpenStreetMap by default. No API key, no account, no billing. Point it at any XYZ tile provider if you prefer.
- Push notifications. Generated by your own install as a keypair. No service to sign up for.
- Email. Ordinary SMTP, or any HTTP mail API that accepts a JSON send body, such as Resend, Mailgun, SendGrid, Postmark or Brevo. No provider is hardcoded and there is no default endpoint.
- SMS. Optional, through your own Twilio account. Off by default; with no credentials configured, messages are written to the log so you can see the feature working before opening an account.
- Route optimization. Optional OSRM endpoint. Without one, the suggestion falls back to straight-line distance and still orders the day sensibly.
Documentation
A single self-contained manual ships in the package, with a sidebar you can jump around, a quick start written for a non-technical buyer, an expected outcome on every setup step, labeled code blocks, screenshots of every screen, and a section on changing the logo and colors.
Live demo
Demo: https://fsm.foundrcode.com
- Administrator: [email protected] / LuminaDemo!
- Dispatcher: [email protected] / LuminaDemo!
- Technician: [email protected] / LuminaDemo!
Sign in as the technician on a phone, or in a narrow browser window. It is a separate installable interface, not a shrunken version of the admin. Switch your browser to offline and keep working: that is the feature.
Note on live updates: the dispatch board can update itself over WebSockets, which needs a long-running process. On shared hosting that is not available and the board is refresh-based instead. Every other feature works on shared hosting, and the demo above runs on exactly that.
Support
Six months of support is included and can be extended. Questions through the item comments or the support tab get a reply within one business day.
Note: If you are having trouble with Lumina | Field Service Management Laravel Script With Offline Technician Portal Nulled free Download, try to disable AD blocking for the site or try another Web Browser. If disabling AD blocker or change Web Browser not help to you please contact us.