Cinema Booking system

Task:

We set forth developing an online cinema booking system. The system covers all cinemas in a country, but depending upon needs, it can easily integrate cinemas of other countries. People should use the system to find particular movie-sessions by various search criteria like country, time, cinema, city and movie-title and so on. If a user wants to, he or she can book a set of seats at a particular session and pay for it online as well as print the ticket at home or pay at least half an hour before session-beginning. The system provides functionality for given cinema-managers to schedule future movies at their own cinemas, as well as change scheduling and correct errors in scheduling. Also there is an administrator interface that takes care of maintaining the system and updates the list of cinemas that are covered by the system.

Thus, the system is basically divided into three major parts,

1-  Searching, Booking, Paying

2-  Cinema Management

3-  Central management

The paying part of the system is out of focus as we use Paypal or some other premade facility.

Overview of target system:

This section gives an overview of fully functioning cinema booking system. End users of target system are divided mainly into

1-  Web user

2-  Cinema clerks

Web user are those who can make booking from their homes or from anywhere with internet access. On the other hand clerks are personal standing at cinema and by using the same system they can make booking and paying for those who wish to watch movie. By using target system a web user can search for cinemas and movies all around the country and are able to make booking wherever she wants. After the booking is done, user still has option to cancel that booking. If user doesn’t pay for a booking until an hour before the movie starts, booking will automatically be cancelled and the same seat is available for other users. Once the movie has started and fifteen minutes are passed then user is no more able to book or buy a ticket for that particular session. If user has booked a seat then she can take print of booking and buy ticket at cinema. Otherwise if she has already paid for it then she just needs a print of final payment as evidence.

Current target system has two types of administrators

1-  System administrator (person who monitors the target system)

2-  Cinema administrator (person who uses target system for their cinema)

If some cinema wants to be part of target system then someone who is responsible for running the cinema must contact the organization who is taking care of the target system. Then system administrator will grant some administrative permission to the cinema administrator so that they can put schedules and movies on the target system according to their needs later on which will be available for user.

System definition:

A system that can be used by customers to book or buy tickets, but also for cinema clerks to offer the same services to costumers locally at the cinema. Using this online system users can search for either cinemas or movies or the two combined as well. The system contains a plan including the plan of all cinemas, rooms, seats and at what time a given movie is shown in a given room. The plan contains information on all cinemas one month ahead. A movie disappears from the system 15 minutes before the movie has begun. Users can book, buy or later on cancel tickets. After paying for a ticktet it is not possible to refund it. System administrator can grant permissions to cinema administrator who later on enter and update the information about their cinema.

______

Functionality - booking, buying, schedulling, movie searching, cinema searching

Appl. domain - serving home customer, serving cinema clerk, sysadmin

Conditions - Cooperation with cinema clerks, other similar booking systems,

(Illiterate users. Multilingual system, users speaking different languages. Non skilled
users. 20h/day uptime.)

Technology - client-server, 1000 pages/minute, 1.000.000 kr, 1000 concurrent users

Objects - customers, clerks, (booking and buying transaction?), time-scedule, cinema, movie, screan, seat

Responsibility - reliable booking, buying, searching movies and cinemas

______

The Problem Domian

During the brainstorming sessions, several classes and events were selected as potential candidate for class and event in the cinema booking system. Finally analyzing every aspect more critically, following classes and events seems suitable for the system.

Classes:

Time table:

We realized that there should be some object that display every thing regarding time. As current system is about the online booking a ticket for a movie and there are so many cinemas and each cinema is having different number of movies so to keep right information for each movie is one of the key part. To fulfill this requirement time table class is selected and it is actually aggregation of session class. This class is mainly used to search for different sessions.

Attributes:

Session:

In reality one movie is being watched 2-3 times a day in different cinemas, in same city and as well as in different cities. So in order to get a ticket for particular movie and for particular time, it is necessary to keep track of every thing. To solve this problem session class is designed. It is main class in this system and is associated with movie, room, seat and booking class. We define one session as one movie show in a particular time and in particular room. So it mean one movie can have several sessions running in same (one movie at same time but different location) and as well as in different time (different shows for same movie on different timing of same day). One session uniquely identifies time, place and movie.

Attributes: date,

Booking:

Booking class is used to book particular seat for a movie. This class is associated with customer and session class.

Attributes: booking number,

Movie:

