Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


QuickShow Project Banner

🎬 QuickShow – Movie Theater Booking Platform

Full-stack movie booking experience built with React, Node.js, and MongoDB. Book tickets in real-time, manage theaters, process payments, and enjoy an admin dashboard that brings the magic of cinema to your fingertips.
Designed for movie lovers, admins, and modern theaters seeking a digital booking system.

Live Demo

πŸ“‹ Table of Contents

  1. ✨ Introduction
  2. βš™οΈ Tech Stack
  3. πŸ”‹ Features
  4. 🀸 Quick Start
  5. 🧱 Project Structure
  6. 🧩 API Overview
  7. πŸ“ Customization
  8. 🀝 Contribution
  9. πŸ”— Contacts
  10. πŸ“„ License
  11. πŸ™ Acknowledgements

✨ Introduction

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.


βš™οΈ Tech Stack

πŸ’» Frontend

  • 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

βš™οΈ Backend

  • 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

πŸ”‹ Features

  • 🎟️ 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

🀸 Quick Start

Prerequisites

Ensure the following are installed:

Installation Steps

# Clone the repository
git clone [https://github.com/hoqueeprobal/QuickShow]
cd QuickShow

# Install dependencies
cd client && npm install
cd ../server && npm install

Environment Variables

Create .env files in both client and server directories:

Server (.env)

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=

Client (.env)

VITE_CURRENCY='β‚Ή'

VITE_CLERK_PUBLISHABLE_KEY=

VITE_BASE_URL=http://localhost:3000

VITE_TMDB_IMAGE_BASE_URL=https://image.tmdb.org/t/p/original

Run the Project

# Start backend
cd server
npm run dev

# Start frontend
cd client
npm run dev

Open πŸ‘‰ http://localhost:5173 to explore QuickShow.


🧱 Project Structure

QuickShow/
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ vite.config.js
β”‚   └── vercel.json
└── server/
    β”œβ”€β”€ configs/
    β”œβ”€β”€ controllers/
    β”œβ”€β”€ models/
    β”œβ”€β”€ routes/
    β”œβ”€β”€ inngest/
    β”œβ”€β”€ server.js
    └── vercel.json

🧩 API Overview

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

πŸ“ Customization

  • 🎨 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 .env files

🀝 Contribution

Contributions are welcome!

  1. Fork this repository
  2. Create a new branch (feature/my-feature)
  3. Commit your changes (feat: added new feature)
  4. Push to your branch
  5. Submit a Pull Request πŸŽ‰

πŸ“„ License

This project is for educational use only. All trademarks, logos, and assets belong to their respective owners.


πŸ™ Acknowledgements


⭐ Show Your Support

If you like QuickShow, give it a ⭐ on GitHub and share it with your network!


About

QuickShow is a full-stack movie ticket booking platform built using React, Node.js, Express and MongoDB. It enables users to book movie tickets in real-time and provides admins with a powerful dashboard to manage theaters, movies and bookings efficiently

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages