0% found this document useful (0 votes)
8 views10 pages

Movie Ticket Booking System Report

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)
8 views10 pages

Movie Ticket Booking System Report

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

Final Report

(Movie Ticket Booking System)

Course Code: CS254 Course Title: DBMS Lab


Semester: B. Tech 4th Sem Section: S1
Academic Year: 2020-21 Course Instructor:Dr. Annappa B and
Mr. Sharath Yaji
Team Members:
1. Rakshit P, CS147, 9606163623, rakshit.191cs147@[Link].
2. Anirudh Achal, CS108, 9108529223, anirudhachal.191cs108@[Link]
3. Nanda Kishore KH, CS140, 8197439914, nandakishore.191cs140@[Link].

1 Abstract

Movie Ticket Booking System is a computerized solution for theatre setups, which will automate
the process of Ticket Sale and Customer Bookings. This application will allow users to browse
movies filtering them based on location, price, rating, genre, timing and age. The home page
will display movies based on filters selected by the user. Once a movie is selected, the users will
be redirected to a page dedicated to the selected movie where booking details, timings, movie
rating and locations will be displayed. On selecting booking options, the user will be directed
to a booking page. Users can choose their preferred seats and show based on availability
and preference and make reservations by submitting a form. Once a user has watched a movie,
he/she can mark it as completed, rate the movie based on his/her experience and give feedback.
This feedback will be reflected in the rating of the respective movie. Users must login to
the application after creating an account for themselves in order to make a booking. Each
user profile will maintain a history of all previous bookings of the user logged in. Also, this
application will allow admins to have a separate login through which they will be able to
add, modify and delete movies from the application. Users will be able to change passwords
based on their need and also reset it in case it is forgotten. Through this project we aim
at implementing various Database Management System concepts like transaction management
and Database security while improving our software development skills.

1
2 Introduction

Movie Ticket Booking Systems are used all around the world for booking and reserving movies
online. These applications and websites provide customers with facilities to view movie avail-
ability online and make reservations with just a few steps.

Since movie ticket booking systems are used at such a large scale and have a lot
of practical application as well as value, we picked this for our project. Our movie ticket
management system, implemented in Django + MySQL allows users to easily make movie
reservations. When a user first visits the website they are redirected to a home dashboard
where all the different movies that are currently in the database are listed along with some
key information regarding the movie including a brief description, PG rating, duration, genre
etc. Users have the option to filter movies based on their personal preferences and choice. This
can be done using the filter sidebar which allows users to filter over various different attributes
including but not limited to PG rating, duration, language and genre. Users can also search
for a particular movie using the search bar located at the top of the page.

In order to make a booking all users must first login to their personal account. If the
user does not have an account, they must make one before they can proceed to make a booking.
Once a user has logged in, they can select the movie that they wish to make a reservation on.
This will redirect the user to a movie page which contains all details regarding the chosen
movie. Next the user must click on ‘Book Now’ in order to make a reservation. Users are
now redirected to a Booking page where the user can reserve a selected amount of seats for a
particular show. Once the booking is completed successfully, the reservation will be displayed
on the users profile.

The admin has the option to add and delete movies. The users can also reset their
login password and change their profile picture in the website. The users also have the option
of providing a feedback on the website experience through a feedback forum. This project
replicates the working of a real life movie ticket booking system.

2
3 ER Diagram

Figure 1: ER diagram of our mini-project

3
4 Source Code

Filtering the movies based on language, genre, Duration, PG Rating and ordering based on
release date

d e f home ( r e q u e s t ) :
i f r e q u e s t . method == ’GET’ :
# Get l a n g u a g e
i f l e n ( r e q u e s t .GET. g e t l i s t ( ’ language ’ ) ) == 0 : # No l a n g u a g e s e l e c t e d
LANGUAGES = ” (SELECT l a n g u a g e FROM dashboard movie ) ”
else :
LANGUAGES = r e q u e s t .GET. g e t l i s t ( ’ language ’ )
# Get g e n r e
i f l e n ( r e q u e s t .GET. g e t l i s t ( ’ genre ’ ) ) == 0 : # No g e n r e s e l e c t e d
GENRES = ” (SELECT g e n r e FROM dashboard movie ) ”
else :
GENRES = r e q u e s t .GET. g e t l i s t ( ’ genre ’ )
# Get max d u r a t i o n
i f r e q u e s t .GET. g e t ( ’ d u r a t i o n ’ ) :
DURATION = r e q u e s t .GET. g e t ( ’ d u r a t i o n ’ )
else :
DURATION = ” (SELECT MAX( d u r a t i o n ) FROM dashboard movie ) ”

# Get max p g r a t i n g
i f r e q u e s t .GET. g e t ( ’ p g r a t i n g ’ ) :
PG RATING = r e q u e s t .GET. g e t ( ’ p g r a t i n g ’ )
else :
PG RATING = ” (SELECT MAX( p g r a t i n g ) FROM dashboard movie ) ”

# Get o r d e r b y
i f r e q u e s t .GET. g e t ( ’ o r d e r b y ’ ) :
ORDER BY = r e q u e s t .GET. g e t ( ’ o r d e r b y ’ )
else :
ORDER BY = ” r e l e a s e d a t e ”

4
# Get d e s c
i f r e q u e s t .GET. g e t ( ’ desc ’ ) :
DESC = ”DESC”
else :
DESC = ””

l a n g u a g e s q u e r y =f ’ SELECT DISTINCT 1 as id , l a n g u a g e FROM dashboard movie ’