Movie class contains information about the movies in general. For example title of movie, its category (action, comedy, romantic), etc.

Attributes: title, category, abstract.

Cinema

Cinema class carries information about cinemas in general.

Attributes: name, address, municipal, telephone, fax.

Room:

Room class gives information about each room inside cinema.

Attributes: room number, number of rows, number of seats.

Seat:

Seat class captures information about all seats in a room.

Attributes: seat number.

Booking:

If a seat is reserved then is it booking class that gives each and every detail about the movie, session, room and number of specific seat.

Attirbutes:

Customer:

Customer is generalized class with its two specialized classes i.e, Web user and Clerk.

Attributes:

Events:

Agreed:

This event occurs when customer book a seat in particular cinema.

Cancelled:

Once a seat is booked there is still possibility to make cancellation for that booking.

To do so cancelled event is included.

Paid:

Once booking a seat customer has two options either to pay online (credit cards) or print the booking and pay at cinema for the ticket. Paid event shows that the customer has paid the amount for the booking.

Not paid:

Not paid event is included if customer only make booking for seat.

Started:

This event is included for session class. Here session started means the movie has started.

Scheduled:

It is one of the key events that involve seat, room, session, movie and timetable classes. This event occurs when ever there is change in above mentioned classes.

Entered:

This event is for when new things entered in the system. For example new movies, session, timetable, rooms.

Exited:

In real life things changes quickly so is the case with current system. One movie cannot be played for ever. New movies keep on coming, timing for new movies also changes rooms could be out of system for a while due to renovation, etc. Exited event is for all those things that are out of system temporarily or permanently.

Classes
Events / Cinema / Seat/ Ticket / Room / Session / Movie / Timetable / Booking / Customer
agreed(book) / + / + / + / +
Cancelled(book) / + / + / + / +
payed(book) / + / + / +
not payed / + / + / +
Started(session) / +
Scheduled / * / * / + / * / *
Entered (system) / * / * / * / *
Exited(system) / * / * / * / *

Figure: system event table.

Clusters

Figure ---- gives and overall view of cinema booking system. As from figure --- it is evident that current system comprises of two clusters i.e. cinema and client

Figure-----: The cluster in Cinema booking system.

Structures

Cluster cinema consists of three classes which are somehow linked with each other. A cinema is aggregation of room, meaning that cinema has room and the number of rooms that cinema can have, depends on the type of cinema. Furthermore room is aggregation of seat and the number of seats in a given room depends upon the type of room.

Figure --: The structure of cinema.

Cluster client consists of three classes’ customer, web user and clerk. Customer is generalized class and web user and clerk classes are its specialized classes. A user can either be a web user or clerk.

Figure --: The structure of User.

Behavior:

Problem domain dynamics is mainly associated with session, booking and seat classes. Behavioral patterns of these classes are taken into consideration.

Figure: Behavioral pattern for the class Booking.

Figure: behavioral pattern for the class Session.

Figure: behavioral pattern for the class Seat.

Use cases/actors / End User / Cinema Manger / System administration
SearchMovie / +
Booking / +
Payment / +
TicketPrint / +
SessionDeletion / +
SessionEditing / +
SessionCreation / +
ScheduleCorrection / +
CinemaAddition / +
CinemaDeletion / +
SystemErrorCorrection / +
CinemaAccessManagement / +

Figure X: Use case diagram

Use Cases:

Search

A potential costumer will search for a movie, cinema or other attribute of movie session. Attributes are: Continent, Country, region, city, cityarea, cinema, movie, time period. The first thing happening is the appearance of a form with listboxes. To limit the content of the low-hierarchi listboxes, listboxes from continent and until city are prefilled due to automatic detection of accesspoint. Listboxes with all possible choices of cinemas and movies in the chosen area and time period will appear.

Booking

The potential costumer clicks a session from the list. A screen representation of a room with seats and screen appears. Seats already booked and payed for will be red, only booked will be yellow and free are green. The costumer can now choose some green seats and book them. The costumer can also appear half an hour before the beginning of a session and hope that some of the yellow seats have not been payed for.

Payment

TicketPrint

SessionDeletion

SessionEditing

SessionCreation

ScheduleCorrection

CinemaAddition

CinemaDeletion

SystemErrorCorrection

CinemaAccessManegement

Function list:

SearchMovie()

SearchCinema()

SearchLocation()

SearchMovieCategory()

Payment()

Book()

SelectSeats()