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.
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.
π 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.
Get a quick preview of the complete CinemaVerse experience in just 25 seconds.
Browse Movies β’ View Details β’ Watch Trailer β’ Select Seats β’ Stripe Checkout β’ Booking History β’ Favorites β’ Admin Dashboard
Watch the complete 2-minute end-to-end demonstration showcasing every major feature of CinemaVerse.
π₯ 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
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 |
|---|---|
![]() |
![]() |
- 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
- 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
- React 19
- Vite
- React Router DOM
- Tailwind CSS
- Axios
- React Toastify
- Lucide React
- React Player
- Node.js
- Express.js
- MongoDB Atlas
- Mongoose
- Clerk Authentication
- Stripe Payment Gateway
- Stripe Webhooks
- Inngest
- Nodemailer
- TMDB API
React Frontend
β
β
REST API Requests
β
βΌ
Express Backend
β
ββββββββββββββ¬βββββββββββββββ¬ββββββββββββββ
β β β β
βΌ βΌ βΌ βΌ
MongoDB Clerk Auth TMDB API Stripe
β
βΌ
Stripe Webhook
β
βΌ
Inngest
β
βΌ
Email Notifications
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
- Secure sign-in/sign-up using Clerk
- Protected routes
- User session management
- Movie details fetched from TMDB API
- Automatic movie information
- Trailer support
- Cast information
- Date selection
- Show selection
- Seat reservation
- Prevent double booking
- Booking history
- Stripe Checkout
- Secure payment processing
- Webhook verification
- Booking confirmation after successful payment
- Booking confirmation email
- Ticket details
- Background processing using Inngest
- Dashboard analytics
- Revenue tracking
- Booking management
- Show management
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=INRMONGODB_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_EMAILClone the repository
git clone https://github.com/yourusername/CinemaVerse.gitMove into the project
cd CinemaVerseInstall frontend dependencies
cd client
npm installInstall backend dependencies
cd ../server
npm installStart Backend
npm run serverStart Frontend
cd client
npm run devFrontend
http://localhost:5173
Backend
http://localhost:3000
npm run devRuns Vite Development Server.
npm run buildCreates Production Build.
npm run previewPreview Production Build.
npm run lintRun ESLint.
npm run serverRuns Backend with Nodemon.
npm startRuns Backend using Node.
User Login
β
βΌ
Browse Movies
β
βΌ
Select Show
β
βΌ
Choose Seats
β
βΌ
Stripe Checkout
β
βΌ
Payment Success
β
βΌ
Webhook Verification
β
βΌ
Booking Stored
β
βΌ
Email Sent
- Vercel
- Render
- MongoDB Atlas
- Stripe Webhooks
- Node Mailer
- Inngest
Contributions are welcome.
-
Fork the repository
-
Create a feature branch
git checkout -b feature-name- Commit changes
git commit -m "Added feature"- Push changes
git push origin feature-name- Open a Pull Request
This project is page only for education and learning purpose.
Mihir Gupta
If you found this project helpful, consider giving it a β on GitHub.












