How jianleighqq/snapandsnack works
Snap & Snack is a web photo-booth and event-queue system. Guests register and wait; operators manage events and call guests to the booth; the booth captures and formats photos, which can be printed or published to personal and event galleries. The map includes documented intake, template, and hardware capabilities as well as the sampled runtime paths. Some route-to-screen wiring and implementation details are unsampled, so those relationships are omitted or marked as documented rather than inferred from module names.
Main entry points: ShootConsole.tsx Shoot Console · db.ts Data Access · route.ts Gallery API · supabase-server.ts Supabase
Components 24
Guest Experience
- Guest Registration
app/api/intake/route.ts - Queue Status
components/guest/GuestStatusView.tsx - Personal Gallery
components/guest/GuestGalleryView.tsx - Event Gallery
app/(admin)/admin/gallery/page.tsx
Event Operations
- Queue Board
components/admin/QueueBoardView.tsx - Event Setup
components/admin/setup/EventSetupView.tsx - Template Management
components/admin/setup/TemplatesTab.tsx - Hardware Diagnostics
components/admin/setup/HardwareStatusPanel.tsx
Booth & Media
- Booth Display
components/booth/BoothAttractScreen.tsx - Shoot Console
components/booth/ShootConsole.tsx - Template Renderer
lib/template-builder.ts - Hardware Adapter
lib/hardware.ts
Application Services
- Event API
app/api/events/route.ts - Queue API
app/api/queue/route.ts - Gallery API
app/api/gallery/route.ts - Media Upload
app/api/media/upload/route.ts - Print API
app/api/print/route.ts - UI Primitives
components/ui
Data & Integrations
- Data Access
lib/db.ts - Queue Engine
lib/queue.ts - Supabase
lib/supabase-server.ts - Rate Limiting
lib/rate-limit.ts
Other components
- Guest
- Operator
Connections 29
- Guest → Guest Registration: registers through
README.md - Guest → Queue Status: checks status
README.md - Guest → Personal Gallery: views photos
README.md - Operator → Queue Board: manages queue
README.md - Operator → Event Setup: configures events
README.md - Operator → Hardware Diagnostics: checks hardware
README.md - Queue Board → Shoot Console: calls guest
README.md - Booth Display → Operator: shows attract screen
README.md - Shoot Console → Template Renderer: renders layouts
components/booth/ShootConsole.tsx - Shoot Console → Hardware Adapter: uses hardware
components/booth/ShootConsole.tsx - Shoot Console → Personal Gallery: publishes memories
README.md - Shoot Console → Media Upload: uploads media
- Shoot Console → Print API: requests printing
- Event Setup → Event API: manages events
- Event Setup → Template Management: configures templates
README.md - Guest Registration → Queue Engine: adds guest
README.md - Guest Registration → Supabase: stores intake
app/api/intake/route.ts - Event API → Data Access: reads events
app/api/events/route.ts - Queue API → Data Access: updates queue
app/api/queue/route.ts - Gallery API → Data Access: saves gallery
app/api/gallery/route.ts - Gallery API → Supabase: queries media
app/api/gallery/route.ts - Gallery API → Rate Limiting: limits requests
app/api/gallery/route.ts - Data Access → Queue Engine: applies transitions
lib/db.ts - Data Access → Supabase: reads and writes
lib/db.ts - Media Upload → Supabase: stores assets
app/api/media/upload/route.ts - Print API → Data Access: reads print data
app/api/print/route.ts - Event Gallery → Gallery API: loads event gallery
app/(admin)/admin/gallery/page.tsx - Personal Gallery → Gallery API: loads guest gallery
README.md - Queue Board → UI Primitives: renders controls
components/admin/QueueBoardView.tsx