1

Cinema Booking system

System Introduction: (Class names in bold)

The system covers all cinemas in a country, but depending upon needs, it can integrate cinemas of other countries as well. Any cinema has one or more rooms, and each room contains a set of seats. A room can be built and integrated in the system through a room Designer interface, managed through a web based cinema manager interface. In future releases, this system will provide an interface allowing existing cinema management systems to easily adapt to communicate with our system.

People should use our system to find particular movie-sessions by various search criteria like country, area, city, time, cinema or movie title. When entering the web-page the system automatically sets the search conditions to the local area, and a time interval spanning the rest of the current day. When the user has entered search criteria he or she will be presented with a list of session-links that fulfill the criteria or an empty list. Clicking a session link returns a graphical presentation of the room of the session, at which seats can be selected/deselected, a total prize displayed and a booking-commit button. A booking number will be displayed at the screen. The user can bring along this booking number and have the tickets printed later. Also, this booking number is essential if the user should have his/her money back due to session-cancellation, disease or other problems. If a user does not pay before some time limit, specified by the local cinema, before the session begins, the reservation will automatically be cancelled and the corresponding set of seats becomes available for other users. When the movie has been on for some time-span, which is also set by the cinema manager, booking or buying a ticket for that particular session is no longer possible. However, the session information is kept for some time to handle any costumer-requests or -complaints. Upon payment, printing the corresponding tickets is possible at any computer connected to the internet and a printer, or at any cinema covered by the system. It is the user’s responsibility to take care of the tickets because a given ticket, representing a seat, can only be printed once.

The system provides functionality for a cinema manager to schedule future movies at his/her own cinema, i.e., entering sessions into the database, as well as changing the scheduling and correcting errors in scheduling (If any bookings have been made this becomes a bit more tricky!).

Thus, the system has two kinds of clients,

1- User: (Searching, Booking, Paying)

2- Cinema manager (persons who use the system for their cinema)

If some cinema wants to be part of the system, someone responsible for managing the cinema must contact the system administration. The system administration will grant permission to the cinema so scheduling of movies at the particular cinema can be performed.

System definition

People can use this system to search movies and cinemas in any area specified by the user. Cinemas consists of rooms and seats. Users of the system can search for cinemas or movies. They should be able to narrow down the search to any area and time interval. Booking, payment and printing tickets is possible from any computer on-line. The central class is the session class that have information about movie, cinema, room, time, seats and bookings. Cinema managers can schedule, reschedule and correct movie session scheduling. Session information is collected in timetable-objects for making searching more efficient.

Factor Analysis:

Functionality – searching, booking, buying, scheduling

Appl. domain - serving cinema customers, clerks.

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

(Multilingual system. Non skilled users. 99.99% uptime, almost unlimited ressources.)

Technology - client-server, replicated server farms, incrementally built upon need, 1.000-1.000.000 concurrent users.

Objects – Cinema, Room, Seat, Session, Movie, Booking, TimeTable.

Responsibility - reliably searching movies and cinemas and booking and buying.

Problem Domain overview

The target system should provide facilities for clients and cinema clerks to search for vacant seats at particular movie-sessions using various criteria like city, cinema, movie title, movie category etc.. When users have identified a particular session, the session screen is displayed, at which, depending on the color of the seat-symbols, it is possible to choose a number of seats to book or reserve. A reservation can either be followed directly by payment or a reservation number can be brought to another computer and used as login or to the cinema and in both cases payment can be made and tickets printed. If a cinema burns down or for any other reason a session is cancelled, it is announced on the web page. It is crucial that users keep his/her reservation number if, for any reason, money for bought tickets should be refunded. Thus, sessions are kept in some session storage for some time to make it possible to track any relevant information in any cases of complaint.

Applikation domain overview

The system should sustain all tasks necessary for any costumer to make the cinema experience nice and easy. Whether a cinema wants to have clerks employed at the cinema, is a matter of choice of the cinema owner. This system is supposed to work in a way that all necessary tasks can be done solely by the user. The whole spectrum from searching a movie and location to having bought and printed a set of tickets is managed by the system and controlled by the user. Cancellation and handling of erratic scenarios or use-cases is covered by keeping past session information stored for some limited time.

The system contains all movies that any cinema manager has bothered to enter into the system. So, if an old or new movie has not been entered and a cinema manager wants to schedule the movie at his/her cinema in the near future, he or she has to enter it – with all required fields. This is done through the cinema manager interface.

The problem domain

Structure

Clusters

Figure 1 show the class diagram and the only cluster we have in our system is indicated: Cinemas have rooms which have seats. Cinemas aggregate rooms which aggregates seats. A description of classes and events follows.

