NFC & QR

NFC Cards & QR Check-In

BizTech uses NFC membership cards and QR code scanning to streamline event check-ins and enable the Live Connection Wall. This page covers both systems end-to-end.


Overview

Here's how the systems work together at a BizTech event:

  1. Attendee arrives → Admin opens the event dashboard and toggles the QR scanner
  2. Admin scans QR code → The attendee's QR code (from their registration email) gets scanned
  3. System checks in the user → Registration status is updated to "checked in"
  4. NFC card check → The system checks if this person has a membership card
  5. If no card → An NFC writing popup appears, and the admin taps a blank NFC card to the phone
  6. Card is written → The NFC card now contains a URL that links to the user's profile
  7. At the event → People tap each other's NFC cards to view profiles and create connections (which show up on the Live Wall)
QR ScanCheck InNFC Card CheckWrite Card (if needed)Ready to Connect!

Key Files

Frontend

FileWhat it does
src/components/QrScanner/QrScanner.tsxMain QR code scanner and check-in component
src/components/QrScanner/types.tsTypeScript types for the QR scanner
src/components/NFCWrite/NFCPopup.tsxNFC writing popup - shows user info and triggers writer
src/components/NFCWrite/NFCWriter.tsxHandles the actual NFC tag writing via Web NFC API
src/hooks/useNFCSupport.tsHook to check if the device supports NFC
src/hooks/useUserNeedsCard.tsHook to check if a user needs a membership card
src/util/nfcUtils.tsUtility to generate the NFC profile URL

Backend

FileWhat it does
services/interactions/handler.jsPOST /interactions - creates connections when NFC cards are tapped
services/interactions/helpers.jsConnection logic and WebSocket broadcasting

What's Covered in This Section

QR Code Check-In

How QR codes work, the scanner component, validation flow, and check-in API.

NFC Card Writing

Web NFC API, URL format, writing flow, writer states, and support hooks.

Connections, Errors & Testing

How NFC creates connections, error handling, database records, and local testing.

Previous
Configuration & Development