0% found this document useful (0 votes)
70 views58 pages

Semester6 Major Project Final

Uploaded by

Sahil Gaikwad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views58 pages

Semester6 Major Project Final

Uploaded by

Sahil Gaikwad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 58

Chandigarh University

Chandigarh University (CU or CUCHD), is INDIA’S No.1 Private University that is accredited by NBA
and with an A+ Grade by the NAAC

A Project report on

Movie Booking Website Application using MERN Stack

Submitted in partial fulfilment of the requirement for the


award of the degree of

BACHELOR OF COMPUTER APPLICATIONS


By
Sahil Sanjay Gaikwad
UID:-O2BCA16367
UNDER THE GUIDENCE OF
Shailesh Pateliya

Drive Link for Project Presentation and Code:-https://drive.google.com/drive/folders/1IQ-


DgdSn0v8O1OrKt5Gc30Gl1pxsRQnt?usp=sharing

1|Page
Synopsis/Summary or Abstract
Statement about the Problem
In today's fast-paced world, convenience is paramount. Traditional methods of
booking movie tickets, such as queuing at physical counters or relying on
limited phone booking services, are often inconvenient and time-consuming.
This project aims to resolve these issues by providing a modern, efficient, and
user-friendly solution for booking movie tickets online. The goal is to create an
application that allows users to seamlessly browse movies, select showtimes,
choose seats, and book tickets from the comfort of their homes or on the go.

Why This Topic Was Chosen


The decision to create a Movie Booking Website Application stems from the
increasing demand for digital services that enhance convenience and
streamline everyday tasks. With the widespread adoption of smartphones and
the internet, users expect to perform tasks like booking movie tickets quickly
and easily online. The project also offers an excellent opportunity to apply and
demonstrate proficiency in the MERN stack (MongoDB, Express.js, React.js,
Node.js), a powerful set of technologies for developing full-stack web
applications. This choice reflects the goal of addressing a real-world problem
while leveraging cutting-edge technology to provide an optimal solution.

Objective and Scope of the Project


The primary objective of this project is to develop a comprehensive movie
booking platform that offers a seamless and enjoyable user experience. The
scope of the project includes:

User Interface: Designing an intuitive and responsive interface that allows


users to easily navigate through the application, search for movies, view
showtimes, and book tickets.
Authentication: Implementing secure user authentication to protect user data
and ensure that only authorized users can access certain features of the
application.

2|Page
Booking Management: Providing a robust system for managing movie listings,
showtimes, seat selection, and booking confirmation.
Admin Interface: Creating an interface for theater administrators to manage
movie schedules, monitor bookings, and perform other administrative tasks.
Payment Integration: Ensuring secure and convenient payment processing to
facilitate seamless transactions.
Scalability: Designing the system to handle a large number of users and
transactions, with the potential for future enhancements.
Methodology
The project follows the Agile development methodology, promoting iterative
development and continuous feedback to ensure the final product meets user
needs. The key phases of the project are:

Requirements Gathering:

Conducting surveys and interviews to understand user needs and expectations.


Analysing existing solutions to identify gaps and areas for improvement.
System Design:

Creating wireframes and mockups to visualize the user interface.


Designing the database schema and defining API endpoints.
Developing detailed specifications for each module.
Frontend Development:

Building the user interface using React.js.


Implementing state management with Redux.
Ensuring responsive design for optimal viewing on different devices.
Backend Development:

3|Page
Setting up the server using Node.js and Express.js.
Developing API endpoints for user authentication, movie listings, and booking
management.
Integrating with MongoDB for data storage.
Database Integration:

Using MongoDB to store user data, movie information, showtimes, and


booking records.
Implementing efficient data retrieval and update mechanisms.
Testing:

Conducting unit tests to verify individual components.


Performing integration tests to ensure seamless interaction between
components.
Carrying out user acceptance testing (UAT) to validate the system against user
requirements.
Deployment:

Deploying the application on AWS for high availability and scalability.


Setting up continuous integration and continuous deployment (CI/CD)
pipelines for automated testing and deployment.
Maintenance:

Monitoring the application for performance and security issues.


Releasing updates to add new features and fix bugs.
Providing user support and addressing feedback.

4|Page
Hardware & Software to be Used
Hardware:

Development machines with standard specifications.


Netlify for Fronted Deployment
Render For Backend Deployment
Software:

Frontend: React.js, Redux, Axios for HTTP requests.