g e n r e s q u e r y = f ’ SELECT DISTINCT 1 as id , g e n r e FROM dashboard movie ’
p g r a t i n g s q u e r y = f ”””
SELECT DISTINCT 1 as id , p g r a t i n g
FROM dashboard movie ORDER BY p g r a t i n g ”””
m o v i e s q u e r y = f ”””
SELECT ∗ FROM dashboard movie
WHERE l a n g u a g e IN {LANGUAGES}
AND g e n r e i n {GENRES}
AND d u r a t i o n <= {DURATION}
AND p g r a t i n g <= {PG RATING}
ORDER BY {ORDER BY}
{DESC}
”””

Searching for a movie based on the name of the movie

def search bar ( request ) :


i f r e q u e s t . method == ’GET’ :
s e a r c h = r e q u e s t .GET. g e t ( ’ s e a r c h ’ )
s e a r c h q u e r y = f ”””
SELECT ∗ FROM dashboard movie
WHERE t i t l e = ”{ s e a r c h }”
”””

Adding to the bookings table when a user books a show

d e f book ( r e q u e s t , pk ) :
i f r e q u e s t . method == ’POST ’ :

5
b form = BookingForm ( r e q u e s t .POST)
i f b form . i s v a l i d ( ) :
b form . i n s t a n c e . u s e r = r e q u e s t . u s e r
b form . s a v e ( )
messages . s u c c e s s ( r e q u e s t , f ’ Your Booking Was S u c c e s f u l l ’ )
return r e d i r e c t ( ’/ ’)
else :
b form = BookingForm ( )

Front-end of a movie page where the user can see the movie details and book a show

{% e x t e n d s ” dashboard / base . html ” %}


{% b l o c k c o n t e n t %}
< a r t i c l e c l a s s =”media co nte nt −s e c t i o n ”>
<img c l a s s =”rounded−c i r c l e a r t i c l e −img” s r c =”{{ o b j e c t . author . p r o f i l e . imag
<d i v c l a s s =”media−body”>
<d i v c l a s s =” a r t i c l e −metadata”>
<a c l a s s =”mr−2” h r e f =”#”>{{ o b j e c t . author }}</a>
<s m a l l c l a s s =”t e x t −muted”>{{ o b j e c t . r e l e a s e d a t e | date : ” F d , Y” }}</ sm
<h2 c l a s s =” a r t i c l e − t i t l e ” >{{ o b j e c t . t i t l e }}</a></h2>
<p c l a s s =” a r t i c l e −c o n t e n t ”>{{ o b j e c t . d e s c r i p t i o n }}</p>
</div>
<ul>
<l i >Language : {{ o b j e c t . l a n g u a g e }}</ l i >
<l i >PG Rating : {{ o b j e c t . p g r a t i n g }}</ l i >
<l i >Duration : {{ o b j e c t . d u r a t i o n }}</ l i >
<l i >Genre : {{ o b j e c t . g e n r e }}</ l i >
</ul>
<c e n t e r ><a c l a s s =”btn btn−primary ” h r e f =”book”>Book Now</a></c e n t e r >
</div>
</ a r t i c l e >
{% e n d b l o c k c o n t e n t %}

Github repo link to our project - Link

6
5 Results

Figure 2: Dashboard

Figure 3: Movie Page

7
Figure 4: Profile Page

Figure 5: Admin Page

Figure 6: Movies

8
Figure 7: Tables

9
6 References:

1. Github Repo Link

2. Movie Ticket Booking Database Design

3. Django Documentation

4. Django Tutorial

**** END ****

10

Common questions

Powered by AI

Admins have the ability to add, modify, and delete movies from the system. This role supports the management of content ensuring that the movie listings are up to date and the system functions smoothly .

After watching a movie, users can rate it and provide feedback. This feedback influences the movie's rating displayed in the application, encouraging user interaction by involving them in the quality assessment of movies .

Users can personalize their movie search by using the filter sidebar that allows filtering based on attributes such as PG rating, duration, language, and genre. They can also use a search bar to find specific movies by title, thereby refining their experience to match their preferences .

The system's interface includes a home dashboard for movie listings, a detailed movie page with booking options, and a user profile page showing past bookings. These components contribute to user engagement by providing an intuitive navigation structure and clear access to features .

Transaction management ensures that all database operations related to bookings are completed successfully and consistently. It is crucial in maintaining data integrity, particularly in preventing issues such as double bookings and ensuring that failed transactions do not affect data accuracy .

The filtering process is implemented using specific query parameters which allow users to select criteria like language, genre, duration, and PG rating. The system dynamically builds SQL queries to fetch only those movies from the database that match the selected filters .

The system uses relational database entries to maintain booking information, which ensures consistency across user sessions. Each user's profile holds a history of past transactions, and a successful booking updates the bookings table, linking it to the user's account .

The Movie Ticket Booking System is implemented using Django as the web framework and MySQL as the database. Django is known for its ease of use with databases and provides an ORM that simplifies database management, which enhances the application's functionality .

The Movie Ticket Booking System requires users to create personal accounts before making reservations. This involves user authentication through login where users must enter their credentials. The system ensures security through database management concepts such as transaction management and database security to protect user data .

The system allows users to provide feedback on both movies and their booking experience, capturing valuable insights into user satisfaction. This feedback is used to refine algorithms and improve the system's user interface, ensuring that it evolves to better meet user needs .

You might also like