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:
- Attendee arrives → Admin opens the event dashboard and toggles the QR scanner
- Admin scans QR code → The attendee's QR code (from their registration email) gets scanned
- System checks in the user → Registration status is updated to "checked in"
- NFC card check → The system checks if this person has a membership card
- If no card → An NFC writing popup appears, and the admin taps a blank NFC card to the phone
- Card is written → The NFC card now contains a URL that links to the user's profile
- At the event → People tap each other's NFC cards to view profiles and create connections (which show up on the Live Wall)
QR Scan → Check In → NFC Card Check → Write Card (if needed) → Ready to Connect!
Key Files
Frontend
| File | What it does |
|---|---|
src/components/QrScanner/QrScanner.tsx | Main QR code scanner and check-in component |
src/components/QrScanner/types.ts | TypeScript types for the QR scanner |
src/components/NFCWrite/NFCPopup.tsx | NFC writing popup - shows user info and triggers writer |
src/components/NFCWrite/NFCWriter.tsx | Handles the actual NFC tag writing via Web NFC API |
src/hooks/useNFCSupport.ts | Hook to check if the device supports NFC |
src/hooks/useUserNeedsCard.ts | Hook to check if a user needs a membership card |
src/util/nfcUtils.ts | Utility to generate the NFC profile URL |
Backend
| File | What it does |
|---|---|
services/interactions/handler.js | POST /interactions - creates connections when NFC cards are tapped |
services/interactions/helpers.js | Connection 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.