Backend: Node.js, Express.js, Nodemon.
Database: MongoDB Atlass.
Development Tools: Visual Studio Code, Git for version control, npm for
package management.
Testing Tools: Jest for unit testing, Postman for API testing.
Deployment Tools: AWS services such as EC2, S3, and RDS.

5|Page
Main Report
Objective & Scope of the Project
Objective:
The primary objective of this project is to develop a Movie
Booking Website Application using the MERN (MongoDB,
Express.js, React.js, Node.js) stack. This application aims to
provide users with a seamless and efficient platform to
search for movies, view showtimes, and book tickets online.
By leveraging the power of modern web technologies, the
application seeks to enhance user experience and streamline
the movie ticket booking process.

Scope:
The scope of the project encompasses the following features:

User Registration and Authentication: Secure user


registration and login functionality, ensuring that user data is
protected.
Movie Search and Display: A robust search feature that
allows users to find movies based on various criteria such as
title, genre, and release date.
Showtime Listings: Display of available showtimes for each
movie, enabling users to choose convenient viewing times.
Ticket Booking: A straightforward booking process that
includes seat selection and ticket reservation.

6|Page
User Profile Management: Functionality for users to manage
their profiles, view booking history, and update personal
information.
Admin Dashboard: An administrative interface for managing
movies, showtimes, and user data.
By addressing these features, the project aims to deliver a
comprehensive and user-friendly movie booking experience.

7|Page
Theoretical Background
The MERN stack is a popular and efficient framework for
building full-stack web applications. It consists of the
following components:

MongoDB: A NoSQL database that stores data in a flexible,


JSON-like format. It is used for its scalability and ease of
integration with JavaScript applications. MongoDB’s
document-oriented storage is highly compatible with the
data structure of modern applications, making it a preferred
choice for many developers.

Express.js: A minimalist web framework for Node.js that


simplifies the development of server-side applications. It
provides robust features for building web and mobile
applications. Express.js makes handling HTTP requests,
routing, and middleware management straightforward,
allowing developers to focus on building core functionalities.

React.js: A JavaScript library for building user interfaces.


Developed by Facebook, it allows developers to create large
web applications that can update and render efficiently in
response to data changes. React’s component-based
architecture promotes reusability and maintainability of
code, which is essential for developing scalable applications.

8|Page
Node.js: A JavaScript runtime built on Chrome's V8 engine. It
allows the execution of JavaScript on the server side, making
it possible to build scalable and high-performance
applications. Node.js is known for its event-driven, non-
blocking I/O model, which makes it efficient and suitable for
data-intensive real-time applications.

The synergy of these technologies allows developers to


create powerful web applications with a unified language
(JavaScript) across both the client and server sides. This
simplifies the development process and improves
communication between team members.

9|Page
Definition of Problem
Traditional methods of booking movie tickets, such as in-
person purchases or phone reservations, are often time-
consuming and inconvenient. Users face long queues, limited
ticket availability, and the hassle of coordinating schedules.
These issues highlight the need for a streamlined online
system that allows users to book movie tickets from the
comfort of their homes, ensuring convenience, efficiency,
and accessibility.

Main Problems Identified:

Inefficiency: Traditional booking methods are slow and prone


to errors. Customers often have to wait in long lines, which
can lead to frustration and dissatisfaction.
Inconvenience: Users need to physically visit theaters or call
to reserve tickets, which is not always feasible, especially for
those with busy schedules or living far from the theaters.
Limited Access: Geographical and time constraints limit users'
ability to book tickets. Some users may not have access to
theatre’s during working hours, and calling for reservations
can be inconvenient and unreliable.

10 | P a g e
Proposed Solution:
To address these problems, this project proposes the
development of a Movie Booking Website Application that
allows users to:

Search for movies by various criteria.


View available ShowTime’s.
Book tickets online.
Manage their bookings and profiles.
This solution aims to improve the movie booking experience
by providing a user-friendly and efficient online platform.

11 | P a g e
System Analysis & Design vis-a-vis User Requirements

User Requirements:

Ease of Use: The application must be user-friendly and easy


to navigate. Users should be able to search for movies, view
ShowTime’s, and book tickets with minimal effort.
Security: Secure handling of user data and transactions is
critical. The system should ensure data privacy and protect
against unauthorized access.
Reliability: The system should be reliable with minimal
downtime. Users should be able to access the application and
book tickets without interruptions.
Efficiency: Quick search and booking processes are essential
to provide a seamless user experience. The system should
respond promptly to user actions.
Scalability: The application should be able to handle a large
number of users and transactions, especially during peak
times.

