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!