Free trial
Colour

The driver app, shifts, photos and signatures

Use the driver app: start a shift, accept and advance a job, send photos and a signature, and share your location.

For
DriverDispatcherAdministrator
Hosting
Any hosting
Devices
All devices
Business
Towing

Checked against Pop Street Dispatch 0.1.0

The driver app is one screen with five tabs along the bottom: Jobs, Shift, Check, Fuel and Expense. You will be able to start a shift, work a job from acceptance to delivery, add photos and a signature, and see what the app has sent and what still waits.

Before you start #

  • A driver account with the driver role, linked to a driver record. A dispatcher, manager or owner can act for a driver by adding the driver id (as) to the request.
  • A truck that is active and free of critical defects.
  • A phone that allows location for this site. The app shows a message in words when the phone blocks location or cannot give a position.

The status bar #

The bar at the top stays on every tab.

  • It says On shift (with the start time) or Off shift, and adds Trip while a trip runs.
  • It says whether your location is shared. Location is shared during a shift or a trip, and at no other time. Keep the screen open while you drive, because the phone pauses sharing when the screen is off.
  • A pill shows how many items wait to send and how many could not be sent, or "Everything is sent". Press it to open the Outbox. See "Working offline and the Outbox".
  • A note appears when the phone is offline. Your work is saved on the phone and sends when the signal returns.

Steps #

The Jobs tab of the driver app on a phone with a job showing its next-step button, directions, call, Add photos and Get signature buttons.
The Jobs tab. The numbers match the steps below.
The Shift tab of the driver app on a phone with the End shift button.
The Shift tab starts and ends the shift.
  1. Open the Shift tab, choose your truck and press Start shift. A truck marked blocked cannot be chosen. When your business asks for a vehicle check first, the tab says "Do the vehicle check before you start" and offers Open the vehicle check. See "The driver check".
  2. Open the Jobs tab. Jobs dispatched to you appear under My jobs. Press Refresh to update the list. Without a signal the app shows the list it saved earlier, with the time it was saved.
  3. Press Accept job. The timeline records the acceptance once, even if you press it twice.
  4. Move the job forward one step at a time with the button for the next step: I am on my way, I have arrived, Vehicle loaded, Delivered. After Delivered the job shows "Waiting for the office to complete this job", because the dispatcher completes it.
  5. Use Directions to open the route and Call to phone the customer.
  6. Press Add photos to take or choose photos, add an optional caption and press Send photos. At least one photo is needed.
  7. Press Get signature, let the customer sign inside the box with a finger or a pen, enter the signer's name and press Save signature. Clear starts the box again.
  8. Open the Shift tab and press End shift when the work is done, then Yes, end shift. Finish or hand over your job first.

The Shift tab also holds your trip and your odometer reading. See "Odometer and trips from the driver app".

Photos #

  • Photos from a phone camera are redrawn at up to 1600 pixels on the long side, so they stay small on the phone and on the way to the office.
  • JPEG, PNG and WebP are accepted, up to 10 MB each. A request carries up to 60 MB in total.
  • When some photos fail the checks and others pass, the good ones are saved and the answer lists the refusals. When every photo fails, the app says "No photo could be accepted".
  • A photo sent without a signal waits in the Outbox with the job and goes when the signal returns.

Signatures #

The signature goes to the office as a PNG image of up to about 300 KB, with the signer's name when you enter one. The timeline shows "Customer signature" and the name.

Proof records for photos and signatures #

Each photo and signature gets a record with its SHA-256 hash, size, the uploader and driver, and the time. The same details go into the business account's hash-chained audit log. A stored file that changes later stops matching its hash, so the record shows the change.

Technical details
  • The route is /driver and holds one screen with the tabs jobs, shift, check, fuel, expense and outbox. The help registry lists the tabs as driver (Jobs), driver-shift, driver-check, driver-fuel, driver-expense and driver-outbox.
  • Endpoints: GET /driver/me, GET /driver/jobs, POST /driver/shift (on, truck_id), POST /driver/jobs/{id}/accept, POST /driver/jobs/{id}/status, POST /driver/jobs/{id}/photos, POST /driver/jobs/{id}/signature, POST /driver/location.
  • Photos go as multipart form data under photos, with an optional caption (the default is "Driver photo") and optional geo_lat and geo_lng. Positions outside the valid range, and zero with zero, are dropped.
  • The app sends a position about every 20 seconds during a shift or a trip. Each fix carries a device id and a sequence number, so a fix sent twice is stored once.
  • Files are saved as files/<tenant>/<24 random hex characters>.<jpg, png or webp> in the data folder. A failed database write removes the files written for it. See "Request limits and file storage".
  • A job that belongs to another driver answers not_found (404). A caller with no driver record answers no_driver (409).
  • Shift start and end, acceptance and every status step write audit entries.

If something goes wrong #

  • "This sign-in has no driver record. Ask the office to link it." (no_driver, 409): the account has no active driver record. Ask your dispatcher.
  • "Your sign-in ended. Sign in again, then press Send again." (401): sign in, then open the Outbox and press Send again.
  • "This phone is blocking location. Allow location for this site in the browser settings." Change the setting and reopen the app.
  • "No photo could be accepted. Photos must be JPEG, PNG or WebP, up to 10 MB each." (upload_failed, 422): choose other photos.
  • "The business has used all its file storage. Tell the office." (storage_quota_exceeded, 403): the owner clears old files or raises the limit.
  • "The office has switched this off." (feature_not_licensed) or "The office licence is read only right now. Tell the office." (licence_read_only): ask your manager to restore the licence.
  • A step out of order gets a message that names the next step. Press that button.