IT-Projekte

Außendienst-Management

Sanad

Der Tagesplaner für eine Servicefirma: Er plant die Aufträge, schickt die Techniker, erfasst Teile und Fotos, plant Wartungsverträge und schreibt die Rechnungen.

  • PHP 8
  • PDO
  • SQLite
  • MySQL
  • Vanilla JS
  • EN · DE · NL · AR
  • RTL
Die Hauptseite von Sanad mit Demo-Daten
Ein Blick hinein · Die Hauptseite von Sanad mit Demo-Daten

Auf einen Blick

4
Rollen: Admin, Disponent, Techniker, Buchhaltung
4
Sprachen mit Arabisch (RTL)
1
Klick vom fertigen Auftrag zur Rechnung
2
Datenbanken: SQLite oder MySQL

Das Ziel

Servicefirmen planen mit Papier und Telefon: Aufträge gehen verloren, Teile werden nicht berechnet und Verträge vergessen. Sanad legt den Tag auf eine Tafel und begleitet jeden Auftrag vom Anruf bis zur Zahlung.

Was es zeigt

Aufträge
Nummerierte Arbeitsaufträge mit Status-Ablauf, Checkliste, Teilen, Notizen und Fotos.
Einsatztafel
Eine Spalte je Techniker: Auftrag mit einem Klick verschieben, der ganze Tag auf einem Bildschirm.
Kunden
Mehrere Einsatzadressen je Kunde mit Zugangshinweisen.
Verträge
Wartungsverträge planen alle Besuche selbst; ein Klick macht aus einem Besuch einen Auftrag.
Lager
Teile mit Mindestbestand; der Bestand sinkt, wenn ein Teil verwendet wird.
Geld
Rechnung aus dem fertigen Auftrag, MwSt., Zahlungen, Altersstruktur und Berichte.

Sicherheitskontrollen

KontrolleWas sie verhindert
Rollenprüfung auf jeder SeiteEin Techniker sieht Aufträge anderer Techniker oder das Geld.
Prepared Statements (PDO)SQL-Injection.
CSRF-Token in jedem FormularAktionen, die von einer anderen Website kommen.
Login-DrosselungPasswort-Raten.
Geprüfte Uploads und DownloadsSkripte als Dateien und Zugriff auf Dateien anderer Kunden.

Selbst ausprobieren

# 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

Was ich gelernt habe

  • Eine Einsatztafel muss auf einen Bildschirm passen: Der Disponent entscheidet in Sekunden.
  • Abrechnung direkt aus dem Auftrag verhindert verlorenes Geld: Jedes verwendete Teil wird eine Rechnungszeile.
  • Rollen sind eine Geschäftsfunktion, nicht nur Sicherheit: Jeder sieht nur seine Arbeit.
Nächste Fallstudie Jard