Classes:

Time table

Weekplan of sessions at a cinema. Used to make searching more efficient.

Attributes: Time Table ID, Cinema, week

Session

A session object uniquely holds together time, room, cinema and movie. Session is the central class that coordinates this information, thus it holds the data model read to present a screen of vacant and reserved seats. It also keeps track of booking and payment information.

Attributes: time, session ID

Booking

Information on a set of seats at a session – a user can be identified through a reservation number.

Attributes: booking ID.

Movie

Movie contains information about the movies in general.

Attributes: title, category, abstract, author, year.

Cinema

Identity and contact information.

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

Room

A room has a number and contains a seat plan (set of seats).

Attributes: room ID, seat plan.

Seat

Seat class is a template for all seats and every seat object knows whether it is free.

Attributes: seat ID, reserved, and paid.

Booking

The booking class has information about the session and a set of seats.

Attributes: Booking ID, seat List.

Figure 1: Class Diagram.

Events:

seatSelected/seatDeselected

A customer selects and deselects seats while choosing the appropriate seats at the session screen.

seatPaid

A seat has been paid for.

Book

If a seat was selected at the time of committing the booking it becomes reserved.

bookCancelled

A costumer may enter the booking ID and cancel the reservations.

bookTimeOut

Before session-start, before some time-interval set by the cinema manager, all non-paid reservations are set free automatically for other costumers to book.

ticketPrinted

Tickets, representing single seats elled

When the cinema manager enters can be printed only once.

sessionScheduled/sessionCanc session data to the database a number of sessions get scheduled, like pressing a “commit session schedule” button. Sessions can be cancelled.

sessionTimeOut

A number of minutes into a movie session, the number is decided by the cinema manager, the seats of a session become unavailable for buying. The session is then stored for later use in case of any inquiries or complaints.

searchTermsEntered

The costumer has pressed the “search button”, search-criteria being valid or not.

roomUpdated(created/deleted)

Rooms can be designed, relating to number and arrangement of seats, in the system using the room-designer interface available for cinema managers. Also rooms can be renovated and changed.

cinemaUpdated(entered/exited)

Cinemas may enter or exit the system. This information is fed to the system by the cinema managers.

movieUpdated(entered)

When a new movie has been produced it should be entered into the system, with all relevant descriptive fields, so that cinema managers can pick the title from a ListBox and schedule it at his/her cinema.

Figure 2: system event table.

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.

Figure X: Use case diagram

Use Cases:

Search

When a visitor of the web-site enters the main page the three listboxes named Continent, Country and region are prefilled according to the location of the visitor. Also two sets of list boxes specifying date and time are prefilled to define a time period corresponding to the rest of the present day, which is most likely the relevant interval for the user. Any search can not proceed before the user has accepted these search criteria. This is to limit the content of the listboxes that follow; city, city area, cinema, movie-title. The user can press the search button after entering any combination of criteria and an SQL query will be generated accordingly so as for the system to return a result list. Alternatively, a message stating the search result be the empty list, or an error message is generated and displayed so the user is assured that the system “understood” the criteria entered but deemed it meaningless.

Booking

The potential costumer clicks a session from the list that results from the search. A screen representation of a room with seats appears. Seats already booked and paid for will be red, booked but not paid seats are yellow, whereas vacant are green. The costumer can now select and deselect green seats and press the book button to commit a booking. 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 paid for. When committing a booking, a message about possible rescheduling are announced at the site and that money can be refunded using proper identification.

Payment

When a booking has been committed, the user is presented with a choice of paying immediately or later. If immediately is chosen the user is presented with a standard procedure from PayPal or other third-party Payment-service.

TicketPrint

When Payment for a set of seats has been performed either outside or at the cinema, the individual tickets can be printed. This is done by the user identifying him/her self with either a stripe-code printed at home or elsewhere – which can be interpreted by a machine at cinema, or identification through the card used for payment. If payment is performed at the cinema, identification is not necessary.

SessionEditing

Cinema managers schedule movie sessions through an interface. Sessions can be entered into and deleted from the system. Sessions can also be edited. All this is done through the cinema manager interface. If, for some reason a movie-session must be cancelled or rescheduled, this is straight forward while there are no bookings for the session – it becomes a more complex task if bookings have already been made for the session. Then announcements must be made on the site. Because users are anonymous, they cannot be notified directly. However, users of the system are made aware of this risk when making a booking.

CinemaEditing

Cinema managers can be allowed to register their cinema with the system, at which point the rooms should be built and become available to the system. The use case is best described as a “how to” use the cinema manager’s room designer. New rooms can be built, new seats added and so on. These tasks are performed through the cinema manager interface.