Project Report
Project Report
Submitted by :- Submitted to :-
Chanchal Mr. Dushyant Sharma
Uni. Roll No.- 2204410
Branch – [Link]. CSE
Sem – 7th
2204410/CSE/2022
INDEX
1. Acknowledgement 2
2. Objective 3
3. Abstract 4
6. Features 22-25
8. Output Description 37
9. Conclusion 38-39
10. References 40
pg. 1
2204410/CSE/2022
1. ACKNOWLEDGEMENT
I would like to express my sincere gratitude to all those who supported and guided me
throughout the development of this Movie Ticket Booking System using HTML, CSS, and
JavaScript Named as TicketHub. First and foremost, I am deeply thankful to Mr. Dushyant
Sharma, whose valuable insights, encouragement, and constructive feedback were crucial
to the success of this project. I am also grateful to principal sir Dr. Gurpreet Singh IET
Bhaddal for providing this opportunity to carry out the present work I would like to express
my gratitude to other faculty members of the Computer Science & Engineering department
of our college for providing academic input, guidance & Encouragement throughout the
training period.
Finally, I express my indebtedness to all who have directly or indirectly contributed to the
successful completion of my project. This project has been a great learning experience, and I
am thankful to everyone who played a role in its success.
CHANCHAL
pg. 2
2204410/CSE/2022
2. OBJECTIVE
The primary objective of the Movie Ticket Booking System using HTML, CSS, and JavaScript
is to design and develop a fully functional, user-friendly, and interactive web-based platform
that allows users to browse movies, select show timings, choose seats, and book tickets
efficiently.
The key objectives of this project are:
pg. 3
2204410/CSE/2022
3. ABSTRACT
The Movie Ticket Booking System is a web-based application developed using HTML, CSS,
and JavaScript with the objective of providing a smooth, user-friendly, and efficient digital
ticket-booking experience. This project replicates the essential functionalities of modern
online ticketing platforms such as browsing movies, selecting theatres, choosing show
timings, reserving seats, applying promotional codes, and simulating payment processes.
The system incorporates a dynamic user interface that displays movies along with genre,
price, and popularity filters. Users can register, log in, and manage their accounts using
browser-based local storage. Additional features such as a wishlist, booking history,
calendar view, and ticket download enhance the overall usability of the application. A multi-
step booking workflow is implemented, including theatre selection, seat layout visualization,
real-time seat validation, and payment method selection.
pg. 4
2204410/CSE/2022
The following minimum hardware specifications are recommended for developing and
running the Movie Ticket Booking System:
• RAM: 2 GB
• RAM: 4 GB or higher
2. Software Requirements
The software stack required for developing and executing the Movie Ticket Booking
System includes:
Frontend Technologies
pg. 5
2204410/CSE/2022
• JavaScript (ES6+): For interactivity, dynamic content, seat logic, authentication, and
data handling
Development Tools
• Code Editor:
• Web Browsers:
o Mozilla Firefox
o Microsoft Edge
Additional Resources
• Local Storage API: For storing user accounts, bookings, and wishlist
• Internet Connection: For loading poster images and external scripts (optional)
pg. 6
2204410/CSE/2022
The Movie Ticket Booking System follows a structured workflow that ensures smooth
interaction between the user and the application. The system design focuses on modularity,
user experience, and efficient data handling. The system operates entirely on the client side
using HTML, CSS, and JavaScript, along with LocalStorage to simulate persistent data. Below
is a detailed explanation of how the system works.
The complete movie booking process is divided into three main phases:
• Wishlist and account management features are available for logged-in users.
pg. 7
2204410/CSE/2022
B. Booking Phase
pg. 8
2204410/CSE/2022
pg. 9
2204410/CSE/2022
pg. 10
2204410/CSE/2022
2. System Components
pg. 11
2204410/CSE/2022
pg. 12
2204410/CSE/2022
• Supports filters:
o Sort by name/price
o Genre filter
pg. 13
2204410/CSE/2022
o Available (light)
o Occupied (grey)
• System calculates:
o Ticket price
o Convenience fee
o Total price
Step 3: Payment
pg. 14
2204410/CSE/2022
o Card
o UPI
o Wallet
o Net banking
pg. 15
2204410/CSE/2022
pg. 16
2204410/CSE/2022
• Provides options:
o Print ticket
o Share booking
o Movie title
o Theatre
o Timing
o Selected seats
o Amount paid
pg. 17
2204410/CSE/2022
A. Data Structures
Movies Data
id: 1,
genre: "Action",
price: 250,
User Data
Stored in localStorage:
pg. 18
2204410/CSE/2022
name: "",
email: "",
username: "",
password: ""
Bookings Data
userId: "",
movie: "",
theatre: "",
showtime: "",
seats: [],
amount: 0
• Updates UI accordingly
• Enters credentials
pg. 19
2204410/CSE/2022
• System updates:
o Ticket cost
o Convenience fee
o Final total
• Confirms booking
• Provides:
pg. 20
2204410/CSE/2022
o Printable ticket
o Downloadable PDF
o Share option
pg. 21
2204410/CSE/2022
6. FEATURES
FEATURES OF THE PROJECT
The Movie Ticket Booking System is designed to simulate a real-world online booking
platform with interactive UI elements and dynamic functionality. The project includes a
variety of features that enhance usability, performance, and user experience. Below is a
comprehensive list of key features:
o Poster
o Title
o Genre
o Ticket price
o Wishlist icon
• Supports multiple categories like latest movies, trending movies, and recommended
films.
• Filters include:
pg. 22
2204410/CSE/2022
o Genre filter
o Price filter
4. Wishlist Feature
a) Theatre Selection
b) Seat Selection
o Available seats
o Selected seats
o Occupied seats
c) Booking Summary
• Selected seats
• Movie details
pg. 23
2204410/CSE/2022
• Total amount
• Convenience fees
o UPI
o Debit/Credit Card
o Wallet
o Net Banking
o Confirmation message
o QR-code-like placeholder
o Download ticket
o Print ticket
pg. 24
2204410/CSE/2022
o Payment amount
o Show details
pg. 25
2204410/CSE/2022
The full working file you uploaded is available locally at: /mnt/data/[Link] — open
that file in a browser to run the complete project.
HTML (skeleton)
This is the minimal skeleton — the actual file contains a complete layout and elements with
matching IDs/classes used by JS.
<!DOCTYPE html>
<html lang="en">
<head>
pg. 26
2204410/CSE/2022
<link
href="[Link]
=swap" rel="stylesheet">
</head>
<body>
<div class="container">
</div>
</div>
<script>
pg. 27
2204410/CSE/2022
</script>
</body>
</html>
CSS (high-level)
1. Data arrays
Movies, theaters, events and sports are stored as arrays of objects at the top of the script:
const movies = [
// ...
];
const theaters = [
pg. 28
2204410/CSE/2022
// ...
];
2. Initialization
[Link]('DOMContentLoaded', () => {
renderMovies();
renderEvents();
renderSports();
checkLoginStatus();
setupEventListeners();
});
renderMovies() creates movie cards from the movies array and inserts them into
#moviesGrid:
function renderMovies() {
[Link] = '';
[Link](movie => {
[Link] = 'movie-card';
[Link] = `
</button>
<div class="movie-info">
pg. 29
2204410/CSE/2022
<div class="movie-title">${[Link]}</div>
<div class="movie-genre">${[Link]}</div>
<div class="movie-price">₹${[Link]}</div>
</div>
`;
[Link](card);
});
Functions listen to filter inputs and apply simple array filtering/sorting, then call
renderMovies() again:
function applyFilters() {
// sort if needed
function handleRegister() {
pg. 30
2204410/CSE/2022
return;
[Link](newUser);
[Link]('users', [Link](users));
[Link]('currentUser', [Link](newUser));
currentUser = newUser;
updateUIForLoggedIn();
[Link]('loginModal').[Link]('active');
function handleLogin() {
const user = [Link](u => ([Link] === email || [Link] === email) && [Link]
=== password);
if (user) {
[Link]('currentUser', [Link](user));
currentUser = user;
updateUIForLoggedIn();
pg. 31
2204410/CSE/2022
[Link]('loginModal').[Link]('active');
} else {
startBooking(movieId) opens the booking section and loads movie details + theatre list:
function startBooking(movieId) {
bookingType = 'movie';
[Link]('bookingTitle').textContent = [Link];
[Link]('bookingPoster').src = [Link];
[Link]('bookingSection').[Link]('active');
renderTheatersForBooking();
Seats are rendered as a grid of .seat elements with row labels. Seat objects have states
(available, occupied, selected). Example seat click logic:
[Link] = '';
pg. 32
2204410/CSE/2022
[Link] = 'seat-row';
[Link] = 'seat';
[Link] = seatId;
[Link](seat);
[Link](rowDiv);
function toggleSeatSelection(seatEl) {
if ([Link]('occupied')) return;
[Link]('selected');
if ([Link]('selected')) [Link](seatId);
updateBookingSummary();
pg. 33
2204410/CSE/2022
function applyPromoCode() {
[Link]('promoSuccess').[Link]('active');
} else {
[Link]('promoError').[Link]('active');
updateBookingSummary();
function confirmPayment() {
const booking = {
movieId: [Link],
movieTitle: [Link],
pg. 34
2204410/CSE/2022
theaterId: [Link],
showtime: selectedShowtime,
seats: [Link](),
amount: computeTotalAmount(),
};
[Link](booking);
[Link]('bookings', [Link](bookings));
showSuccess();
downloadTicket() uses jsPDF (included via CDN in the file) to create a simple PDF ticket
(movie name, seats, timing, booking id) and trigger download. printTicket() opens print
dialog for the ticket area.
o In many environments you can drag the file into the browser or File → Open.
2. Use the Login button to register a new user (it stores accounts in localStorage) or
test as guest.
pg. 35
2204410/CSE/2022
3. Browse movies, click Book, choose theatre & showtime, select seats and proceed to
payment.
pg. 36
2204410/CSE/2022
8. OUTPUT DESCRIPTION
1. The homepage displays movie posters, search bar, and filters.
2. Users can log in or register using pop-up forms.
3. Clicking Book opens the booking interface.
4. Theatres and showtimes are shown for the selected movie.
5. Seat selection screen displays available, selected, and occupied seats.
6. Total amount updates automatically based on selected seats.
7. Payment screen allows choosing UPI, card, wallet, or net banking.
8. After confirmation, a ticket is generated with booking details.
9. Users can download, print, or view their ticket in My Bookings.
10. Wishlist shows all favorite movies saved by the user.
pg. 37
2204410/CSE/2022
9. CONCLUSION
The Movie Ticket Booking System developed using HTML, CSS, and JavaScript successfully
demonstrates the implementation of a functional, user-friendly, and interactive web
application. The project replicates the workflow of real-world ticketing platforms by
integrating essential features such as user authentication, dynamic movie display, intelligent
filtering, seat selection, promo code validation, and simulated payment processing.
Throughout the development process, various front-end technologies were applied to build
an intuitive interface and provide smooth user interaction. JavaScript played a crucial role in
enabling dynamic content rendering, managing bookings, generating tickets, handling
localStorage data, and ensuring seamless navigation across multi-step booking processes.
Overall, the system meets all the intended objectives by offering a complete end-to-end
ticket booking workflow, making it a valuable learning experience and a strong foundation
for developing more advanced, real-world web applications in the future.
pg. 38
2204410/CSE/2022
pg. 39
2204410/CSE/2022
10. REFERENCES
• [Link] (MDN Web Docs)
• [Link]
pg. 40