12 | P a g e
System Design:

Frontend: The frontend is developed using React.js, providing


a dynamic and responsive user interface. React's component-
based architecture allows for efficient code reuse and easy
maintenance. The use of modern design principles and UI
frameworks ensures that the application is visually appealing
and intuitive.
Backend: The backend is built with Node.js and Express.js,
handling server-side logic and API requests. Express simplifies
the routing and middleware setup, ensuring robust backend
functionality. The use of RESTful APIs facilitates
communication between the frontend and backend.
Database: MongoDB is used to store user data, movie details,
and booking information. Its flexible schema design
accommodates evolving data requirements. The database is
designed to handle complex queries efficiently and ensure
data integrity.
The architecture ensures that user interactions are smooth
and data transactions are secure and efficient. The
separation of concerns between the frontend and backend
allows for independent development and testing, improving
the overall development workflow.

13 | P a g e
14 | P a g e
System Planning (PERT Chart)
A PERT (Program Evaluation Review Technique) chart is used
to visualize the project timeline and milestones. It helps in
planning and coordinating various project activities to ensure
timely completion. Key milestones include:

Project Initiation:

Requirements gathering
Initial planning and timeline estimation
Design Phase:

Creating the system architecture


Designing the database schema
Developing wireframes and UI mock-ups
Development Phase:

Setting up the development environment


Coding the frontend and backend
Integrating the database
Testing Phase:

Conducting unit tests


15 | P a g e
Performing integration tests
User acceptance testing
Deployment:

Deploying the application to a live server


Performing post-deployment checks

Monitoring and optimization

Maintenance:

Regular updates and bug fixes


Adding new features based on user feedback
Ensuring system security and performance
The PERT chart outlines the dependencies between tasks and
helps identify the critical path, ensuring that the project stays
on track and is completed on time.

16 | P a g e
17 | P a g e
Process Logic of Each Module and Code Snippets
Code Github Repo:- https://github.com/DragoonKing/Movie-
Booking.git
Backend:-
1. app.js

2. dbConnect.js

18 | P a g e
3. Data Models
a. Admin

b. User

19 | P a g e
c. Movies

d. Bookings

20 | P a g e
4. Routes
a. Admin Routes

b. User Routes

c. Movie Routes

21 | P a g e
d. Booking Routes

5. Route Controllers
a. Admin Controllers

22 | P a g e
b. User Controllers

c. Movie Controllers

23 | P a g e
d. Booking Controllers

6.All Dependencies Used for Backend

24 | P a g e
Frontend
1. App.js

25 | P a g e
2. Index.js

3. Api-Connectors

26 | P a g e
4. Admin and User Form Login and Control

27 | P a g e
28 | P a g e
5. Bookings Form and Logic

29 | P a g e
6. Header

30 | P a g e
7. User & Admin Profile

31 | P a g e
32 | P a g e
8. Making Navbar Dynamic using Redux logic

9. Form to ADD Movies, Card and All Movies Page

33 | P a g e
34 | P a g e
10. All the Dependencies Used For Frontend

Project Working Screenshots


Live Url: - https://bestmovie-bookings.netlify.app
Home Page

35 | P a g e
Login/Sign Up Page

36 | P a g e
Profile Page Before Booking

Booking Movie Page

37 | P a g e
Profile Page showing Bookings in Profile Bookings can also be
deleted.

Using PostMan to Create Admin Id

38 | P a g e
Home Page for Admin Users

Form to Add Movie for Admins Only

39 | P a g e
Data Base Screenshots

40 | P a g e
41 | P a g e
Methodology Adopted, System Implementation & Details of
Hardware & Software Used

Methodology:
The Agile development methodology was adopted to ensure
iterative progress and continuous feedback. This approach
allows for flexibility and adaptability, accommodating
changes in requirements and feedback from users. The
project was divided into multiple sprints, with each sprint
focusing on specific features or components of the system.
Regular meetings and updates ensured that the project
stayed on track and that any issues were addressed
promptly.

Implementation:
The development environment included Visual Studio Code
for coding, Git for version control, and various npm (Node
Package Manager) packages for additional functionality. The
backend was implemented using Node.js and Express.js,
while the frontend was developed with React.js. MongoDB
was used for the database.

Frontend Development:

React.js was used for building the user interface.

42 | P a g e
React Router was implemented for client-side routing.
Redux was used for state management.
Axios was used for making HTTP requests to the backend.
Backend Development:

Node.js and Express.js were used for building the server-side


