How dorayakiiiiz/ticket-box works
TicketBox is an event-ticketing platform with a Next.js audience/admin web app, a NestJS API, and a documented Flutter check-in app. The main flow is discover a concert, reserve limited inventory, pay through MoMo or VNPay, then retrieve and scan tickets. Organizer capabilities include concert and ticket-type management, AI-generated artist bios, guest imports, and dashboards. The README documents Redis/BullMQ concurrency controls and offline mobile sync; mobile implementation files and several service internals were not sampled, so those links are limited to documented behavior and supported tree paths.
Main entry points: services Web API clients · concert Concert catalog · booking Booking processing · payment Payment strategies
Components 24
Web experience
- Web app
src/frontend/src/app - Web API clients
src/frontend/src/services
Ticket commerce
- Concert catalog
src/backend/src/concert - Booking API
src/backend/src/booking/booking.controller.ts - Booking processing
src/backend/src/booking - Order processing
src/backend/src/booking/order.processor.ts - Payment API
src/backend/src/payment/payment.controller.ts - Payment strategies
src/backend/src/payment - Ticket services
src/backend/src/ticket
Event operations
- Admin dashboard
src/backend/src/admin - Guest management
src/backend/src/guest - AI bio worker
src/backend/src/concert/ai-bio.processor.ts - Flutter check-in app
src/mobile
Shared platform
- Authentication
src/backend/src/auth - Redis inventory
src/backend/src/redis - PostgreSQL
- AI providers
src/backend/src/ai-provider - Notification worker
src/backend/src/notification - File storage
src/backend/src/storage
Other components
- Ticket buyer
- Organizer
- Check-in staff
- Payment gateways
- Supabase services
Connections 30
- Ticket buyer → Web app: browses and books
- Organizer → Web app: manages events
- Web app → Web API clients: uses API clients
- Web API clients → Authentication: auth requests
- Web API clients → Concert catalog: concert requests
- Web API clients → Booking API: booking requests
- Web API clients → Payment API: payment requests
- Web API clients → Ticket services: ticket requests
- Authentication → PostgreSQL: reads and writes
- Authentication → Notification worker: queues OTP email
- Concert catalog → PostgreSQL: reads and writes
- Concert catalog → File storage: uploads files
- File storage → Supabase services: stores images
- Concert catalog → AI bio worker: queues bio work
- AI bio worker → AI providers: requests summaries
- Booking API → Booking processing: handles booking
- Booking processing → Redis inventory: reserves inventory
- Booking processing → Order processing: queues orders
- Order processing → PostgreSQL: updates orders
- Payment API → Payment strategies: creates URLs and handles IPN
- Payment strategies → Payment gateways: requests payment
- Payment strategies → Order processing: settles order
- Ticket services → PostgreSQL: reads and writes
- Web API clients → Admin dashboard: admin requests
- Admin dashboard → PostgreSQL: reads and writes
- Web API clients → Guest management: guest requests
- Guest management → PostgreSQL: reads and writes
- Guest management → Flutter check-in app: serves sync data
- Flutter check-in app → Ticket services: scans and syncs tickets
- Check-in staff → Flutter check-in app: checks in attendees