Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Online MovieTicket Booking System-Client Server Technology Course: Master of Science in IT(Multimedia Technology) Participants 1> 2> 3> 4> VENKATA SRIPAL REDDY NAREDDY [email protected] ASHOK KUMAR KANUKUNTLA SRIDHAR Table of Contents 1. Introduction 2. Background and Description of the the problem 3. System Requirements 4. Problem Analysis 4.1 Overview of the System 4.2 Client-Server Connection 4.3 Structure of Online Booking System 4.3.1 Sales Agent Module 4.3.2 Management Module 4.4 Database Design 5. Software Specifications 5.1 Requirements 5.2 Java 5.3 Servlets Overview 5.4 HTML 5.5 My SQL 6. User Guide and Example’s 7. Technical Description of the Program 8. Testing 9. Conclusion 10.References 11. Appendix 11.1 11.2 11.3 Appendix-A(Java Source Code) Appendix-B(DATA FLOW DIAGRAMS) Appendix-C(DataBase Tables) 1. PREFACE AND INTRODUCTION The project has been carried out during a four-week project, from the 20th of NOVEMBER to 19th of DECEMBER 2003 at the IT University of Copenhagen under the guidance and supervision of Mr.Carsten Butz. We thank Mr. Carsten Butz for assistance during the project. We also thank the people who have given their support during the development of the project. During the mentioned timeframe we developed by using the Java programming language, an Online MovieTicketBooking System . The computer network environment that we work with in this project consists on a group of clients and a server. 1.1 Primary Goals Build a Java environment for an online Booking System that supports client-server Applications. The system is trained to reserve tickets for a movie. 1.2 Limitations or Restrictions The main limitation is the 4-week time to develop this system. During this time we have to find the tools that could be applied in order to find appropriate solutions and make the system work. Background and Description of the Problem The main aim of this project is to book the movie tickets online. For this purpose we have used java servlets and html forms to communication between the client and server. The database we have used is MySql. The main problem we have faced is checking the reservation status.when a user comes to book a ticket for a particular movie, the system has to check whether the seats are available for that movie in desired theatre on desired date. To overcome this task we have designed database which is free from redundancy. For this task we have created a table called Free_seats, in which we maintain the movie name, theatre name, date and price categories. For this task we have written a servlet called Booking Servlet, which accepts the information from the user and sends it to the server, then the server checks the database using the information provided by the user and sends a response to the user. Connecting to the database Class.forName(“org.gjt.mm.mysql.Driver”).newInstance(); String username = “cbgroup5”;//username for MySQL String Password = “h852s73j”; //password for MySQL. String url = “jdbc:mysql://mysql.it-c.dk/cbgroup5”; Connection con = DriverManger.getConnection(url, username, password); Statement st =con.createStatement(); ResultSet rs=st.executeQuery(“SELECT * FROM FREE_SEATS”); ResultSetMetaData meta = rs.getMetaData(); int theatre_id=0; int size1=0; int size2=0; String Theatrename=null; String mvname=null; String date=null; String stime=null; While (rs.next()) { theatrename=rs.getString(“THNAME”); theatre_id=rs.getInt(“TH_ID”); mvname=rs.getString(“MOVNAME”); size1=rs.getInt(“C1_SIZE”); size2=rs.getInt(“C2_SIZE”); date=rs.getString(“MDATE”); stime =rs.getString(“SHOWTIME”); } The program checks the seats available to the movie requested, and process the task. If not there is a possibility of throwing errors. To avoid such errors, the system checks the condition whether the no. Of tickets requested are less than the available seats. If the condition is true the system reserves the requested no. Of tickets to the user. If the Condition is flase it displays a message with the available no. Of seats and request the user to enter the no. Of seats that are available. SYSTEM REQUIREMENTS The sytem should consist of client-server application. Both the client and server part of the application should be written in java. The system has to provide a user to search movies that are running in the city and allow him to serve tickets for a movie, eg. A user sends his request to book a ticket for a movie to the server, and the server checks the availability of the tickets for the requested movie and allots him a Reservation ID as a response from the server. The Client side might be included in respect to capturing the requests from the user and transmitting them over the network. The client side should include a simple graphical user interface, which provides capabilities of capturing and transmitting requests over the network. The server side should receive the requests, carry out task of booking a ticket for the requested movie and send back to the client the result . Problem Analysis Overview of the System The system was built based on the Java code that was provided and tested during the Client-Server course exercises. The system has a Client side and Server Side. The Client side is used to capture the requests(booking a ticket for a movie) from the user, and transmit the data over the network. The Server Side is used to receive the data from the client and carry out the reservation task. Client-Server Connection A network connection between users and a server is made through sockets. Normally the server runs on a specific computer and has a socket for communication and listens on a specific port. It basically waits and “listens” until a client requests a connection. The client should know the hostname of the computer on which the server is running and also the port number to which the server is connected. If the server accepts the connection request from the client, the server makes a new socket with a different port and communicates with the client from there. Then the port on the server that waits and “listens” is available again and ready to receive new connection requests from other client(s) and at the same time attending the needs of the connected client. Structure of the Online Booking System The design of the project was developed based on the previously described Requirements Specifications and problem Analysis using java-programming language. In order to create a communication network, two main classes were created: the Client and the Server class. The description of the program will be divided into two parts, the first referring to the Client side and the other referring to the Server side. In this project we have divided two modules one is sales agent module and the other is the management module. SALES AGENT MODULE The main task of the system is to book the tickets online through sales agents for a particular movie in a particular theatre of user choice. The Sales Agents book the tickets online according to the user requirements. In this module a sales agent searches for a movie .and book a ticket for a movie in a particular theatre using the user interfaces that are developed. Not only booking tickets but also cancelation of tickets can also be done using this system. The system can only gives access to the authorised users.Every agent has its own login.. When a sales agent login to the system he has to provide his username and password .whenever he provides the correct login he can view the complete movie information containing the movie name, theatre name, no of tickets available are displayed. Then the agent can book the tickets by providing the reservation details in the reservation form that are collected from the user.. As soon as the agent submits the reservation details the system reserves the desired no. Of tickets and provides the user a Reservation ID. If the no. of requested tickets is greater than the no. Of free seats then the system displays a message available number of free seats. If a user wish to cancel his reservation, he can do so by submitting his reservation Id. As soon as he submits his res_id, and the number of tickets he wants to cancel the system will do the appropriate operation and updates the no. of free seats in the Free_seats table. We have maintained two levels of prices for each theatre. This price differs on based on the movie. MANAGEMENT MODULE This module is meant for management. In this module management people can create new agents, update movie information, insert movies into the database and can updates the database. Using the management interfaces that are developed can do this whole process . Management people don’t interact directly with the database, but by using the interfaces they can modify, insert, update and delete the information from the database. This module is restricted for only one user for security reasons. Only the authorized person can access this module. He can only login into this module by providing valid username and password. As soon as he login to this module, he has options like insert, update,delete, and create. Using these forms he makes changes into the database. The forms developed are most user-friendly. Database Design: We have used MySQL database to design our tables. In our project we have used four tables for our need. (Refer Database Tables in Appendix) Tables: Agent_Info Mov_Info Res_Info Free_seats Agent_Info: AGENT_ID AGENTNAME UNAME PWORD ADDRESS This table maintains the details of the sales agents. Here every agent is given an ID, which is unique . Mov-Info: TH_ID MOVNAME THNAME MDATE SHOWTIME This table contains the complete information about the movies running in all theatres. Res_Info: RES_ID THNAME MOVNAME NO_TICKETS PRICE TH_ID MDATE SHOWTIME This table maintains the details of the reserved tickets. Reservation Ids will generates randomly and stores into the database. Here RES_ID is unique. This Id is used as a reference. Free_ Seats: THNAME MOVNAME C1_SIZE C2_SIZE MDATE SHOWTIME This table maintains the complete details of the available seats for each movie. C1_SIZE and C2_SIZE are the number of seats of both class1and class2 respectively. Software Specifications Requirements: . Java Servlets . My SQL Database . HTML Java Java is an object oriented programming language. It is simple to understand as it is make possible to model real life objects in digital environment by using java classes, give the description to eht objects by using variables and give functionality to the objects by methods. Java was designed as an Internet-application language and allows writing programs as Java applications or Java applets. For this project we used J2SE that supports server side programming to cary out the task of reserving tickets for a movie. Servlets Overview . Servlets are Java technology’s answer to CGI programming. They are programs that run on a Web server and build Web pages.The necessity of creating the webpages dynamically leads to invent the servlet technology.Java servlets are more efficient, easier to use, more powerful, more portable, and cheaper than traditional CGI and than many alternative CGI-like technologies. HTTP Request Headers: When an HTTP client(e.g. a browser) sends a request, it is required to supply a request line (usually GET or POST). If it wants to, it can also send a number of headers, all of which are optional except for Content-Length, which is required only for POST requests. HTTP Response Headers: A response from a Web server normally consists of a status line, one or more response headers, a blank line, and the document. Setting the HTTP response headers often goes hand in hand with setting the status codes in the status line. Handling form Data One of the nice features of Java servlets is that all of this form parsing is handled automatically. Just simply call the get Parameter method of the HTTP Servlet Request, supplying the parameter name as an argument. This is exactly the same way when the data is sent via GET as we do when it is sent via POST. The return value is a String corresponding the undecoded value of the first occurrence of that parameter name. An empty String is returned if the parameter exists but has no value, and null is returned if there was no such parameter. If the parameter could potentially have more than one value we should call get Parameter Values instead of getParameter. This returns an array of strings. HTML HyperText Markup Language(HTML), the publishing language of the World Wide Web. In addition to the text, multimedia, and hyperlink features it also supports more multimedia options, scripting languages, style sheets, better printing facilities, and documents that are more accessible to users with disabilities. HTML takes great strides towards the internationalization of documents, with the goal of making the Web truly World Wide. MySQL The MySQL database is a high-performance relational database management system for Web site and business application development and deployment. MySQL is available on all major Linux distributions, as well as Unix, Mac OS and Windows operating systems. The MySQL database server is the world’s most popular open source database. Its architecture makes it extremely fast and easy to customize. Extensive reuse of code within the software and a minimalistic approach to producing functionally rich features has resulted in a database management system unmatched in speed, compactness stability and ease of deployment. The unique separation of the core server from the storage engine makes it possible to run with strict transaction control or with ultra-fast transactionless disk access. User’s Guide and Examples Main page This is a home page of Online Booking System. This page contains some graphical images and the images of the movies currently showing in the theates. This page consists of a menu, which have link to several other pages like About the System, Movies Info, Terms & Conditions, Cancel Reservation. This page also consists of Search option and Sign In. Search by Movie: If the user wants to search for a particular movie , he has to submit the moviename, and clicks on the GO button he gets the information of the requested movie or theatre. Sign In: If the user clicks on this link he is redirected to login page. Login Page This page used to login into the system for both the Sales Agents And Management. A registered user can sign into the system by providing valid username and password. If the user enters incorrect username or password he is requested to provide a valid username and password. If the agent is successfully logged in, he is redirected to Reservation form. Reservation Form This page contains the staus of reservations of each movie. Here the agent can see the status of each movie and reserve the ticket for the requested movie by submitting theatrename, moviename, date, no.of tickets and price. As soon as he submits the above values the user gets a Res_Id, which is randomly generated by the system. Cancelation Page This page is meant for canceling the reservations. Here the sales agent has to submit the reservation id and the number of tickets he wants to cancel. Management Updation Page As soon as the management people login to the system they are redirected to this page. In this page complete movie information of all the theatres are displayed. Here the management can insert a new movie into the database or delete a selected movie from the list. Management Insert Page When the management people clicks on insert button this page is displayed Here they are asked to provide the theatre name, movie name and date, submits the above values they get the updated version of Management Updation Page. Technical Description of the Program The online booking system consists of two modules one the client side, the sales agent module and other the Server side i.e Management module, In the sales agent module we have the following 5 classes. Classes Used In Agent Module . Class login servlet . Class Booking Servlet . Class Cancelation Servlet . Class MovieSearch Servlet . Class ReservationInfo Servlet In the management module we have the following 3 classes (refer UNL Diagrams in Appendix) Classes Used In Management Module . Class ManagementInfoServlet . . Class Management Insert . Class Delete Servlet Sales Agent Module Main Classes: Login Servlet: This Servlet is used to allow the authorized agents to access the system. Only one method is used in this Servlet. Public void doGet(): When an agent submits his username and password this method is invoked. When a user clicks on submit button this method checks the username and password supplied by the user and checks the submitted values with the Agent_Info table. If the values are matched, the agent is allowed to enter into the system and carry out the required tasks. (source code in Appendix) Booking Servlet: This servlet gives the information about the reservation status of all the movies. This information is retrieved from the Free_seats table. If the customer wants to book a seat for a particular movie, the sales agent enters the Movie name, Date Number Of Tickets, and Price Category. ReservationInfoServlet: When the sales agent press the Submitbutton in the Booking Servlet this Servlet will be invoked and takes the values from the User and Inserts into the reservationinfo table and updates the free_seats table, and gives the reservation id to the customer and how much price the customer has to pay. MovieSearchServlet: This Servlet is used to search movies . It accepts movie name from the user and searches the Free_seats table and displays the results. Management Module Main Classes Management Info Servlet: whenever the management logs into the system, this Servlet is invoked and displays the currently showing movies information. This Servlet gives two options i.e., insert a movie and delete a movie. Based on the action he has selected that particular Servlet is invoked. (source code in Appendix). ManagementInsert: This Servlet is called when the management want to insert a movie into the database. It accepts the movie name, date and theatrename. These values are inserted into Mov_Info table and updates the Free_seats table. (source code in Appendix). Delete Servlet: This Servlet is invoked when the management people selects a movie and press the delete button. This action performs deleting the selected movie information from the Mov_info and Free_seats tables(source code in Appendix). Test Test results: We tested our system on specific scenarios and found that it handles standard situation. we should be also mention that the system is not capable to handle unexpected use. Based on the testing results, we found that changes and improvements can be made to provide more stability to the system. . Handling exceptions and creating a specific exceptions . Use conditions to handle unexpected use of the program Further Improvements and Extensions of the System 1> Seating Arrangement can be made based on user choice 2>This system can be extended to any number of theatres and shows. Conclusion Achievements: During this four-week project we developed a program that functions according to the system requirements, we developed a simple online booking system in a java environment. During this project we utilized not only java programming skills but also a theoretical knowledge of the system we developed. Our practical achievement is basically an extensive experience in java programming. In addition to that we learned to use algorithm and programs developed in java environment. Scope: This project covers all the agents. This system can extended to any number of agents and maintainance center. This is very useful for easy maintainance. References The complete reference HTML(Second Year)-By Thomos A.Powell Year & Publications: 1999 by the McGraw-Hill Companies Programming with Servlets & JSP Technology-By Rockvillle Maryland Year & publications: 2003 June by Johns Holkins University Montigomary County Center. The gur’s Guide the Transact-SQL – By Ken Handersen. Year & Publications: 2001 by Addison-Wesly. Websites Referred: www.sun.java.com http://www.htmlhelp.com/reference/html40/olist.html