Designed for movie lovers, admins, and modern theaters seeking a digital booking system.
- ✨ Introduction
- ⚙️ Tech Stack
- 🔋 Features
- 🤸 Quick Start
- 🧱 Project Structure
- 🧩 API Overview
- 📝 Customization
- 🤝 Contribution
- 🔗 Contacts
- 📄 License
- 🙏 Acknowledgements
QuickShow is a modern movie theater booking platform that simplifies ticket management for users and admins alike.
It features real-time seat booking, secure payments, and an intuitive admin dashboard for theater management.
🎯 Whether you’re running a cinema or booking your next movie night — QuickShow offers a seamless, interactive experience.
- React + Vite – Fast, modern frontend setup for interactive UIs
- Tailwind CSS – Clean, responsive design system
- React Router DOM – Smooth navigation and route management
- Axios – For efficient API communication
- Lucide React – Lightweight and elegant icon library
- Node.js + Express 5 – Robust API and server framework
- MongoDB + Mongoose – Scalable and schema-based data management
- Stripe – Secure online payment processing
- Clerk – Authentication and user management with roles
- Cloudinary – Media storage for posters and images
- Nodemailer – Automated booking email confirmations
- Inngest – Background jobs and workflow automation
- 🎟️ Smart Booking System – Real-time seat availability and interactive seat layouts
- 💳 Secure Payments – Integrated with Stripe for ticket purchases
- 👥 User Management – Login, favorites, and profile powered by Clerk
- 🧑💼 Admin Dashboard – Manage movies, shows, and analytics
- 🎬 Movie Catalog – Browse movies with ratings, trailers, and details
- 📧 Email Notifications – Instant booking confirmations via Nodemailer
- ☁️ Cloud Storage – Efficient media management using Cloudinary
- 📱 Responsive UI – Seamless experience on all devices
- ⚡ Event Workflows – Background operations powered by Inngest
Ensure the following are installed:
- Git
- Node.js
- MongoDB Atlas
- Vercel (for deployment)
# Clone the repository
git clone [https://github.com/hoqueeprobal/QuickShow]
cd QuickShow
# Install dependencies
cd client && npm install
cd ../server && npm installCreate .env files in both client and server directories:
MONGODB_URI=
CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
INNGEST_EVENT_KEY=
INNGEST_SIGNING_KEY=
TMDB_API_KEY=
STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
SENDER_EMAIL=
SMTP_USER=
SMTP_PASS=VITE_CURRENCY='₹'
VITE_CLERK_PUBLISHABLE_KEY=
VITE_BASE_URL=http://localhost:3000
VITE_TMDB_IMAGE_BASE_URL=https://image.tmdb.org/t/p/original# Start backend
cd server
npm run dev
# Start frontend
cd client
npm run devOpen 👉 http://localhost:5173 to explore QuickShow.
QuickShow/
├── client/
│ ├── src/
│ ├── public/
│ ├── vite.config.js
│ └── vercel.json
└── server/
├── configs/
├── controllers/
├── models/
├── routes/
├── inngest/
├── server.js
└── vercel.json
| Endpoint | Method | Description |
|---|---|---|
/api/show |
GET | Fetch available shows |
/api/booking |
POST | Create a new booking |
/api/user/bookings |
GET | Get all user bookings |
/api/user/update-favourite |
POST | Add or remove favorite movies |
/api/user/favourites |
GET | Fetch user favorite movies |
/api/admin/add-show |
POST | Admin: Add a new show |
/api/stripe/webhook |
POST | Stripe webhook for payments |
- 🎨 Update branding & colors in
client/src/index.css - 🖼️ Replace hero images in
client/public/readme/ - 🧠 Modify API routes in
server/routes/ - 💼 Configure environment settings in
.envfiles
Contributions are welcome!
- Fork this repository
- Create a new branch (
feature/my-feature) - Commit your changes (
feat: added new feature) - Push to your branch
- Submit a Pull Request 🎉
This project is for educational use only. All trademarks, logos, and assets belong to their respective owners.
- React – Frontend framework
- Node.js – Backend runtime
- Tailwind CSS – Styling framework
- Vercel – Hosting platform
- Stripe – Payment gateway
- Clerk – Authentication
- Cloudinary – Media storage
- Inngest – Background workflows
If you like QuickShow, give it a ⭐ on GitHub and share it with your network!