Everything below exists as a screen you log into and use. Each
item names the address of that screen in the application - so
it's clear this is not an announcement.
An order is opened while the client is still on the phone
If the form asks for ten fields, the dispatcher fills it
in later - and "later" means a scrap of paper. So only
the client and a description are required. Type defaults
to "service" and priority to "normal" until told
otherwise; the deadline and the technician sit folded
away below, for whoever already knows them.
A new client is entered in the same form -
no second screen, no interrupting the call.
screen: /app/nalozi/nov
Everyone sees their own work, not everyone else's
A technician opens the list and sees his own orders -
including the ones where he is only helping out, marked
as such. Dispatchers and administrators see every order
in the company.
Deadline and priority can only be changed by whoever
schedules the work. A technician isn't shown those two as
editable fields - otherwise "urgent" would mean whatever
each person decides it means.
screen: /app/nalozi
Several people on a job, exactly one answerable
Big jobs go out two or three handed. When everyone is
assigned, nobody is - and the order stays open because
each of them assumes the other will close it.
The crew is picked when the work is scheduled, but
there is exactly one holder. That rule
lives in the database itself, not in screen code: two
holders on one order physically cannot be recorded.
screen: /app/planiranje
The contract and the agreed response time sit with the client
"How many hours do we have to be there?" is usually known
by one person in the company - which becomes a problem
the week they're on holiday.
Contract type, validity, coverage and the agreed response
time in hours sit on the client's record. The response
time also shows as a column while work is being
scheduled - right where you decide whose job goes first.
screen: /app/klijenti
Nothing is ever deleted
A deleted client takes the history of every order done
for them along with it. So nothing is deleted: clients,
units of equipment, vehicles, external repair partners,
units of measure and mailing lists are
archived and can be brought back.
An order isn't deleted either - it is cancelled,
with a reason that is mandatory and
stays on record. Only a dispatcher or an administrator
may cancel.
screens: /app/klijenti · /app/oprema
Equipment is tracked unit by unit
Not "12 readers", but twelve units, each with its own
label. Your internal label is unique across the company -
including archived units, so a number can never be issued
twice.
Each unit carries the manufacturer's serial number, make
and model, location, condition (in use / in for repair /
scrapped) and which client it is installed at.
screen: /app/oprema
Also when you're not the one repairing it
A unit goes off to an authorised repair shop and vanishes
from view - while the client still calls you.
So there's a directory of external repair partners and a
company-wide decision on who services what. A forwarded
order gets its own state - "forwarded",
neither finished nor on hold - and a "waiting on an
external service" row appears in scheduling,
with the number of days. The report that
comes back is written onto that same order.
screen: /app/spoljni-servisi
Signing in on a phone without typing a password
Nobody types a sixteen-character password standing in the
rain. An administrator prints a QR code for that person;
scanning it with the phone opens the sign-in.
The code is valid for 72 hours, can be used
once, and issuing a new one immediately kills
the old - a lost printout stops working that second. The
code is drawn inside the application itself: no data goes
to a third party to produce the image.
screen: /app/korisnici