ResQNet Dashboard
The command dashboard for ResQNet, a disaster-response network of ESP32 nodes. Reports travel over an ESP-NOW mesh to a gateway and arrive here with no internet involved.
Overview
ResQNet is a course project: a local-first platform for disaster response. A survivor connects to a nearby ESP32 node and files a report from their phone. The report hops across an ESP-NOW mesh to a gateway node, which passes it over USB to the machine running this dashboard.
The dashboard is where operators work. It has an incident queue, a live map, node health, a survivor registry, shelters and resources, messages, and an audit log of sensitive actions. It runs on Next.js with Prisma and a local SQLite database, and a small Socket.IO service pushes live updates.
Worth noting
Nothing is acknowledged until it is stored
The gateway keeps each report in a durable queue. The acknowledgement goes back over the serial link only after the API confirms it has accepted the record, so if the dashboard is down the report waits and is retried.
Duplicates are expected, and harmless
Every report carries its gateway, source node and sequence number. The API uses those three as an idempotency key, so a retried report is accepted again without creating a second incident.
Works with the internet unplugged
The bridge between gateway and dashboard only talks to localhost. There is no cloud tunnel, hosted service or router in the path.
Stale data is labelled as stale
The interface carries freshness labels and connection banners, so old readings and lost links are visible rather than hidden.
A phone companion for location
A small Android app reads the phone’s GPS fix and hands it to the connected node, with no internet needed at runtime.
Limits
This is a prototype, not a certified emergency system, and it has only been run with test data. It uses SQLite, which suits a single local machine but not a hosted deployment with several instances.