Skip to main content
Back to projects
ProtectUs

ProtectUs

IoT platform for hospital linen tracking via RFID

Web app
Technical scoping and full-stack developmentAgence ScrollParis, FranceApr 2026Visit site
Next.jsNode.jsTypeScriptSupabasePostgreSQLNode-REDMQTTArduinoRFID ZebraOVH
ProtectUs

ProtectUs tracks hospital linen via RFID: every item is followed through its full cycle - distribution, wear, return, laundry.

The context

The initial no-code platform (Bubble) had hit its limits: average latency of 720 ms (peaks at 2 s) on RFID operations, high costs, no versioning, a history table with over one million rows, and health data hosted outside France.

My role

  • Technical scoping: analysis of the existing system, target architecture and feasibility.
  • Full-stack development (front and back) in Next.js and Node.js: real-time dashboard, business API and integration of the entire IoT chain.

The IoT side

The core of the system relies on autonomous E.D.G.A.R. stations (Electronic Data Gathering And Reporting), each made of:

  • a Teltonika 4G router (local MQTT broker)
  • an Arduino controller that orchestrates cabinet opening
  • a Zebra FX9600 RFID reader (4 antennas)
  • physical cabinets (clean / dirty / mixed)

The flow: a caregiver scans a QR code, the Arduino publishes over MQTT, Node-RED bridges to the API ('/api/rfid/*'), RFID tags are read and their state updated in real time (clean, return, carried).

The solution

  • Rewrite in Next.js 15 + TypeScript (Clean Architecture, dependency injection)
  • Supabase (PostgreSQL, Auth, Realtime, Storage) with RLS to isolate data per facility
  • Real-time dashboard (replacing Power BI)
  • OVH hosting in France (sovereign health data)
  • Kept the existing Node-RED IoT bridge

The results

  • Latency cut by 4x (1.2 s -> 300 ms)
  • 0 downtime during migration
  • 100% of data hosted in France