Field service management
Sanad
The daily work organiser for a service company: it plans the jobs, sends the technicians, records parts and photos, plans maintenance contracts and writes the invoices.
At a glance
- 4
- roles: admin, dispatcher, technician, accountant
- 4
- languages with Arabic RTL
- 1
- click from a done job to an invoice
- 2
- databases: SQLite or MySQL
The goal
Service companies plan on paper and phones: jobs get lost, parts are not billed and contracts are forgotten. Sanad puts the day on one board and follows every job from the call to the payment.
What it shows
- Jobs
- Numbered work orders with status workflow, checklist, parts, notes and photos.
- Dispatch board
- One column per technician: move a job with one click, the whole day on one screen.
- Customers
- Several service addresses per customer with access notes.
- Contracts
- Maintenance contracts that plan all visits by themselves; one click turns a visit into a job.
- Stock
- Parts with reorder level; stock goes down when a part is used.
- Money
- Invoice from a finished job, VAT, payments, ageing and reports.
Security controls
| Control | What it stops |
|---|---|
| Role checks on every page | A technician seeing other technicians' jobs or the money. |
| Prepared statements (PDO) | SQL injection. |
| CSRF token on every form | Actions sent from another site. |
| Login throttling | Password guessing. |
| Checked uploads and downloads | Scripts as files and access to other customers' files. |
Try it yourself
# PHP 8.1+ with pdo_sqlite (or MySQL). No framework, no Composer, no build step.
php -S 127.0.0.1:8080 # or upload the folder to any PHP hosting
# open http://127.0.0.1:8080/install.php → SQLite or MySQL → the first admin account
php seed.php # optional: demo data with users for every roleWhat I learned
- A dispatch board must fit one screen: the dispatcher decides in seconds.
- Billing from the job itself stops lost money: every part used becomes an invoice line.
- Roles are a business feature, not only security: each person sees only their work.