IT-projecten

Buitendienstbeheer

Sanad

De dagplanner van een servicebedrijf: plant de klussen, stuurt de monteurs, legt onderdelen en foto's vast, plant onderhoudscontracten en schrijft de facturen.

  • PHP 8
  • PDO
  • SQLite
  • MySQL
  • Vanilla JS
  • EN · DE · NL · AR
  • RTL
Het hoofdscherm van Sanad met demodata
Een blik binnen · Het hoofdscherm van Sanad met demodata

In het kort

4
rollen: admin, planner, monteur, boekhouder
4
talen met Arabisch (RTL)
1
klik van een klaar karwei naar een factuur
2
databases: SQLite of MySQL

Het doel

Servicebedrijven plannen op papier en telefoon: klussen raken kwijt, onderdelen worden niet gefactureerd en contracten vergeten. Sanad zet de dag op één bord en volgt elke klus van het telefoontje tot de betaling.

Wat het laat zien

Klussen
Genummerde werkorders met statusverloop, checklist, onderdelen, notities en foto's.
Planbord
Eén kolom per monteur: een klus met één klik verplaatsen, de hele dag op één scherm.
Klanten
Meerdere serviceadressen per klant met toegangsnotities.
Contracten
Onderhoudscontracten plannen alle bezoeken zelf; één klik maakt van een bezoek een klus.
Voorraad
Onderdelen met bestelniveau; de voorraad daalt als een onderdeel gebruikt wordt.
Geld
Factuur uit een klare klus, btw, betalingen, ouderdom en rapporten.

Beveiligingsmaatregelen

MaatregelWat het tegenhoudt
Rolcontrole op elke paginaEen monteur die klussen van anderen of het geld ziet.
Prepared statements (PDO)SQL-injectie.
CSRF-token op elk formulierActies vanaf een andere website.
Login-beperkingWachtwoorden raden.
Gecontroleerde uploads en downloadsScripts als bestanden en toegang tot bestanden van andere klanten.

Probeer het zelf

# 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 role

Wat ik geleerd heb

  • Een planbord moet op één scherm passen: de planner beslist in seconden.
  • Factureren vanuit de klus zelf voorkomt verloren geld: elk gebruikt onderdeel wordt een factuurregel.
  • Rollen zijn een bedrijfsfunctie, niet alleen beveiliging: iedereen ziet alleen zijn eigen werk.
Volgende casestudy Jard