Skip to content

mihirgupta665/CinemaVerse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

132 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 CinemaVerse

A modern full-stack movie ticket booking platform that enables users to discover movies, explore showtimes, reserve seats, make secure online payments, and receive automated booking confirmations. The application also provides an admin dashboard for managing shows, bookings, and platform analytics.

React Vite Node.js MongoDB Stripe Clerk


🌐 Live Demo

Experience CinemaVerse live and explore the complete movie ticket booking workflowβ€”from authentication and movie discovery to secure Stripe payments, automated email confirmations, and the powerful admin dashboard.

Launch CinemaVerse

πŸ”— Live URL
πŸ‘‰ https://cinemaverse-three.vercel.app/

πŸ’³ Stripe Test Mode: Payments are processed using Stripe Test Mode. Use Stripe's official test card details to simulate successful transactions.


🎬 Demo Preview

Get a quick preview of the complete CinemaVerse experience in just 25 seconds.

CinemaVerse Demo Preview

Browse Movies β€’ View Details β€’ Watch Trailer β€’ Select Seats β€’ Stripe Checkout β€’ Booking History β€’ Favorites β€’ Admin Dashboard


πŸŽ₯ Full Application Walkthrough

Watch the complete 2-minute end-to-end demonstration showcasing every major feature of CinemaVerse.

Watch 2-Minute Demo

πŸŽ₯ Video URL
πŸ‘‰ πŸ”— https://github.com/user-attachments/assets/47d5c05e-a391-4ad2-beda-7a412c39a66e

βœ” Authentication Β β€’Β  βœ” Movie Discovery Β β€’Β  βœ” Trailer Playback Β β€’Β  βœ” Seat Selection Β β€’Β  βœ” Stripe Checkout Β β€’Β  βœ” Booking History Β β€’Β  βœ” Favorites Β β€’Β  βœ” Admin Dashboard Β β€’Β  βœ” Add Shows Β β€’Β  βœ” Manage Shows


πŸ“Έ Application Screenshots

Take a look at some of the key user and admin experiences that CinemaVerse offers.

🏠 Home Page 🎬 Movies
πŸ†• Latest Releases πŸŽ₯ Trailer Experience
🎞 Movie Details πŸ’Ί Seat Selection
πŸ’³ Stripe Checkout πŸ“– My Bookings
❀️ Favorites πŸ“Š Admin Dashboard
βž• Add Show 🎬 Manage Shows

✨ Features

πŸ‘€ User Features

  • Browse latest and featured movies
  • View complete movie information
  • Watch official trailers
  • Explore cast and movie details
  • Select preferred date and show timing
  • Interactive seat selection
  • Secure Stripe Checkout
  • Receive booking confirmation email
  • View booking history
  • Manage favourite movies
  • Clerk authentication
  • Responsive UI across devices

πŸ›  Admin Features

  • Secure admin dashboard
  • Add new movie shows
  • TMDB movie integration
  • View all active shows
  • Monitor total bookings
  • Track platform revenue
  • View registered users
  • Booking management

πŸš€ Tech Stack

Frontend

  • React 19
  • Vite
  • React Router DOM
  • Tailwind CSS
  • Axios
  • React Toastify
  • Lucide React
  • React Player

Backend

  • Node.js
  • Express.js
  • MongoDB Atlas
  • Mongoose
  • Clerk Authentication
  • Stripe Payment Gateway
  • Stripe Webhooks
  • Inngest
  • Nodemailer
  • TMDB API

Project Architecture

                   React Frontend
                         β”‚
                         β”‚
                 REST API Requests
                         β”‚
                         β–Ό
                  Express Backend
                         β”‚
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚            β”‚              β”‚             β”‚
      β–Ό            β–Ό              β–Ό             β–Ό
 MongoDB       Clerk Auth      TMDB API      Stripe
                                              β”‚
                                              β–Ό
                                      Stripe Webhook
                                              β”‚
                                              β–Ό
                                           Inngest
                                              β”‚
                                              β–Ό
                                    Email Notifications

πŸ“ Project Structure

CinemaVerse/
β”‚
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   └── main.jsx
β”‚   └── package.json
β”‚
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ configs/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ inngest/
β”‚   β”œβ”€β”€ middlewares/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ server.js
β”‚   └── package.json
β”‚
└── README.md

βš™οΈ Key Functionalities

Authentication

  • Secure sign-in/sign-up using Clerk
  • Protected routes
  • User session management

Movie Management

  • Movie details fetched from TMDB API
  • Automatic movie information
  • Trailer support
  • Cast information

Booking System

  • Date selection
  • Show selection
  • Seat reservation
  • Prevent double booking
  • Booking history

Payment Gateway

  • Stripe Checkout
  • Secure payment processing
  • Webhook verification
  • Booking confirmation after successful payment

Email Automation

  • Booking confirmation email
  • Ticket details
  • Background processing using Inngest

Admin Dashboard

  • Dashboard analytics
  • Revenue tracking
  • Booking management
  • Show management

πŸ” Environment Variables

Client (.env)

VITE_BASE_URL=http://localhost:3000

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

VITE_CLERK_PUBLISHABLE_KEY=YOUR_CLERK_KEY

VITE_CURRENCY=INR

Server (.env)

MONGODB_URI=YOUR_MONGODB_URI

TMDB_API_KEY=YOUR_TMDB_API_KEY

CLERK_SECRET_KEY=YOUR_CLERK_SECRET_KEY

STRIPE_SECRET_KEY=YOUR_STRIPE_SECRET_KEY

STRIPE_WEBHOOK_SECRET=YOUR_STRIPE_WEBHOOK_SECRET

SMTP_USER=YOUR_SMTP_USER

SMTP_PASS=YOUR_SMTP_PASSWORD

SENDER_EMAIL=YOUR_EMAIL

πŸ’» Installation

Clone the repository

git clone https://github.com/yourusername/CinemaVerse.git

Move into the project

cd CinemaVerse

Install frontend dependencies

cd client

npm install

Install backend dependencies

cd ../server

npm install

β–Ά Running the Project

Start Backend

npm run server

Start Frontend

cd client

npm run dev

Frontend

http://localhost:5173

Backend

http://localhost:3000

πŸ“¦ Available Scripts

Client

npm run dev

Runs Vite Development Server.

npm run build

Creates Production Build.

npm run preview

Preview Production Build.

npm run lint

Run ESLint.


Server

npm run server

Runs Backend with Nodemon.

npm start

Runs Backend using Node.


πŸ”„ Booking Workflow

User Login
      β”‚
      β–Ό
Browse Movies
      β”‚
      β–Ό
Select Show
      β”‚
      β–Ό
Choose Seats
      β”‚
      β–Ό
Stripe Checkout
      β”‚
      β–Ό
Payment Success
      β”‚
      β–Ό
Webhook Verification
      β”‚
      β–Ό
Booking Stored
      β”‚
      β–Ό
Email Sent

πŸš€ Deployment

Frontend

  • Vercel

Backend

  • Render

Database

  • MongoDB Atlas

Payments

  • Stripe Webhooks

Emails

  • Node Mailer

Automation

  • Inngest

🀝 Contributing

Contributions are welcome.

  1. Fork the repository

  2. Create a feature branch

git checkout -b feature-name
  1. Commit changes
git commit -m "Added feature"
  1. Push changes
git push origin feature-name
  1. Open a Pull Request

πŸ“„ License

This project is page only for education and learning purpose.


πŸ‘¨β€πŸ’» Author

Mihir Gupta

If you found this project helpful, consider giving it a ⭐ on GitHub.