Every asset.
Accounted for.
A clear view of your equipment, its movement, and the work ahead — from tag observation to confirmed custody. A working software-first RFID demonstration: real workflows, simulated reader events, no physical hardware connected.
Sign in to workspaceHow a scan becomes a decision
A tag observation alone never proves entry or exit. Every simulated scan passes through the same four steps the production pipeline uses.
A simulated reader submits a tag observation into a durable PostgreSQL inbox before any business logic runs.
The EPC is matched against a registered asset in the acting tenant. Unmatched tags are flagged, never guessed.
Entry/exit rules, repeat-read suppression and stale or future timestamps decide the outcome before anything is saved.
Event, movement, asset state and an audit row commit together, atomically, with the asset row locked per update.
Everything operations needs in one place
Live stats, exceptions requiring review and asset distribution by location in one workspace.
Every asset, its RFID tag, serial and category, searchable and filterable by location or status.
Send simulated tag observations, replay events and validate entry/exit rules without hardware.
A persisted, tenant-scoped record of every observation, movement and repeat-read suppression.
Inspection and expiry metadata per asset, with due-soon and expired status at a glance.
Built for every seat on the team
Four demo accounts show tenant-scoped authorization end to end — including a second organization that never sees the first's data.
admin@dft.demoFull access: asset registration/editing, simulator, all views, and scan-processing health with retry controls.
operator@dft.demoSame day-to-day workflow permissions as admin in this milestone; no administration screen yet.
viewer@dft.demoRead-only across every DFT view. Writes are rejected by the API, not just hidden in the UI.
other@dft.demoAn isolated organization with its own asset, locations and readers, proving tenant boundaries hold.
What holds up under retries, races and reloads
Retries reuse the saved event by ID; a changed payload under the same ID is rejected outright.
Simultaneous duplicate events resolve to one business effect — no double check-ins from a race.
Event, movement, asset state and audit trail are written together or not at all.
Writes require a valid session cookie, a matching Origin header and a permitted role — enforced server-side.
Every query is scoped to the authenticated actor's tenant; UUID routes never trust a client-supplied tenant ID.
Failed events retry automatically up to five times; a background worker recovers anything left pending.
Built on a straightforward, typed stack
Beyond this milestone
- PostgreSQL row-level security and restricted runtime roles
- Tag reassignment history and correction workflows
- Private attachments, scheduled certificate notifications
- CSV, then XLSX/PDF exports and an OpenAPI specification
- Fixed-reader and Android hardware integration — separate, hardware-dependent gates