-
Download the latest Node.js version from here and npm will be installed with nodejs.
-
Clone the repository
git clone <repo_link>
-
Navigate to the project directory
-
Install the required dependencies
npm install
-
Start the app
- Runs the react app in the development mode.
Open http://localhost:3000 to view it in your browser.npm run client
- Runs the backend server app in the development mode.
Open http://localhost:8080npm run server
- Runs the react app in the development mode.
-
Browse Movies: Users can easily explore a vast collection of movies based on genres, languages, and release dates.
-
Select Showtimes: Choose preferred showtimes and cinema locations based on availability.
-
Seat Selection: View the seating arrangement and select desired seats in real-time.
-
Booking Confirmation: Receive booking confirmation with a summary of selected seats, showtime, and cinema location.
-
**User Dashboard **: Secure login and registration for users, check reservation history, and manage personal information.
-
Dashboard for Theatre Owners: Theatre admins can manage their cinema information, view reservations, and analyze booking statistics.
-
Add Movies: Admins can easily add new movies to their cinemas and manage showtimes and seat availability.
-
Reservation Management: Admins can track all bookings, manage seat statuses, and handle ticket cancellations.
-
Business Analytics: Admin dashboard provides rich visualizations and statistical insights into bookings, sales, and customer behavior.
- Payment Integration: Integration with payment gateways to facilitate online transactions for booking tickets.
- Customer Reviews: Allow users to leave reviews and feedback for movies they have watched.
- Offers & Promotions: Admins can create and manage promotional offers for movie bookings.
- Frontend: React.js with Material-UI for creating a responsive and dynamic user interface.
- Backend: Node.js and Express.js for server-side logic, REST API endpoints, and business logic.
- Database: MongoDB (Atlas cloud cluster) for storing user, movie, and reservation data.
- State Management: Redux for managing application state and ensuring smooth UI updates across different components.
- Data Validation:
validator.js
library ensures that user inputs, such as email and phone numbers, are validated for correctness and security.
- User Roles: Three user roles are implemented: Guest, Admin, and Super Admin.
- Guest: General users who can browse movies, select showtimes, and book tickets.
- Admin: Theatre owners with access to manage cinemas, movies, and reservations.
- Super Admin: Application owner with full control over admin approval, user management, and analytics.
- Movie Management: Admins can add and edit movies, including title, cast, director, genre, and release dates. All movie data is stored in a MongoDB collection.
- Schema: Movie schema includes fields like
title
,cast
,director
,genre
,releaseDate
, andendDate
. - Movie Carousel & Listings: Frontend displays movies in carousels (e.g., "Now Showing" and "Coming Soon") and lists them dynamically based on user interactions and selections.
- Cinema & Seat Management: Admins can create cinemas, define seat arrangements, set ticket prices, and manage seat availability.
- Schema: Cinema schema includes fields like
name
,location
,seats
,ticketPrice
, andseatsAvailable
. - Seating Arrangement: Seat layout is rendered as a graphical grid, allowing users to choose specific seats during the booking process.
- Showtime Scheduling: Admins assign movies to specific cinemas with start and end dates for showtimes.
- Schema: Showtime schema links
movieId
andcinemaId
and includesstartDate
,endDate
, andshowtimes
. - Seat Reservation: The system tracks booked and available seats for each showtime.
- User Flow: Users select their desired movie, cinema, and showtime, then proceed to the seat selection interface.
- Graphical Seat Layout: Users can visually select their seats in real-time.
- Booking Confirmation: After seat selection, users are presented with a booking summary page before confirming the reservation.
- Reservation Schema: Reservations are saved in MongoDB, with fields like
movieId
,cinemaId
,showtime
,seats
,ticketPrice
, andtotal
.
- Dashboard Overview: Admin and Super Admin users have access to dashboards that provide insights into bookings, seat utilization, and cinema performance.
- Admin Management: Super Admins have additional privileges to approve theatre owners as Admins.
- Analytics: The admin dashboard includes graphical visualizations to track revenue, movie popularity, and user engagement.
Charan Gajjala Chenchu |
Chinna Hari Krishna |
Chitalapati Sree Ram Varama |
This project is licensed under the MIT License - see the License file for details.
-
React Documentation
Official documentation for React.js, a JavaScript library for building user interfaces. -
Material-UI Documentation
Material-UI is a popular React UI framework for implementing Google's Material Design. -
Express Documentation
Documentation for Express.js, a fast, minimalist web framework for Node.js. -
Mongoose Documentation
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. -
bcrypt.js Documentation
bcrypt.js is a library for hashing passwords and ensuring secure storage in the database. -
JWT (jsonwebtoken) Documentation
JSON Web Tokens (JWT) are used to securely transmit information between parties. -
Redux Documentation
Redux is a predictable state container for JavaScript applications, often used with React. -
Moment.js Documentation
Moment.js is a popular library for parsing, validating, manipulating, and formatting dates. -
MongoDB Atlas
MongoDB Atlas is a fully managed cloud database service built for modern applications. -
Node.js Documentation
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. -
Multer Documentation
Multer is a middleware for handling multipart/form-data, used for file uploads in Node.js applications. -
Chart.js Documentation
Chart.js is a simple yet flexible JavaScript charting library for designers and developers. -
Google GeeksForGeeks - Design Movie Ticket Booking System
A tutorial for designing a movie ticket booking system similar to BookMyShow. -
GitHub - MovieStore Code Repository
The GitHub repository for the source code of the Movie Ticket Booking System project.