Skip to main content

Equipment and tool checkout

Drills, laptops, radios, keys, measuring devices: things that go out and should come back. Each item gets a label; scanning it records whether it went out or came back, and red stops a conflict (the item is already out, reserved, or in repair).

How it works#

  1. Stick your own label with a unique code on each item.
  2. The storekeeper scans the label. A form asks: Checkout or Return.
  3. Your API records the movement if it makes sense and answers green, or red with the reason.

What your API checks#

  • The item exists and its current state allows this action (you can't return what is already in stock).
  • For a checkout: the item isn't reserved or in repair.
  • Who has it. See "Recording the borrower" below.

Example answers#

{ "status": "ok", "title": "Checked out", "message": "Hilti drill #14 · due back Friday" }
{ "status": "failed", "title": "Already out", "message": "Taken by Team North on 3 Sep" }

Recording the borrower#

Forms only offer pick-one choices, and scanning identifies the item, not the person. Pick one of these:

  • A short list of borrowers, such as teams or vehicles, as a second form field. Works when the list is small.
  • Scan the person first. The storekeeper scans the borrower's badge, then the items. Your API remembers the last badge scanned by this device (deviceId) and attaches the following items to it.
  • One phone per person or vehicle, so the deviceId is the borrower.

Settings#

The form below is shown with every scan (showOnce: false), which is what you want: a form answered only once would silently apply the same choice to every later scan.

{  "app": "scan2check.com",  "settings": {    "apiUrl": "https://api.example.com/equipment/scan",    "symbols": [      "qr",      "code128"    ],    "formData": {      "schema": {        "action": {          "title": "What is happening?",          "type": "string",          "enum": [            "Checkout",            "Return"          ]        }      },      "showOnce": false    }  }}

Open in configurator — loads these settings so you can put in your own API URL and generate the QR code.

Watch out for#

  • Manufacturer barcodes don't work for this. The EAN on a drill's box names the product, so every drill of that model has the same code. Print your own labels with unique codes (QR or Code 128).
  • The first choice is preselected. The form opens with Checkout already picked, so a hurried tap on submit records a checkout. Your API can catch the obvious case: an item that is already out can't be checked out again.
  • Labels wear off. On tools, use durable labels and keep the code in text beside it, so it can be typed in the back office when a label no longer scans.