logic.
Nodemon is a tool that helps develop Node. js based
applications by automatically restarting the node application
when file changes in the directory are detected. nodemon
does not require any additional changes to your code or
method of development. nodemon is a replacement wrapper
for node
Mongoose was used for database operations with MongoDB.
JWT was used for authentication and session management.
bcrypt was used for hashing passwords.
Hardware & Software:

Hardware: A standard development machine with internet


access.
Software: MongoDB, Express.js, React.js, Node.js, Git, Visual
Studio Code, and various npm packages for added
functionalities.

43 | P a g e
The use of modern development tools and frameworks
ensured that the application was built efficiently and
maintained high standards of code quality.

System Maintenance & Evaluation


System Maintenance:
The system maintenance plan includes regular updates and
bug fixes to ensure optimal performance. User feedback will
be continuously gathered to identify areas for improvement
and to add new features. Regular evaluations will be
conducted to assess system performance, security, and user
satisfaction.

44 | P a g e
Updates: New features and enhancements will be added
based on user feedback and technological advancements.
Bug Fixes: Any issues or bugs reported by users will be
promptly addressed to ensure a smooth user experience.
Security: Regular security audits will be conducted to identify
and mitigate potential vulnerabilities.
Evaluation:
The system will be evaluated based on various criteria,
including:

Performance: Response times, load handling, and overall


speed.
Usability: User feedback on the ease of use and navigation.
Reliability: Uptime and error rates.
Scalability: Ability to handle increased user load without
performance degradation.
Regular evaluations will ensure that the system remains
robust, secure, and user-friendly.

Cost and Benefit Analysis


Cost Analysis:

Development Costs: Time and effort invested by the


development team, including salaries and overheads.
45 | P a g e
Hosting Costs: Expenses for server hosting and domain
registration. This includes initial setup costs as well as
ongoing monthly or annual fees.
Maintenance Costs: Ongoing costs for maintaining and
updating the application, including server maintenance,
security updates, and feature enhancements.
Benefit Analysis:

User Convenience: Provides a hassle-free and efficient way to


book movie tickets. Users can book tickets from anywhere, at
any time, without the need to visit the theater physically.
Increased Sales: Easier access to ticket booking can lead to
increased sales and revenue for theaters. Online booking
systems can attract a wider audience and facilitate impulse
purchases.
Competitive Advantage: Offers a modern solution that meets
the demands of today’s tech-savvy users. The application can
help theaters differentiate themselves from competitors who
rely on traditional booking methods.
The cost-benefit analysis demonstrates that the initial
investment in developing the application is justified by the
significant benefits it provides to users and theaters.

46 | P a g e
47 | P a g e
Detailed Life Cycle of the Project
The project life cycle includes the following phases:

Initiation:

Identifying Goals: Understanding the objectives and scope of


the project.
Stakeholder Analysis: Identifying and engaging stakeholders
to gather requirements and expectations.
Planning:

Project Plan: Developing a detailed project plan, including


timelines, milestones, and resource allocation.
Risk Management: Identifying potential risks and developing
mitigation strategies.
Design:

System Architecture: Creating a high-level design of the


system, including data flow and component interaction.
Database Schema: Designing the database schema to ensure
efficient data storage and retrieval.
UI Mockups: Developing wireframes and UI mockups to
visualize the user interface and user experience.

48 | P a g e
Development:

Frontend Development: Coding the user interface using


React.js.
Backend Development: Implementing server-side logic using
Node.js and Express.js.
Database Integration: Connecting the application to
MongoDB and implementing CRUD operations.
Testing:
Unit Testing: Testing individual components to ensure they
function correctly.
Integration Testing: Testing the interaction between different
components to ensure seamless integration.
User Acceptance Testing: Involving users to test the
application and provide feedback.
Deployment:
Server Setup: Setting up the server environment and
deploying the application.
Live Testing: Conducting tests on the live environment to
ensure everything is working as expected.

Maintenance:
Regular Updates: Releasing updates to add new features and
fix bugs.

49 | P a g e
User Support: Providing support to users and addressing their
issues and concerns.
Evaluation:

Performance Monitoring: Continuously monitoring the


application’s performance and making necessary
improvements.
User Feedback: Gathering feedback from users to understand
their experience and identify areas for improvement.
By following this detailed project life cycle, the development
team ensures that all aspects of the project are thoroughly
planned, executed, and evaluated, resulting in a high-quality
final product.

50 | P a g e
51 | P a g e
Future Scope & Enhancements
The future scope of the Movie Booking Website Application
includes several enhancements to further improve user
experience and functionality. Potential enhancements
include:

