Peer-Verified Event Attendance
Attendees prove they're actually present by passing verification tokens to each other. No more proxy attendance or remote check-ins.
- Organizer starts a session → Entry chains are seeded to random attendees
- Attendees pass the chain → Scan QR codes from others to verify presence
- Chain completes → Everyone who participated is marked present
- Exit verification → Same process when event ends
The chain mechanism ensures attendees must be physically present to participate - you can't pass a QR code to someone who isn't there.
| Feature | Description |
|---|---|
| Chain Verification | Peer-to-peer token passing proves physical presence |
| Real-time Dashboard | Organizers see live attendance as chains progress |
| Live Quiz | AI generates questions from presentation slides (GPT-4) |
| Seating Analysis | Capture photos to analyze venue arrangement |
| Geolocation | Optional location validation with configurable radius |
| Recurring Sessions | Daily, weekly, or monthly schedules |
| Export | CSV/JSON with full audit trail |
Frontend: Next.js 15 + React 18 + TypeScript
Backend: Azure Functions v4 (Node.js 22)
Database: Azure Table Storage (16 tables)
Real-time: Azure SignalR Service
AI: Azure OpenAI + Foundry Agent Service
Auth: Email OTP (Self-managed JWT)
Hosting: Azure Static Web Apps
-
Setup JWT configuration
./setup-jwt-config.sh
-
Verify SMTP credentials
# Ensure .otp-email-credentials exists with valid SMTP settings cat .otp-email-credentials -
Deploy
./deploy-full-production.sh
See Quick Start Guide for complete instructions.
npm install
./start-local-dev.sh
# Frontend: http://localhost:3000
# Backend: http://localhost:7071├── backend/ # Azure Functions (44+ endpoints)
├── frontend/ # Next.js application
├── infrastructure/ # Bicep IaC templates
├── docs/
│ ├── architecture/ # System design
│ ├── deployment/ # Deploy guides
│ └── development/ # Dev setup
└── scripts/ # Utilities
- Getting Started - Setup guide
- Deployment Guide - Azure deployment
- System Architecture - Technical design
- Infrastructure - Bicep modules
- Full Index - All docs
Users are assigned roles through the ExternalOrganizers table:
| Role | Access |
|---|---|
| Organizer | Create and manage events, view attendance |
| Attendee | Join events, participate in verification chains |
To add organizers, use the manageExternalOrganizers API endpoint or Azure Portal to add emails to the ExternalOrganizers table.
Version: 3.0
Status: ✅ Production Ready
| Component | Count |
|---|---|
| Backend Functions | 44+ |
| Frontend Components | 22+ |
| Database Tables | 16 |
MIT
Last Updated: March 6, 2026
