docs(scanner): add comprehensive staging rollout documentation
Add three critical documents for Scanner PWA production deployment: 1. STAGING_ROLLOUT_CHECKLIST.md - Main operational checklist - Pre-event setup procedures for IT/admin team - Staff device setup with PWA installation steps - Day-of operations and gate management protocols - Post-event data sync and cleanup procedures - Emergency fallback procedures and escalation contacts 2. STAFF_TRAINING_MATERIALS.md - Gate staff training resources - Step-by-step device setup for iOS/Android - Scanner operation guide with result interpretation - Troubleshooting guide for common issues - Professional smartphone usage tips for all-day events - Quick reference cards and emergency procedures 3. SCANNER_TECHNICAL_RUNBOOK.md - IT administrator guide - Complete system architecture and API documentation - Environment setup for staging/production deployment - Monitoring, alerting, and performance baseline configuration - Network requirements and quality management - Security considerations and vulnerability management - Escalation procedures and maintenance schedules These documents provide complete operational readiness for Scanner PWA deployment, ensuring smooth gate operations with minimal day-of issues. Staff preparation procedures are designed for temporary/volunteer workers with clear, simple instructions and comprehensive emergency protocols. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1037
reactrebuild0825/SCANNER_TECHNICAL_RUNBOOK.md
Normal file
1037
reactrebuild0825/SCANNER_TECHNICAL_RUNBOOK.md
Normal file
File diff suppressed because it is too large
Load Diff
302
reactrebuild0825/STAFF_TRAINING_MATERIALS.md
Normal file
302
reactrebuild0825/STAFF_TRAINING_MATERIALS.md
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
# Scanner PWA Staff Training Materials
|
||||||
|
|
||||||
|
## 📱 Quick Setup Guide for Gate Staff
|
||||||
|
|
||||||
|
### Before Your Shift - Device Setup (15 minutes)
|
||||||
|
|
||||||
|
#### Step 1: Install the Scanner App
|
||||||
|
**For iPhone/iPad:**
|
||||||
|
1. Open **Safari** browser (not Chrome!)
|
||||||
|
2. Go to: `scanner.blackcanyontickets.com/scan`
|
||||||
|
3. Tap the **Share** button (box with arrow up)
|
||||||
|
4. Select **"Add to Home Screen"**
|
||||||
|
5. Name it "Gate Scanner" → Tap **Add**
|
||||||
|
|
||||||
|
**For Android Phone:**
|
||||||
|
1. Open **Chrome** browser
|
||||||
|
2. Go to: `scanner.blackcanyontickets.com/scan`
|
||||||
|
3. Look for **"Add to Home Screen"** popup
|
||||||
|
4. If no popup: Tap 3 dots → "Add to Home Screen"
|
||||||
|
5. Name it "Gate Scanner" → Tap **Add**
|
||||||
|
|
||||||
|
#### Step 2: Set Up Camera Permission
|
||||||
|
1. **Tap the "Gate Scanner"** app on your home screen
|
||||||
|
2. When asked for camera access → **Tap "Allow"**
|
||||||
|
3. You should see the camera view with a scanning frame
|
||||||
|
|
||||||
|
**If camera doesn't work:**
|
||||||
|
- iPhone: Settings → Privacy → Camera → Gate Scanner → ON
|
||||||
|
- Android: Settings → Apps → Gate Scanner → Permissions → Camera → Allow
|
||||||
|
|
||||||
|
#### Step 3: Configure Your Gate
|
||||||
|
1. In the scanner app, **tap the gear ⚙️ icon**
|
||||||
|
2. Enter your gate name: "Main Gate", "VIP Entrance", etc.
|
||||||
|
3. Leave other settings as default → **Tap Save**
|
||||||
|
|
||||||
|
### During Your Shift - Basic Operation
|
||||||
|
|
||||||
|
#### How to Scan Tickets
|
||||||
|
1. **Hold your device 6-12 inches from the QR code**
|
||||||
|
2. **Center the code in the scanning frame**
|
||||||
|
3. **Hold steady** - don't move until you hear a beep
|
||||||
|
4. **Look at the result banner** at the top
|
||||||
|
|
||||||
|
#### Understanding Scan Results
|
||||||
|
|
||||||
|
**✅ GREEN = SUCCESS - Let them in!**
|
||||||
|
- Shows: Event name, ticket type, customer email
|
||||||
|
- Action: Allow entry immediately
|
||||||
|
|
||||||
|
**⚠️ YELLOW = ALREADY SCANNED - Check carefully!**
|
||||||
|
- Shows: When and where it was first scanned
|
||||||
|
- Action: Ask "Have you been in and out?" If no → **Call supervisor**
|
||||||
|
|
||||||
|
**❌ RED = INVALID - Do not allow entry**
|
||||||
|
- Shows: Error reason (fake, expired, cancelled)
|
||||||
|
- Action: Direct to box office, be polite but firm
|
||||||
|
|
||||||
|
**🔵 BLUE = OFFLINE ACCEPTED - Let them in**
|
||||||
|
- Shows: "Will verify when connection restored"
|
||||||
|
- Action: Allow entry (normal during network issues)
|
||||||
|
|
||||||
|
**🔒 RED WITH LOCK = LOCKED TICKET - Do not allow entry**
|
||||||
|
- Shows: "Payment dispute" or "Refund processed"
|
||||||
|
- Action: Direct to support, provide contact info
|
||||||
|
|
||||||
|
#### Using the Flashlight
|
||||||
|
- **Automatic:** Flashlight turns on in dark conditions
|
||||||
|
- **Manual:** Tap the flashlight 🔦 icon to toggle on/off
|
||||||
|
- **Best for:** Dark venues, evening events, hard-to-read codes
|
||||||
|
|
||||||
|
### Common Situations and Solutions
|
||||||
|
|
||||||
|
#### "The scanner isn't working!"
|
||||||
|
**Problem:** Black screen, no camera view
|
||||||
|
**Fix:**
|
||||||
|
1. Close the app completely (swipe up, swipe away)
|
||||||
|
2. Reopen "Gate Scanner" app
|
||||||
|
3. If still broken → Use backup device or call for help
|
||||||
|
|
||||||
|
#### "It says 'scanning too fast'"
|
||||||
|
**Problem:** Orange/red warning about speed limit
|
||||||
|
**Fix:**
|
||||||
|
1. **Slow down!** Wait for beep before next scan
|
||||||
|
2. If blocked, wait for countdown timer to finish
|
||||||
|
3. Resume at normal speed (about 1 scan every 2-3 seconds)
|
||||||
|
|
||||||
|
#### "Scans aren't saving/syncing"
|
||||||
|
**Problem:** High "pending sync" number in settings
|
||||||
|
**Fix:**
|
||||||
|
1. Check WiFi connection - switch to cellular if needed
|
||||||
|
2. Keep scanning (they'll sync when connection returns)
|
||||||
|
3. If pending count > 50 → Alert IT support
|
||||||
|
|
||||||
|
#### "Customer says ticket should work"
|
||||||
|
**Problem:** Valid-looking ticket scanning as invalid/already used
|
||||||
|
**Response:**
|
||||||
|
1. **Don't argue** - be polite and professional
|
||||||
|
2. Say: "I'm showing an issue with this ticket"
|
||||||
|
3. Direct them to: "Please visit the box office for assistance"
|
||||||
|
4. **Never override** the scanner result
|
||||||
|
|
||||||
|
### Emergency Procedures
|
||||||
|
|
||||||
|
#### Complete Scanner Failure
|
||||||
|
**If ALL scanners stop working:**
|
||||||
|
1. **Switch to paper list immediately**
|
||||||
|
2. Check names against ID
|
||||||
|
3. Mark attendees manually
|
||||||
|
4. **Call IT support** right away
|
||||||
|
|
||||||
|
#### Network Outage
|
||||||
|
**If internet/WiFi goes down:**
|
||||||
|
1. **Keep scanning** - app works offline
|
||||||
|
2. Look for blue "offline accepted" results
|
||||||
|
3. Check settings → pending sync count occasionally
|
||||||
|
4. **Don't panic** - everything will sync later
|
||||||
|
|
||||||
|
#### Device Problems
|
||||||
|
**If your device breaks/overheats/gets stolen:**
|
||||||
|
1. **Get backup device** from supervisor
|
||||||
|
2. Report incident immediately
|
||||||
|
3. Continue with backup while replacement is configured
|
||||||
|
|
||||||
|
### Smartphone Tips for All-Day Scanning
|
||||||
|
|
||||||
|
#### Battery Management
|
||||||
|
- **Before shift:** Charge to 100%
|
||||||
|
- **During shift:** Use power bank if available
|
||||||
|
- **Screen settings:** Set brightness to 75% (not 100%)
|
||||||
|
- **Close other apps** to save battery
|
||||||
|
|
||||||
|
#### Comfort and Safety
|
||||||
|
- **Hold device properly:** Support with both hands when possible
|
||||||
|
- **Take breaks:** Look away from screen every 20-30 minutes
|
||||||
|
- **Stay hydrated:** Scanning in sun/heat is exhausting
|
||||||
|
- **Rotate positions:** Switch scanning hand to avoid strain
|
||||||
|
|
||||||
|
#### Professional Appearance
|
||||||
|
- **Keep device clean:** Wipe screen regularly for best scanning
|
||||||
|
- **Professional demeanor:** Device is a work tool, not personal phone
|
||||||
|
- **Focus on customers:** Make eye contact, smile, be welcoming
|
||||||
|
- **Efficient processing:** Quick scan → friendly greeting → direct to entrance
|
||||||
|
|
||||||
|
## 🎯 Troubleshooting Quick Reference
|
||||||
|
|
||||||
|
### Problem → Solution Flowchart
|
||||||
|
|
||||||
|
**Camera not working** → Close app → Reopen → Check permissions → Use backup device
|
||||||
|
|
||||||
|
**Too fast warning** → Slow down → Wait for countdown → Resume normal pace
|
||||||
|
|
||||||
|
**Network issues** → Continue offline → Monitor pending sync → Report if >50 pending
|
||||||
|
|
||||||
|
**Invalid ticket** → Be polite → Explain issue → Direct to box office → Never override
|
||||||
|
|
||||||
|
**Already scanned** → Ask if re-entry → Check time/location → Call supervisor if suspicious
|
||||||
|
|
||||||
|
**Device failure** → Report immediately → Get backup device → Continue operations
|
||||||
|
|
||||||
|
### Contact Information (Post at Each Gate)
|
||||||
|
|
||||||
|
**Technical Issues:**
|
||||||
|
- IT Support: [PHONE]
|
||||||
|
- Network Problems: [EMAIL]
|
||||||
|
|
||||||
|
**Operational Issues:**
|
||||||
|
- Gate Supervisor: [PHONE]
|
||||||
|
- Event Manager: [PHONE]
|
||||||
|
- Security: [RADIO CHANNEL]
|
||||||
|
|
||||||
|
**Emergency Contacts:**
|
||||||
|
- Venue Management: [PHONE]
|
||||||
|
- Medical Emergency: 911
|
||||||
|
- Fire/Police Emergency: 911
|
||||||
|
|
||||||
|
### Scanner Settings Reference
|
||||||
|
|
||||||
|
**Access Settings:** Tap gear icon ⚙️ in app header
|
||||||
|
|
||||||
|
**Important Settings:**
|
||||||
|
- **Zone/Gate:** Your gate name (required)
|
||||||
|
- **Optimistic Accept:** ON (allows offline scanning)
|
||||||
|
- **Audio Feedback:** ON (success beep)
|
||||||
|
- **Haptic Feedback:** ON (vibration)
|
||||||
|
|
||||||
|
**Information Displays:**
|
||||||
|
- **Total Scans:** Count from your device
|
||||||
|
- **Pending Sync:** Waiting for internet (should be low)
|
||||||
|
- **Last Sync:** Most recent successful sync time
|
||||||
|
|
||||||
|
## 📋 Pre-Shift Checklist (Print and Laminate)
|
||||||
|
|
||||||
|
### Device Check ✅
|
||||||
|
- [ ] Scanner app installed and opens correctly
|
||||||
|
- [ ] Camera permission granted and working
|
||||||
|
- [ ] Flashlight toggles on/off properly
|
||||||
|
- [ ] Device charged to 80%+ battery
|
||||||
|
- [ ] Gate/zone name configured in settings
|
||||||
|
|
||||||
|
### Network Check ✅
|
||||||
|
- [ ] WiFi connected and internet working
|
||||||
|
- [ ] Cellular signal available as backup
|
||||||
|
- [ ] Test scan synchronizes (pending sync = 0)
|
||||||
|
|
||||||
|
### Knowledge Check ✅
|
||||||
|
- [ ] Know all scan result colors and meanings
|
||||||
|
- [ ] Understand "already scanned" policy
|
||||||
|
- [ ] Can locate backup device and contact numbers
|
||||||
|
- [ ] Practice manual entry for broken QR codes
|
||||||
|
- [ ] Rehearsed "invalid ticket" customer response
|
||||||
|
|
||||||
|
### Supplies Check ✅
|
||||||
|
- [ ] Power bank/charging cable available
|
||||||
|
- [ ] Backup device identified and tested
|
||||||
|
- [ ] Emergency contact sheet posted
|
||||||
|
- [ ] Guest list printout as fallback
|
||||||
|
- [ ] Hand sanitizer (if required)
|
||||||
|
|
||||||
|
## 💡 Pro Tips for Efficient Scanning
|
||||||
|
|
||||||
|
### Optimal Scanning Technique
|
||||||
|
1. **Position:** 6-12 inches from QR code
|
||||||
|
2. **Angle:** Device parallel to ticket (not tilted)
|
||||||
|
3. **Lighting:** Use flashlight in dim conditions
|
||||||
|
4. **Stability:** Hold steady until beep sounds
|
||||||
|
5. **Speed:** Average 1 scan every 2-3 seconds
|
||||||
|
|
||||||
|
### Managing Peak Entry Times
|
||||||
|
- **Stay calm** during rush periods
|
||||||
|
- **Communicate** - tell people "One moment please"
|
||||||
|
- **Be efficient** but don't sacrifice accuracy
|
||||||
|
- **Watch for rate limiting** warnings
|
||||||
|
- **Ask for help** if line gets too long
|
||||||
|
|
||||||
|
### Customer Service Excellence
|
||||||
|
- **Smile and make eye contact** while device processes
|
||||||
|
- **Explain briefly** if there's a delay: "Just verifying your ticket"
|
||||||
|
- **Be patient** with elderly or tech-confused customers
|
||||||
|
- **Stay positive** even when dealing with invalid tickets
|
||||||
|
- **Thank people** for their patience during busy times
|
||||||
|
|
||||||
|
### Maintaining Equipment
|
||||||
|
- **Keep screen clean** - use microfiber cloth
|
||||||
|
- **Protect from rain** - use bag/cover if needed
|
||||||
|
- **Avoid extreme temperatures** - shade device when possible
|
||||||
|
- **Handle carefully** - scanning devices are expensive
|
||||||
|
- **Report damage immediately** - don't try to fix yourself
|
||||||
|
|
||||||
|
## 🚨 Staff Safety and Security
|
||||||
|
|
||||||
|
### Personal Safety
|
||||||
|
- **Stay alert** to surroundings while scanning
|
||||||
|
- **Know emergency exits** and evacuation procedures
|
||||||
|
- **Keep radio/communication device** accessible
|
||||||
|
- **Report suspicious behavior** to security
|
||||||
|
- **Never confront** aggressive customers alone
|
||||||
|
|
||||||
|
### Device Security
|
||||||
|
- **Keep device secure** when not scanning
|
||||||
|
- **Don't leave unattended** even briefly
|
||||||
|
- **Report theft/loss immediately**
|
||||||
|
- **Don't share login credentials** with other staff
|
||||||
|
- **Lock screen** during breaks if device supports it
|
||||||
|
|
||||||
|
### Data Privacy
|
||||||
|
- **Customer data** stays on device only
|
||||||
|
- **Don't photograph** or share scan results
|
||||||
|
- **Don't discuss** customer information with others
|
||||||
|
- **Follow venue privacy policies** for all customer interactions
|
||||||
|
|
||||||
|
## 📞 Quick Contact Card (Wallet Size)
|
||||||
|
|
||||||
|
**🔧 Technical Support**
|
||||||
|
IT Help: [PHONE]
|
||||||
|
Platform Issues: [EMAIL]
|
||||||
|
|
||||||
|
**👥 Operations**
|
||||||
|
Gate Supervisor: [PHONE]
|
||||||
|
Event Manager: [PHONE]
|
||||||
|
Security Radio: Channel [#]
|
||||||
|
|
||||||
|
**🚨 Emergencies**
|
||||||
|
Medical: 911
|
||||||
|
Fire/Police: 911
|
||||||
|
Venue Management: [PHONE]
|
||||||
|
|
||||||
|
**📱 Scanner Issues**
|
||||||
|
• Camera black screen: Close/reopen app
|
||||||
|
• Too fast warning: Slow down, wait
|
||||||
|
• Network issues: Continue offline
|
||||||
|
• Invalid ticket: Direct to box office
|
||||||
|
|
||||||
|
**⚠️ Remember**
|
||||||
|
✅ Green = Enter
|
||||||
|
⚠️ Yellow = Check carefully
|
||||||
|
❌ Red = No entry
|
||||||
|
🔵 Blue = Enter (offline)
|
||||||
|
🔒 Red lock = No entry (contact support)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Keep this card with you during your shift. When in doubt, ask your supervisor or call technical support. Your job is to keep entry moving safely and efficiently!*
|
||||||
431
reactrebuild0825/STAGING_ROLLOUT_CHECKLIST.md
Normal file
431
reactrebuild0825/STAGING_ROLLOUT_CHECKLIST.md
Normal file
@@ -0,0 +1,431 @@
|
|||||||
|
# Scanner PWA Staging Rollout Checklist
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
This checklist ensures successful deployment of the Scanner PWA for gate operations. The system is designed for offline-first operation with comprehensive abuse prevention and mobile optimization for staff devices.
|
||||||
|
|
||||||
|
**Critical Success Factors:**
|
||||||
|
- ✅ Staff devices properly configured with PWA installation
|
||||||
|
- ✅ Camera permissions granted and torch functionality verified
|
||||||
|
- ✅ Offline queue testing completed before event start
|
||||||
|
- ✅ Rate limiting and abuse prevention systems tested
|
||||||
|
- ✅ Emergency fallback procedures documented and rehearsed
|
||||||
|
|
||||||
|
## Pre-Event Setup (IT/Admin Team)
|
||||||
|
*Time Estimate: 2-3 hours | Role: 🎯 IT Administrator*
|
||||||
|
|
||||||
|
### Environment Configuration
|
||||||
|
- [ ] **Staging Environment Setup**
|
||||||
|
- [ ] Deploy scanner PWA to staging URL
|
||||||
|
- [ ] Configure Sentry monitoring with staging environment
|
||||||
|
- [ ] Set up Firebase/Supabase staging database
|
||||||
|
- [ ] Test API endpoints for ticket verification
|
||||||
|
- [ ] Verify SSL certificates and HTTPS enforcement
|
||||||
|
- ⏱️ *30 minutes*
|
||||||
|
|
||||||
|
- [ ] **Network Infrastructure**
|
||||||
|
- [ ] Configure venue WiFi with dedicated SSID for staff devices
|
||||||
|
- [ ] Test cellular coverage at all gate locations
|
||||||
|
- [ ] Set up network monitoring for quality alerts
|
||||||
|
- [ ] Verify firewall rules allow scanner API traffic
|
||||||
|
- [ ] Test network handoff between WiFi and cellular
|
||||||
|
- ⏱️ *45 minutes*
|
||||||
|
|
||||||
|
### Monitoring Setup
|
||||||
|
- [ ] **Sentry Configuration**
|
||||||
|
- [ ] Enable real-time error tracking
|
||||||
|
- [ ] Set up performance monitoring thresholds
|
||||||
|
- [ ] Configure alerts for critical errors
|
||||||
|
- [ ] Test alert notification channels (Slack, email)
|
||||||
|
- ⏱️ *15 minutes*
|
||||||
|
|
||||||
|
- [ ] **Performance Baselines**
|
||||||
|
- [ ] Document expected scan rates (8 scans/second max)
|
||||||
|
- [ ] Set latency targets (<1000ms per scan)
|
||||||
|
- [ ] Define memory usage thresholds (<20MB growth)
|
||||||
|
- [ ] Establish battery life expectations
|
||||||
|
- ⏱️ *15 minutes*
|
||||||
|
|
||||||
|
### Test Data Preparation
|
||||||
|
- [ ] **Mock Ticket Generation**
|
||||||
|
- [ ] Generate sample QR codes for testing
|
||||||
|
- [ ] Create mix of valid, invalid, and duplicate test tickets
|
||||||
|
- [ ] Prepare locked/disputed ticket scenarios
|
||||||
|
- [ ] Document test ticket IDs for staff reference
|
||||||
|
- ⏱️ *30 minutes*
|
||||||
|
|
||||||
|
### Device Procurement
|
||||||
|
- [ ] **Hardware Requirements**
|
||||||
|
- [ ] Verify minimum device specs (iOS 14+, Android 8+, Chrome 88+)
|
||||||
|
- [ ] Ensure devices have functional cameras and flashlights
|
||||||
|
- [ ] Test battery life under continuous scanning (4+ hours)
|
||||||
|
- [ ] Prepare backup devices (20% extra capacity)
|
||||||
|
- ⏱️ *45 minutes*
|
||||||
|
|
||||||
|
## Staff Device Setup (Gate Team)
|
||||||
|
*Time Estimate: 45 minutes per device | Role: 🎯 Gate Staff + IT Support*
|
||||||
|
|
||||||
|
### PWA Installation Process
|
||||||
|
|
||||||
|
#### iOS Devices (iPhone/iPad)
|
||||||
|
- [ ] **Safari Installation**
|
||||||
|
1. [ ] Open Safari browser (Chrome not recommended for iOS PWA)
|
||||||
|
2. [ ] Navigate to scanner URL: `https://scanner.blackcanyontickets.com/scan?eventId=EVENT_ID`
|
||||||
|
3. [ ] Tap Share button (square with arrow up)
|
||||||
|
4. [ ] Select "Add to Home Screen"
|
||||||
|
5. [ ] Rename app to "BCT Scanner" if desired
|
||||||
|
6. [ ] Tap "Add" to complete installation
|
||||||
|
- ⏱️ *5 minutes per device*
|
||||||
|
|
||||||
|
- [ ] **Camera Permission Setup**
|
||||||
|
1. [ ] Launch BCT Scanner app from home screen
|
||||||
|
2. [ ] When prompted, tap "Allow" for camera access
|
||||||
|
3. [ ] If denied, go to Settings > Privacy & Security > Camera
|
||||||
|
4. [ ] Find "BCT Scanner" and toggle ON
|
||||||
|
5. [ ] Return to app and verify camera view appears
|
||||||
|
- ⏱️ *3 minutes per device*
|
||||||
|
|
||||||
|
#### Android Devices
|
||||||
|
- [ ] **Chrome Installation**
|
||||||
|
1. [ ] Open Chrome browser
|
||||||
|
2. [ ] Navigate to scanner URL
|
||||||
|
3. [ ] Look for "Add to Home screen" banner at bottom
|
||||||
|
4. [ ] If no banner, tap Chrome menu (3 dots) > "Add to Home screen"
|
||||||
|
5. [ ] Name the app "BCT Scanner"
|
||||||
|
6. [ ] Tap "Add" to install
|
||||||
|
- ⏱️ *5 minutes per device*
|
||||||
|
|
||||||
|
- [ ] **Camera Permission Setup**
|
||||||
|
1. [ ] Launch BCT Scanner from home screen
|
||||||
|
2. [ ] Tap "Allow" when camera permission requested
|
||||||
|
3. [ ] If denied, go to Settings > Apps > BCT Scanner > Permissions
|
||||||
|
4. [ ] Enable Camera permission
|
||||||
|
5. [ ] Return to app and verify camera functionality
|
||||||
|
- ⏱️ *3 minutes per device*
|
||||||
|
|
||||||
|
### Device Optimization
|
||||||
|
- [ ] **Battery Management**
|
||||||
|
- [ ] Disable automatic screen lock (set to "Never" during event)
|
||||||
|
- [ ] Enable "Keep screen on while charging" if available
|
||||||
|
- [ ] Close unnecessary background apps
|
||||||
|
- [ ] Set screen brightness to 75% (balance visibility/battery)
|
||||||
|
- ⏱️ *5 minutes per device*
|
||||||
|
|
||||||
|
- [ ] **Torch/Flashlight Setup**
|
||||||
|
- [ ] Test flashlight functionality in scanner settings
|
||||||
|
- [ ] Verify automatic torch activation in low light
|
||||||
|
- [ ] Practice manual torch toggle (tap torch icon)
|
||||||
|
- [ ] Check flashlight doesn't interfere with scanning
|
||||||
|
- ⏱️ *3 minutes per device*
|
||||||
|
|
||||||
|
### Zone/Gate Configuration
|
||||||
|
- [ ] **Scanner Settings**
|
||||||
|
- [ ] Open scanner settings (gear icon)
|
||||||
|
- [ ] Set Zone/Gate identifier (e.g., "Main Gate", "VIP Entrance")
|
||||||
|
- [ ] Enable optimistic scanning for offline operation
|
||||||
|
- [ ] Test audio/haptic feedback preferences
|
||||||
|
- [ ] Verify settings persist after app restart
|
||||||
|
- ⏱️ *5 minutes per device*
|
||||||
|
|
||||||
|
### Functional Testing
|
||||||
|
- [ ] **Basic Operation Test**
|
||||||
|
- [ ] Scan valid test QR code → verify SUCCESS (green banner)
|
||||||
|
- [ ] Scan same code again → verify ALREADY SCANNED (yellow banner)
|
||||||
|
- [ ] Scan invalid code → verify ERROR (red banner)
|
||||||
|
- [ ] Test manual entry fallback if QR scan fails
|
||||||
|
- ⏱️ *8 minutes per device*
|
||||||
|
|
||||||
|
- [ ] **Offline Testing**
|
||||||
|
- [ ] Enable airplane mode
|
||||||
|
- [ ] Scan test QR codes → verify OFFLINE ACCEPTED (blue banner)
|
||||||
|
- [ ] Check pending sync count in settings
|
||||||
|
- [ ] Re-enable network → verify automatic background sync
|
||||||
|
- [ ] Confirm all scans appear in sync history
|
||||||
|
- ⏱️ *10 minutes per device*
|
||||||
|
|
||||||
|
- [ ] **Performance Testing**
|
||||||
|
- [ ] Rapid scan test → verify rate limiting at 8 scans/second
|
||||||
|
- [ ] Check "scanning too fast" warning appears appropriately
|
||||||
|
- [ ] Test cooldown period and recovery
|
||||||
|
- [ ] Monitor device performance and temperature
|
||||||
|
- ⏱️ *6 minutes per device*
|
||||||
|
|
||||||
|
## Day-of Operations (Gate Management)
|
||||||
|
*Role: 🎯 Gate Staff Manager*
|
||||||
|
|
||||||
|
### Pre-Event Checklist (30 minutes before gates open)
|
||||||
|
- [ ] **Device Readiness**
|
||||||
|
- [ ] Verify all scanner devices are charged (80%+ battery)
|
||||||
|
- [ ] Confirm PWA is installed and launches correctly
|
||||||
|
- [ ] Test camera functionality at each gate location
|
||||||
|
- [ ] Check network connectivity (WiFi and cellular)
|
||||||
|
- ⏱️ *10 minutes*
|
||||||
|
|
||||||
|
- [ ] **Staff Briefing**
|
||||||
|
- [ ] Distribute laminated quick reference cards
|
||||||
|
- [ ] Demonstrate proper QR code scanning technique
|
||||||
|
- [ ] Explain scan result colors (green/yellow/red/blue)
|
||||||
|
- [ ] Review duplicate ticket procedures
|
||||||
|
- [ ] Practice emergency manual verification process
|
||||||
|
- ⏱️ *15 minutes*
|
||||||
|
|
||||||
|
- [ ] **System Verification**
|
||||||
|
- [ ] Run test scans on all devices
|
||||||
|
- [ ] Verify offline mode works (brief airplane mode test)
|
||||||
|
- [ ] Check Sentry monitoring is receiving data
|
||||||
|
- [ ] Confirm backup devices are available and configured
|
||||||
|
- ⏱️ *5 minutes*
|
||||||
|
|
||||||
|
### Active Scanning Operations
|
||||||
|
|
||||||
|
#### Optimal Scanning Technique
|
||||||
|
**Staff should hold device 6-12 inches from QR code:**
|
||||||
|
- [ ] **Lighting:** Use torch in dark conditions, avoid in bright sunlight
|
||||||
|
- [ ] **Angle:** Hold device parallel to ticket, not at angle
|
||||||
|
- [ ] **Stability:** Keep device steady for 2-3 seconds until beep
|
||||||
|
- [ ] **Speed:** Wait for result banner before scanning next ticket
|
||||||
|
|
||||||
|
#### Scan Result Actions
|
||||||
|
|
||||||
|
**✅ SUCCESS (Green Banner)**
|
||||||
|
- Action: Allow entry immediately
|
||||||
|
- Display: Shows event name, ticket type, customer email
|
||||||
|
- Staff Note: Normal entry, no action required
|
||||||
|
|
||||||
|
**⚠️ ALREADY SCANNED (Yellow Banner)**
|
||||||
|
- Action: **DO NOT** allow entry without verification
|
||||||
|
- Display: Shows original scan time and location
|
||||||
|
- Staff Response:
|
||||||
|
1. Check if same person attempting re-entry
|
||||||
|
2. If different person, possible duplicate/fraud - call supervisor
|
||||||
|
3. If same person, check reason for re-entry (bathroom, etc.)
|
||||||
|
|
||||||
|
**❌ INVALID TICKET (Red Banner)**
|
||||||
|
- Action: **DO NOT** allow entry
|
||||||
|
- Display: Shows error reason (expired, cancelled, fake)
|
||||||
|
- Staff Response:
|
||||||
|
1. Politely explain ticket issue
|
||||||
|
2. Direct customer to box office for assistance
|
||||||
|
3. Note incident if appears fraudulent
|
||||||
|
|
||||||
|
**🔵 OFFLINE ACCEPTED (Blue Banner)**
|
||||||
|
- Action: Allow entry (will be verified when connection restored)
|
||||||
|
- Display: "Scan queued for verification"
|
||||||
|
- Staff Note: Normal during network outages, monitor pending sync count
|
||||||
|
|
||||||
|
**🔒 TICKET LOCKED (Red Banner)**
|
||||||
|
- Action: **DO NOT** allow entry
|
||||||
|
- Display: Shows lock reason (payment dispute, refund, etc.)
|
||||||
|
- Staff Response:
|
||||||
|
1. Explain ticket has been flagged
|
||||||
|
2. Provide support contact: support@blackcanyontickets.com
|
||||||
|
3. Direct to box office for resolution
|
||||||
|
|
||||||
|
### Peak Traffic Management
|
||||||
|
- [ ] **High-Volume Scanning**
|
||||||
|
- [ ] Monitor scan rate - maintain steady pace below 8/second limit
|
||||||
|
- [ ] Watch for "slow down" warnings - pause scanning briefly
|
||||||
|
- [ ] Use multiple lanes/scanners to distribute load
|
||||||
|
- [ ] Keep backup manual list ready for device failures
|
||||||
|
- ⏱️ *Ongoing during event*
|
||||||
|
|
||||||
|
### Troubleshooting During Event
|
||||||
|
|
||||||
|
#### Camera Issues
|
||||||
|
**Problem:** Camera not working, black screen
|
||||||
|
**Solution:**
|
||||||
|
1. Close scanner app completely
|
||||||
|
2. Reopen app and grant camera permission again
|
||||||
|
3. Try different lighting conditions
|
||||||
|
4. If persistent, switch to backup device
|
||||||
|
|
||||||
|
#### Network Issues
|
||||||
|
**Problem:** Scans not syncing, high pending count
|
||||||
|
**Solution:**
|
||||||
|
1. Check WiFi connection, switch to cellular if needed
|
||||||
|
2. Note pending sync count - will sync when connection restored
|
||||||
|
3. Continue scanning in offline mode (optimistic enabled)
|
||||||
|
4. Alert IT if pending count exceeds 50 scans
|
||||||
|
|
||||||
|
#### Device Performance Issues
|
||||||
|
**Problem:** Slow scanning, app freezing, overheating
|
||||||
|
**Solution:**
|
||||||
|
1. Close other apps to free memory
|
||||||
|
2. Move device to cooler location if overheating
|
||||||
|
3. Restart scanner app (data preserved in IndexedDB)
|
||||||
|
4. Switch to backup device if problems persist
|
||||||
|
|
||||||
|
#### Rate Limiting Triggered
|
||||||
|
**Problem:** "Scanning too fast" warning/block
|
||||||
|
**Solution:**
|
||||||
|
1. Pause scanning for indicated cooldown period
|
||||||
|
2. Use manual entry during cooldown if necessary
|
||||||
|
3. Resume at slower pace - wait for result before next scan
|
||||||
|
4. Alert supervisor if blocking persists
|
||||||
|
|
||||||
|
## Post-Event Procedures (Data Sync and Cleanup)
|
||||||
|
*Role: 🎯 IT Administrator + Gate Manager*
|
||||||
|
|
||||||
|
### Immediate Post-Event (Within 30 minutes)
|
||||||
|
- [ ] **Data Synchronization**
|
||||||
|
- [ ] Verify all devices show zero pending sync count
|
||||||
|
- [ ] Force sync on any devices with remaining queue items
|
||||||
|
- [ ] Export scan logs from each device for reconciliation
|
||||||
|
- [ ] Check for sync conflicts in scanner settings
|
||||||
|
- ⏱️ *15 minutes*
|
||||||
|
|
||||||
|
- [ ] **Conflict Resolution**
|
||||||
|
- [ ] Review conflict log for offline vs online discrepancies
|
||||||
|
- [ ] Document any manual entry required due to scanner issues
|
||||||
|
- [ ] Cross-reference duplicate scan warnings with actual entry
|
||||||
|
- [ ] Generate exception report for unusual scan patterns
|
||||||
|
- ⏱️ *15 minutes*
|
||||||
|
|
||||||
|
### Data Reconciliation (Within 2 hours)
|
||||||
|
- [ ] **Attendance Verification**
|
||||||
|
- [ ] Compare total scans vs ticket sales
|
||||||
|
- [ ] Identify and investigate any significant discrepancies
|
||||||
|
- [ ] Validate VIP/special access attendees
|
||||||
|
- [ ] Generate final attendance report
|
||||||
|
- ⏱️ *30 minutes*
|
||||||
|
|
||||||
|
- [ ] **Analytics Review**
|
||||||
|
- [ ] Review Sentry performance metrics
|
||||||
|
- [ ] Analyze peak scanning times and bottlenecks
|
||||||
|
- [ ] Document any rate limiting incidents
|
||||||
|
- [ ] Assess network quality throughout event
|
||||||
|
- ⏱️ *15 minutes*
|
||||||
|
|
||||||
|
### Device Maintenance
|
||||||
|
- [ ] **Scanner App Cleanup**
|
||||||
|
- [ ] Clear scan history on each device (privacy)
|
||||||
|
- [ ] Reset zone/gate settings to default
|
||||||
|
- [ ] Log out staff users if authenticated
|
||||||
|
- [ ] Remove PWA from devices if temporary deployment
|
||||||
|
- ⏱️ *5 minutes per device*
|
||||||
|
|
||||||
|
- [ ] **Hardware Care**
|
||||||
|
- [ ] Wipe down devices and sanitize if required
|
||||||
|
- [ ] Check for physical damage from event use
|
||||||
|
- [ ] Charge devices to full before storage
|
||||||
|
- [ ] Store in secure location with other event equipment
|
||||||
|
- ⏱️ *10 minutes total*
|
||||||
|
|
||||||
|
## Emergency Procedures
|
||||||
|
*🚨 Critical Fallback Plans*
|
||||||
|
|
||||||
|
### Complete Scanner Failure
|
||||||
|
**When:** All scanners offline, app crashes, network failure
|
||||||
|
**Response:**
|
||||||
|
1. **Switch to Manual Verification**
|
||||||
|
- Retrieve printed guest list/ticket manifest
|
||||||
|
- Verify names against government ID
|
||||||
|
- Manually mark attendees on paper list
|
||||||
|
- Document all manual entries for later data entry
|
||||||
|
|
||||||
|
2. **Communication Protocol**
|
||||||
|
- Notify IT support immediately via radio/phone
|
||||||
|
- Alert event manager of fallback activation
|
||||||
|
- Post signage explaining temporary manual check-in
|
||||||
|
- Estimate extended entry times to attendees
|
||||||
|
|
||||||
|
### Network Outage
|
||||||
|
**When:** Complete internet failure, but scanners functional
|
||||||
|
**Response:**
|
||||||
|
1. **Continue Offline Operations**
|
||||||
|
- Scanners will continue working in offline mode
|
||||||
|
- Enable optimistic scanning for smooth entry
|
||||||
|
- Monitor pending sync counts on each device
|
||||||
|
- Document network outage time for later reconciliation
|
||||||
|
|
||||||
|
2. **Extended Offline Protocol**
|
||||||
|
- If outage exceeds 2 hours, export scan data to backup storage
|
||||||
|
- Use cellular hotspot to sync critical scan data
|
||||||
|
- Implement manual backup logging every 30 minutes
|
||||||
|
- Prepare for bulk data sync when network restored
|
||||||
|
|
||||||
|
### Device Security Incident
|
||||||
|
**When:** Device theft, loss, or suspected tampering
|
||||||
|
**Response:**
|
||||||
|
1. **Immediate Actions**
|
||||||
|
- Report incident to security and event management
|
||||||
|
- Remotely log out device if possible (authentication system)
|
||||||
|
- Switch to backup device immediately
|
||||||
|
- Document incident details and time
|
||||||
|
|
||||||
|
2. **Data Protection**
|
||||||
|
- Scan data is local only (no sensitive personal data stored)
|
||||||
|
- Device contains only QR scan logs and timestamps
|
||||||
|
- Remote wipe not necessary (no payment/personal data)
|
||||||
|
- Generate incident report for insurance/security review
|
||||||
|
|
||||||
|
## Escalation Contacts
|
||||||
|
*24/7 Support During Event*
|
||||||
|
|
||||||
|
### Technical Issues (Priority Order)
|
||||||
|
1. **IT Support Lead**: [NAME] - [PHONE] - Scanner app, network, device issues
|
||||||
|
2. **Platform Engineering**: [EMAIL] - API failures, data sync issues
|
||||||
|
3. **DevOps On-Call**: [PHONE] - Infrastructure, database, severe outages
|
||||||
|
4. **CTO Escalation**: [PHONE] - Business-critical failures only
|
||||||
|
|
||||||
|
### Operational Issues
|
||||||
|
1. **Gate Operations Manager**: [NAME] - [PHONE] - Staff coordination, entry policies
|
||||||
|
2. **Event Producer**: [NAME] - [PHONE] - Customer disputes, entry decisions
|
||||||
|
3. **Venue Security**: [NAME] - [PHONE] - Safety, crowd control, incidents
|
||||||
|
4. **Executive Producer**: [PHONE] - Business decisions, policy overrides
|
||||||
|
|
||||||
|
### Business Critical Escalation
|
||||||
|
**When to Escalate Immediately:**
|
||||||
|
- Complete scanner system failure affecting multiple gates
|
||||||
|
- Security incident involving device theft/tampering
|
||||||
|
- Data integrity issues (scan counts not matching sales)
|
||||||
|
- Network outage exceeding 30 minutes during peak entry
|
||||||
|
- Staff injury or safety incident at scanner-equipped gate
|
||||||
|
|
||||||
|
**Escalation SLA:**
|
||||||
|
- Technical response: 5 minutes during event hours
|
||||||
|
- On-site support: 15 minutes for critical issues
|
||||||
|
- Business decision: 10 minutes for entry policy questions
|
||||||
|
|
||||||
|
## Success Metrics and KPIs
|
||||||
|
|
||||||
|
### Performance Targets
|
||||||
|
- **Scan Success Rate**: >99% valid tickets processed correctly
|
||||||
|
- **False Positive Rate**: <1% valid tickets rejected incorrectly
|
||||||
|
- **Average Scan Time**: <3 seconds from QR present to result
|
||||||
|
- **Network Sync Success**: >98% of offline scans sync correctly
|
||||||
|
- **Device Uptime**: >99% operational time during event hours
|
||||||
|
|
||||||
|
### User Experience Metrics
|
||||||
|
- **Staff Training Time**: <30 minutes per device setup
|
||||||
|
- **Entry Processing Speed**: <10 seconds average per attendee
|
||||||
|
- **Error Recovery Time**: <2 minutes to resolve common issues
|
||||||
|
- **Manual Fallback Incidents**: <5% of total entry volume
|
||||||
|
|
||||||
|
### Technical Metrics
|
||||||
|
- **Memory Usage**: <20MB growth over 4-hour scanning session
|
||||||
|
- **Battery Performance**: >4 hours continuous operation per device
|
||||||
|
- **Rate Limiting Effectiveness**: <10 abuse prevention triggers per event
|
||||||
|
- **Conflict Resolution**: <1% offline/online scan discrepancies
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Reference Summary
|
||||||
|
|
||||||
|
**Before Event:** Test all devices, train staff, verify network ✅
|
||||||
|
**During Event:** Monitor sync, handle exceptions, maintain scan pace ⚠️
|
||||||
|
**After Event:** Sync data, resolve conflicts, clean devices ✅
|
||||||
|
**Emergencies:** Manual fallback, escalation contacts, incident documentation 🚨
|
||||||
|
|
||||||
|
**Key Numbers to Remember:**
|
||||||
|
- 8 scans/second maximum rate
|
||||||
|
- 6-12 inch optimal scanning distance
|
||||||
|
- 80%+ battery minimum for event start
|
||||||
|
- 50 pending scans = escalation threshold
|
||||||
|
- 4+ hours expected battery life per device
|
||||||
|
|
||||||
|
**Critical File Locations:**
|
||||||
|
- Staff quick reference cards (laminated)
|
||||||
|
- Emergency contact list (posted at each gate)
|
||||||
|
- Test QR codes (secure storage)
|
||||||
|
- Backup device storage location
|
||||||
Reference in New Issue
Block a user