Mobile App: Developing a mobile application for iOS and


Android to provide users with a more convenient booking
option on their smartphones.
Payment Integration: Integrating multiple payment gateways
to offer users a variety of payment options, including credit
cards, digital wallets, and bank transfers.
Personalized Recommendations: Implementing machine
learning algorithms to provide personalized movie
recommendations based on user preferences and viewing
history.
Social Features: Adding social features such as sharing
bookings on social media, movie reviews, and ratings to
engage users and build a community.
Advanced Seat Selection: Enhancing the seat selection
process with features like seat previews, adjacent seat
recommendations for group bookings, and notifications for
seat availability.
Loyalty Programs: Introducing loyalty programs and rewards
to incentivize repeat bookings and increase user retention.

52 | P a g e
Accessibility Features: Adding accessibility features to make
the application more inclusive for users with disabilities, such
as screen reader compatibility and customizable font sizes.
Internationalization: Supporting multiple languages and
currencies to cater to a global audience and expand the user
base.
These enhancements will ensure that the application
continues to evolve and meet the changing needs and
expectations of users, providing a superior movie booking
experience.

53 | P a g e
Conclusion
In conclusion, the development of a Movie Booking Website
Application using the MERN stack provides a modern,
efficient, and user-friendly solution for booking movie tickets.
The project successfully addresses the limitations of
traditional booking methods by offering a seamless online
platform. The detailed system design, robust
implementation, and comprehensive maintenance plan
ensure that the application is reliable, secure, and scalable.
With potential future enhancements, the application is
poised to deliver even greater value to users and theaters
alike.

The journey from conceptualization to implementation has


involved meticulous planning, iterative development, and
continuous evaluation, ensuring that the final product meets
the highest standards of quality and user satisfaction. The
Movie Booking Website Application stands as a testament to
the power of modern web technologies and the importance
of user-centric design in creating impactful digital solutions.
Soft copy of the project on CD/Floppy
Drive Link:-https://drive.google.com/drive/folders/12gBrcKYejGo-
urNfcVcZd8QPwBZOUuFe?usp=sharing
GitHub Link:-https://github.com/DragoonKing/Movie-Booking.git
Live Link:- https://movie-booking-application-1.netlify.app/

54 | P a g e
Guide Details:
 Guide Name : Shailesh Pateliya
 Full Address: 803, Block 2,Takshashila Apartment,
near Bagban party plot and Sahajanand Bunglows,
Thaltej, Ahmedabad-380059
 Qualification: MCA , System Analyst
Mobile: 9662702571

55 | P a g e
Annexure A

CERTIFICATE FROM GUIDE


This is to certify that this project entitled “Movie Booking Web Application”
submitted in partial fulfillment of the degree of Bachelor of Computer
Application to the Chandigarh University done by
Mr./Ms. Sahil Sanjay Gaikwad ,
Roll No. O21BCA16367 is an authentic work carried out by him/her under my
guidance. The matter embodied in this project work has not been submitted
earlier for award of any degree or diploma to the best of my knowledge and
belief.

Signature of the student Signature of the Guide

Date- 15/05/2024

56 | P a g e
Acknowledgement
I would like to express my deepest gratitude to all those who
provided me with the support, guidance, and encouragement
throughout the development of this project, "Movie Booking
Website Application using MERN Stack."
First and foremost, I am profoundly grateful to my project guide,
Shailesh Pateliya whose invaluable expertise, insightful feedback,
and unwavering support were instrumental in the successful
completion of this project. Your guidance and encouragement have
been a source of inspiration throughout this journey.
I am also grateful to my classmates and friends for their constant
encouragement, brainstorming sessions, and willingness to provide
feedback during the various stages of this project.
I would also like to acknowledge the developers and contributors of
the technologies used in this project—MongoDB, Express.js, React.js,
and Node.js. Your dedication to creating and maintaining these
open-source tools has made it possible for developers like myself to
bring innovative ideas to life.
Finally, I am thankful to the users who participated in the testing
phase, providing invaluable feedback that helped refine the
application to better meet user needs. Your input was crucial in
ensuring the practicality and usability of the final product.
To everyone who contributed to the successful completion of this
project, directly or indirectly, I extend my heartfelt thanks. Your
support has been indispensable and profoundly appreciated.
Thank you all.
Sincerely,
Sahil Sanjay Gaikwad
O21BCA16367
57 | P a g e
Presentation

58 | P a g e

You might also like