Beacon
Portable digital emergency alarm with PWA-based alerting — a handheld trigger broadcasts distress signals to configured contacts and dashboards.
Problem
Campus and community safety plans still rely on phone trees that fail under panic or poor signal. Beacon (the emergency alarm craft — not the reverse-vending Wi-Fi repo mapped to Glow) pairs embedded triggers with a PWA so a physical alarm press launches structured alerts with location context.
What it covers
- Physical panic trigger with debounced GPIO input
- PWA client for contact lists, drill mode, and acknowledgment
- Local buzzer/LED feedback so operators know the signal fired
- Optional gateway push when connectivity is available
type DistressEvent = { deviceId: string; lat?: number; lng?: number; at: number };
export async function raiseAlarm(event: DistressEvent) {
await notifyContacts(event);
await logIncident(event);
if (navigator.vibrate) navigator.vibrate([200, 100, 200]);
}