TicketZone is a full-stack MERN (MongoDB, Express, React, Node.js) based Online Ticket Booking Platform where users can discover and book travel tickets such as Bus, Train, Launch, Plane, Flight, and Ship.
The platform supports three user roles: User, Vendor, and Admin, each with dedicated dashboards and permissions.
This project is designed with production-level architecture, secure authentication, and a recruiter-friendly UI/UX.
- Build a real-world ticket booking system using MERN stack
- Implement role-based dashboards and permissions
- Practice secure authentication and payment integration
- Deliver a fully deployed, production-ready application
Live URL: https://ticketzone19.netlify.app/
- MERN Stack application
- Firebase Authentication (Email/Password + Google)
- JWT / Firebase Token protected APIs
- Responsive design (Mobile, Tablet, Desktop)
- Dark / Light mode toggle
- Loading spinners & global error handling
- Secure environment variable usage
- Browse all approved tickets
- Search by From → To
- Filter by transport type
- Sort by price (Low → High, High → Low)
- Pagination (6–9 tickets per page)
- View ticket details with countdown timer
- Book tickets with quantity validation
- Stripe payment integration
- Booking status tracking (pending, accepted, rejected, paid)
- Transaction history
- Add tickets with image upload (imgbb)
- Manage own tickets (Update / Delete)
- View booking requests
- Accept or reject bookings
- Revenue overview with charts
- Ticket verification status tracking
- Approve / Reject vendor tickets
- Manage users (Make Admin / Vendor)
- Mark vendors as fraud
- Advertise tickets (max 6)
- Full platform control
- Navbar (Sticky)
- Outlet / Main Content
- Footer
- Logo: TicketZone
- Home
- All Tickets (Private)
- Dashboard (Private)
- Login / Register
- User Avatar Dropdown
- Logo & description
- Quick Links
- Contact Info
- Payment Methods
- Copyright
- Firebase Authentication
- Google Social Login
- Password validation:
- At least 1 uppercase letter
- At least 1 lowercase letter
- Minimum 6 characters
- Secure Firebase config using environment variables
- Secure MongoDB credentials via environment variables
- Protected private routes (no redirect on reload)
- Hero banner / slider
- Advertisement section (6 admin-selected tickets)
- Latest tickets section
- Extra custom sections
- Approved tickets only
- Search, filter, sort & pagination
- Full ticket details
- Countdown timer
- Book Now modal
- Quantity validation
- Profile
- My Booked Tickets
- Transaction History
- Profile
- Add Ticket
- My Added Tickets
- Requested Bookings
- Revenue Overview
- Profile
- Manage Tickets
- Manage Users
- Advertise Tickets
- Stripe integration
- Payment only after vendor acceptance
- Automatic ticket quantity reduction after payment
- Payment blocked after departure time
- React
- React Router DOM
- Tailwind CSS
- Firebase
- Axios
- React Query
- Stripe JS
- Chart.js / Recharts
- React Hook Form
- Sweetalert2
- Swiper
- Framer Motion
- Dotenv
- Vite
- DaisyUI
- Node.js
- Express.js
- MongoDB
- JWT
- Stripe
- CORS
- dotenv
- No CORS / 404 / 504 errors
- Firebase authorized domains added
- Private routes work on reload
- Server runs smoothly in production
- Live link loads without error
- Client: https://github.com/Turzo02/Ticket-Zone-FrontEnd
- Server: https://github.com/Turzo02/Ticket-Zone-BackEnd
© 2025 TicketZone. All rights reserved.