VioletPass is a robust, scalable ticket booking platform designed to simplify event management, seat reservations, and payment processing while ensuring high availability and fault tolerance using AWS services. An inital demo (not including all features) to the project can be found on this link.
- User Role:
- View events, manage bookings (view/cancel).
- Receive unique QR codes for tickets to confirm attendance.
- Admin Role:
- Manage events via an Admin Dashboard:
- Create events.
- View booking statistics and seat availability.
- Scan QR codes to validate entry and prevent duplicate use.
- Manage events via an Admin Dashboard:
- Create/manage events with metadata like name, venue, date, and seat capacity.
- Seat locking with Redis Elasticache:
- Prevents double booking with a 10-minute lock expiration.
- Event Search: Fast and intuitive via Amazon OpenSearch.
- Notifications: AWS SES sends booking confirmations, cancellations, and payment details.
- Unique QR codes for each booking; scanned by admins to validate attendance.
The platform leverages AWS services to ensure scalability and reliability:
- Amazon API Gateway: Routes requests to AWS Lambda.
- AWS Lambda: Handles seat reservations, payments, and event logic.
- Redis Elasticache: Manages locks to prevent duplicate bookings.
- Amazon RDS (PostgreSQL): Stores event, seat, and booking data.
- Amazon OpenSearch: Supports event searches.
- Amazon SES: Sends email notifications.
- Amazon S3: Hosts frontend assets.
- Amazon Cognito: Manages user authentication.
- AWS CodePipeline: CI/CD automation for deployments.
- Event Search: Users search for events.
- Seat Reservation: Selected seats are locked via Redis.
- Payment: Secure payment processing confirms bookings.
- QR Code: A unique QR code is generated for validated bookings.
- Admin Actions: Admins scan QR codes, manage events, and view booking statistics.
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh