A full-stack movie ticket booking application that allows users to browse movies, view detailed information, and book seats for selected showtimes. The platform features secure user authentication (including Google login), interactive seat selection, real-time seat availability checks, and concurrency handling to prevent double-booking using MongoDB transactions. Users can search and filter movies by title or location, view ratings and reviews, and filter showtimes by date.
- User registration and login
- Signup and login forms
- Validation and error display
- Login with Google (OAuth integration)
- Browse and filter movies
- Search by movie title
- Filter by location
- Movie details page
- Ratings, reviews, description, etc.
- Showtimes list
- Grouped by city and theatre
- Date filter for showtimes
- Seat selection page
- Interactive seat map (available, booked, selected)
- Real-time seat availability updates to avoid conflicts
- User Authentication
- API for user registration
- API for user login (JWT token)
- Google OAuth login API
- Secure password hashing & storage
- Middleware for route protection
- Movies data
- API to get all available movies
- API to search movies by title/location
- API to get movie details & reviews by ID
- Showtimes
- API to get showtimes for a selected movie
- API to filter showtimes by date
- Seat booking system
- API to get available seats
- API to book seats
- Concurrency handling to prevent double-booking using MongoDB transactions
- React.js → Core frontend framework for building UI components
- React Router DOM → Client-side routing between pages
- Axios → For making HTTP requests to backend APIs
- CSS → Custom styling
- Vite → Development server & build tool
- Node.js → JavaScript runtime for backend
- Express.js → Web framework for REST APIs
- Mongoose → MongoDB object modeling tool
- MongoDB → NoSQL database to store movies, showtimes, and bookings
- npm → Package manager for dependencies
- Git & GitHub → Version control and code hosting
- Postman → API testing tool
- Clone the repository
git clone https://github.com/Raga1045/Movie-Ticket-Booking.git
cd Movie-Ticket-Booking
- Setup Environment Variables
Create a .env file in the src folder with the following:
env
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
PORT=5000
Replace your_mongodb_connection_string with your actual MongoDB connection URI and your_jwt_secret with any secure string.
- Install Dependencies The project has frontend and backend parts, so install dependencies for both.
Backend
cd ../backend
npm install
cd ../src
node server.js
Frontend
cd ../FE
npm install
npm run dev
- Rishika
- Raga Hasini
- Mahathi