ONLINE FLIGHT RESERVATION USING RECOMMENDATION …



FLIGHT RESERVATION USING RECOMMENDATION SYSTEM

BY

PRASAD KEMBURU

B.TECH., JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY, 2003

HYDERABAD, INDIA

A REPORT

Submitted in partial fulfillment of the requirements for the degree

MASTER OF SCIENCE

Department of Computing and Information Sciences

College of Engineering

KANSAS STATE UNIVERSITY

Manhattan, Kansas

2007

Approved by:

Major Professor

Dr. Daniel Andresen

ABSTRACT

With the advancement in technology in the filed of e-commerce, the problem with information overload has been at its peak. Thus there should be some cognitive solution to the problem at hand. The first and foremost solution to this problem would be a ‘recommender system’, which is information filtering technique aimed at presenting the user with the most viable options based on certain reference characteristics. These characteristics are learnt from either explicit or implicit feedback provided by the user. But, past experiences show that that only a few numbers of users provide explicit feedback. The current ‘Flight Reservation using recommendation system’ uses implicit feedback to overcome the problem.

Flight reservation systems have been implemented for years, basically from manual to computerized reservation system. The demand for fast and secure online Flight reservation systems has been increasing day by day. The effective use of the latest technology is the backbone for the design of a good system. The main objective of the project is to provide the user with desired selection options, real-time information and recommend the user of an itinerary that best fits his preferences, based on his previous purchases. The preferences are stored as a case base for future personalized recommendations.

TABLE OF CONTENTS

LIST OF FIGURES

LIST OF DATABASE TABLES

ACKNOWLWDGEMENTS

1. INTRODUCTION

1.1 FLIGHT RESERVATION CLIENT

1.2 PROBLEMS

1.3 OBJECTIVE

1.4 INTENDED AUDIENCE

1.5 OVERALL STRUCTURE

2. RELATED WORK

2.1. OTHER APPROACHES

2.2 COMPARISON WITH OTHER EXISTING METHODS

3. IMPLEMENTATION

3.1 SYSTEM ARCHITECTURE

3.2 TECNOLOGIES USED

3.3 DATABASE SCHEMA

3.4 MODULES

3.5 FLOW CONTROL

3.5.1 USER FLOW CONTROL

3.6 DESIGN

3.7 SCREEN SHOTS

4. TESTING

4.1 ANTS LOAD

4.2 ANAYLSIS

4.2.1 RESULTS

4.5 HARNESSIT – UNIT TESTING

4.5.1 CORRECTNESS

4.6 PROBLEMS FACED

4.7 LESSONS LEARNT

5. FUTURE WORK

5.1 EXTENSIONS

6. CONCLUSION

REFERENCES AND/OR BIBLIOGRAPHY

APPENDIX A

ACKNOWLEDGEMENTS

I would like to thank my major professor, Dr. Daniel Andresen, for his valuable guidance and encouragement throughout this project.

I would also like to thank Dr. Scott Deloach and Dr. Neilsen for serving on my committee and for their valuable suggestions.

I would like to give my word of thanks to Mrs. Doina for her generous support and invaluable guidance with my project.

Finally, I would like to thank my family for their love and support. I’m grateful to them for the confidence they had in me that I would prosper in my education in the US.

INTRODUCTION

The problem of information overload occurs when the user is provided with too many options to choose from, most of which may not be what the user is looking for. Hence an effective system would capture the user preferences from his previous purchase history and use the same in recommending one on his next visit.

The user preferences are stored every time he makes a purchase. Explicit feedback from the user could be one way of collecting these preferences. But, explicit feedback often times may not be as effective, as it may result in boring the user and hence increasing the user’s frustration level. But one way of working around this problem would be to collect implicit feedback from the user by mining for information from the data stored in the user profile.

The aim of this project is to use the .net framework in effectively creating an online flight reservation system that provides the user with a friendly interface and is fast and secure. The key aspect of the system being the ability to recommend the user, the itineraries that best fit his selection, based on his purchase history. The system takes in the user input and generates a list of itineraries that the user is free to select from depending on his personal preference. The input essentially contains the source, destination, and date of departure of journey. The inputs required are strongly imposed by validating the required fields, which ensures the user selections are correct and prompt. A list of results is then displayed dynamically by searching the database for the entries that meet the input criterion. The system is developed using with and SQL SERVER 2000.

1.1 THE FLIGHT RESERVATION CLIENT

The Flight reservation client (FRC) is a recommender system that searches for multiple airlines concurrently for flights on behalf of the user. It has a good web interface the enables the user to search for flights. The FRC takes in the user input and generates a set of itineraries that meet the input criterion. The result set usually consists of a significant amount of flights. The user might get overwhelmed by the large number of choices. Hence a recommender system is incorporated the sorts out the results set based on the user’s purchase history. To make accurate recommendations, the FRC should be able to learn the user preferences. So, the system stores information about the user preferences, every time a purchases is made. It uses the stored preferences as the sort criterion in the recommendation process. The FRC uses the feature weighting technique.

1.2 FEATURES OF THE SYSTEM

The system is developed using using and SQL Server 2000 as back end. The FRC makes personal recommendations to users based on their purchase history. The key features of the FRC include:

a) It makes personalized recommendation to each user

b) It collects implicit feedback from the user as opposed to explicit feedback which is associated with a high cost of cognitive load placed on the user

c) Provides the user with the ability to sort the results based on his temporary preferences.

1.3 INTENDED AUDIENCE

The FRC system aims at reducing the cognitive load on the user by making recommendations based on implicit feedback. The recommendation process is not simply specific to the flight reservation domain. It could be used in any domain that involves making recommendations to users based on implicit feedback.

1.4 OVERALL STRUCTURE

1. The rest of the paper deals with the other approaches for developing this project.

2. The implementation section describes the system architecture, the database schema, the technologies used, flow control, Design of the project described using the UML diagrams, and the screen shots.

3. The Testing section describes the testing tools used to test the performance of the application and a detailed review of the results.

4. The Future work section discusses the advantages and shortcomings of the current recommendation strategy. It also some further techniques that could be investigated.

5. Finally, the Conclusion section concludes the report.

2. RELATED WORK

2.1. OTHER APPROACHES

2.2 COMPARISON WITH OTHER EXISTING METHODS

3. IMPLEMENTATION

3.1 SYSTEM ARCHITECTURE

A pictorial description of the system architecture for the Flight reservation system is shown below. This has been designed using Microsoft Visio 2007.

Figure 1 – SYSTEM ARCHITECTURE

[pic]

The architecture of the entire system is shown in the figure 1. This project was developed using and . The user starts at the Search page. He could do the search for the Flights, with or without logging in. and have been used for the creation of the Forms and the implementation respectively, while SQL Server 2000 was used as the back end. The control flow between the pages is described in the subsequent paragraphs.

The user starts at the Search page. He could login straight away or perform a search, select an itinerary, confirm it and then login. Let’s look at the Flow control when the user opts to search first. The user starts with selecting the criterion for search.

1. One-way or Roundtrip by selecting the respective radio button.

1. The Source and the destination for the journey are then selected from the drop-down lists next to from and to respectively. Requirement validation has been implemented to make sure that both the entries are selected and are not the same.

1. Using the calendar control, the departure date and return date are selected. For One-way, only the departure date is selected. Again, validation has been done for the correct selection of dates in calendar control. The validation is done so that, the user doesn’t select a date that is not valid, for example a date that is before the current date. In case of Roundtrip, validation has been done so that the return date is always later then the current date.

1. The user could select the optional preferences such as the number of adult tickets, number of child tickets and the class of ticket, namely economy or business.

1. Once the required fields are selected, the user clicks the Search button. The Search results are fetched, the user is re-directed to the Results page.

1. In the Results page, the user is provided with a list of itineraries that meet the selected criterion. The user could take a look at the detailed itinerary by clicking on View Details, Which opens a new window with the complete itinerary. Clicking on the Select button redirects the user to the Confirmation page.

1. Once the user clicks the Confirm button, he is taken to the login page, where he could login and confirm the itinerary. New users could register through the Signup page.

1. After the user logs in and confirms his itinerary, he is redirected to the home (Search) page.

3.2 TECNOLOGIES USED

Microsoft Visual

The Visual framework includes a unified set of objects available on server and client platforms. It is the next generation of Microsoft's Visual Studio platform. Visual provides developers with a full-service Integrated Development Environment for building Web applications, XML Web Services, desktop applications, mobile applications for the .NET framework. It supports multiple languages- Visual C#.NET, , Visual C++.NET and Visual J#.NET and provides transparent development and debugging facilities across these languages in a multi-language solution.



is a set of web development technologies marketed by Microsoft. Programmers can use this set of technologies to build web applications, Desktop Applications and XML web services. Its main features are described in the following paragraph.

It builds the real world applications in an easy manner. It gives a lot of flexibility to choose the language you want to program in. It supports more than 25 .Net languages.

rich output caching can increase the performance to a great extent. If caching is enabled, the page is executed once and the results of the web page are saved. This makes the results easily available to the next user who requests this page. makes it easy to call XML Web Services from the application and this allows applications to communicate the data over the Internet regardless of the programming language and OS.

SQL Server 2000

Microsoft SQL Server is a relational database management system produced by Microsoft. It supports a superset of Structured Query Language SQL, the most common database language. It is commonly used by businesses for small to medium sized databases, and in the past 5 years large enterprise databases and competes with other relational database products for this market segment.

[1]

JavaScript

JavaScript developed by Netscape is used to create dynamic web pages. It is widely used.

JavaScript can put dynamic text into a HTML page, react to events, read and write HTML elements. It could be used to validate data.

JavaScript works with HTML in the following manner.

JavaScript Page

Content of the Page

I have used JavaScript confirmation alerts at all the required locations.

Microsoft Visio:

Microsoft Visio is diagramming software for Microsoft Windows. It uses vector graphics to create diagrams. Microsoft Office Visio 2007 makes it easy for IT and business professionals to visualize, explore, and communicate complex information.

Visual Paradigm 6.0 for UML:

Visual Paradigm for UML is a UML CASE Tool supporting latest version of Unified Modeling Language (UML) and Business Process Modeling Notation (BPMN) from Object Management Group (OMG). In addition to the UML modeling support, it provides business process modeling, object-relational mapping generator for Java, .NET and PHP.

3.3 DATABASE SCHEMA

There are 12 database tables used in the design of the FRC.

Figure 1: tblUserType

[pic]

The tblUserType table has 2 entries to store the details about the user. The UserTypeId is a unique id which identifies the type of the user, to determine if the user is an admin (administrator) or a regular user.

Figure 2: tblUser

[pic]

The tblUser stores the information about the Users that are registered. Every time a new User is created, the information is updated into this table. The names of the Columns are self-explanatory. The UsertypeId determines if the user is administrator or a regular user.

The UserId is a unique identifier assigned to each user to distinguish him from other users registered.

Figure 3: tblAirways

[pic]

The tblAirways stored the information about the airways in our current FRC. Airway_cd stored the airline code and AirWayName stored the name of the provider.

Figure 4: tblAirport

[pic]

tblAirport had 3 fields that store information about all the airports, that include the airport code, airport name and the city of the airport. The Unique identifier Airport_Cd the syste distinguish between the respective airports.

Figure 5: tblFlightCodes

[pic]

The FRC has multiple flights with the same Flight number, but at the different times of the day. Hence flights are distinguished using the unique identifier Code_Id. The table tblFlightCodes stores the flight number, the source and destination of the flight, the day of the week on which the flight runs between the respective airports and the departure time.

Figure 6: tblduration

[pic]

This table has been used to generate the tblFlightDetails along with the above mentioned tables. It has the source, destination, airway and the time it takes to travel between those two airports for the respective airways.

Figure 7: tblitinerary

[pic]

The table tblitinerary keeps a record of all the purchases made in the FRC. It stores the id of the user who made the purchase, the purchase date and the itinerary selected. This table is joined with the tblFlightDetails table, while displaying the purchase history of the user and is updated every time a purchase is made.

Figure 8: tblFlightDetails

[pic]

This table is the one that holds all the pre-determined itineraries in the FRC. It stores all the information necessary for each and every itinerary.

Figure 9: tblTempPrefData

[pic]

This table is similar to the tblItinerary, except for it stores the data directly for use in the tblPreferences. It is used for analyzing the correctness of the selections made and the preferences stored.

Figure 10: tblPreferences

[pic]

Table tblPreferences is the key table in the entire FRC that stores the information used in the recommendation system. The respective weight for each preference is stored in this table. The individual weights of the attributes are accessed and used while sorting the result set for recommendation purposes.

Figure 11: tblToTempResults

[pic]

The table tblToTempResults is dynamically filled on the fly, when a search is performed. It stores the search results for the onward journey until the purchase session is finished. The data is cleared once a purchase is confirmed.

Figure 12: tblFroTempResults

[pic]

This table is similar to tblToTempResults, except for it holds the information for the return journey.

Figure 6 – DATABASE SCHEMA

[pic]

There are 6 stored procedures in the database. The names of the procedures are self-explanatory.

spGetSearchResults: This Procedure does the key job of fetching the results from the tblFlightDetails. The user input is stored in a hash table and sent as a parameter. It returns the set the itineraries that meet the criterion.

spGetPurchases: This procedure joins the tblItinerary with the tblFlightDetails and returns the purchase history.

The stored procedures spGetUser, spInsertItenary, spInsertTempPref, spInsertUser does the job of fetching the user information, inserting the purchase record, inserting the preferences made and inserting a new user respectively.

There are 3 functions fnConvertArriveTimeToChar, fnGetArriveTime, fnGetNextDate in the database that does the job of formatting and calculating the date and time.

3.4 MODULES

The modules involved in this application are:

3.4.1

a. Search for flights:

This is the module that involves the loading of Search page. The dropdown lists are loaded with the airport names by accessing the tblAirport.

The user can click on the login or Signup and is redirected to the Login page or Register page respectively. The user logs in, and the values are validated by testing against the tblUser from the database. If the username and password combination are correct, the user id redirected to the Search page and the logoff link is made visible.

The user goes to register page by clicking on signup from the Search page or the Login page. The values entered are validated for correctness. Upon successful sign up, the user is redirected to the search page. The new user is added to the tblUser table in the database along with the information provided.

The user input is read from the search page. Required field validation is done to make sure that the required input is entered. Data validation is done on the input to make sure that the values entered meet the custom validation criterion. This includes, checking to see, if the source and destination airports are the same. An alert is popped up to advising the user to select different source and destination airports. This is done using JavaScript. Similarly, Data-time validation is done in the calendar control. This assures that the data selected is not before the current date. And for a roundtrip, it makes sure that the return journey date is not before the onward journey date.

Once the validations are done, the search functionality is handled.

b. Get the results:

This is the heart of the entire project where the results are sorted based on the recommendations and displayed. The user clicks the Search button and the input is read. The input is stored in a hash table and sent to the stored procedure “spGetSearchResults” for processing. The results are fetched and stored to the tables, tblToTempResults and tblFroTempResults for onward and return flights respectively. The contents of the tables are processed and sorted based on the Preferences from the tblPreferences. The data is then displayed in the Results page. The results are displayed in descending order of recommendation level for the particular user. The flights can be further sorted based on the user price and airline fields. The onward and return flights are selected by clicking on the respective radio button for that itinerary.

c. Login/Confirm:

The user selects the itineraries and confirms them by clicking on the Select button in the Results page. This module checks is the user is logged in and takes the necessary action.

1. If the user is logged in, he is directed to display itinerary / confirm page, where the user confirms the selected itinerary.

1. If the user is not logged in, he will be directed to the login page, from where, upon successful login, is directed to the confirm page.

2. If the user is not logged in and is a new user, he can register from the link to the signup page on the login page. On successful signup, he is directed to confirm page.

The session is maintained through the whole process and on successful confirmation of the Itinerary; the user is taken to the search page. The preferences and the itinerary are updated in the user profile and the temporary result set is cleared.

d. View Purchase History:

The purchase history link appears when the user is logged in. This takes the user id and fetched the purchase history by joining the tblitinerary with the tblFlightDetails. The results are stored in a dataset and bound to the datagrid on the PurchaseHistory page.

3.5 FLOW CONTROL

3.5.1 USER FLOW CONTROL

The figure 7 shows the user control flow in the FRC. The rectangle boxes represent the source files which are .aspx pages in my project. The arrows represent the flow between the .aspx pages. The user starts from the home page which is the Search.aspx. At this point he can make three choices whether to go to Login, Signup or the Results page. If the user goes to Login page or the signup page, he is directed to the search page upon successful login or signup. After the user signs in, his session is maintained and he can view his purchase history. The results page can be reached, whether the user is signed in or not.

From the Flow control diagram below, the user navigates to the confirm page, any time a selection is made in the results page and the select button is clicked. This could be in three ways

1. directly from the results page, if the user is already logged in.

2. through the login page, if the user already has an account to login with.

3. from results to login and then through signup, if it’s a new user.

The user can only navigate to the search page (home page) from the confirm page

The User flow control diagram had been designed in Microsoft Visio 2007.

Figure 1 – USER FLOW CONTROL

[pic]

3.6 DESIGN

USE CASE DIAGRAMS:

The use case diagrams overview the usage requirements for a system. But in actual development use cases provide significantly more value because they describe "the meat" of the actual requirements. The use cases describe the sequence of actions that provide something of measurable value to an actor.

Figure 8 – USER SIDE USE CASE DIAGRAM

[pic]

ACTIVITY DIAGRAMS:

Activity diagrams are typically used for business process modeling, for modeling the logic captured by a single use case or usage scenario, or for modeling the detailed logic of a business rule. Activity diagram represents the business and operational step-by-step workflows of components in a system. It shows the overall flow of control. In many ways UML activity diagrams are the object-oriented equivalent of flow charts and data flow diagrams from structured development. A very common use of activity diagrams is they enable you to depict both the basic course of action as well as the alternate courses.

[pic][pic]

CLASS DIAGRAM:

Class diagrams show the classes of the system, their interrelationships and the operations and attributes of the classes. The purpose of a class diagram is to depict the classes within a model. In an object oriented application, classes have attributes (member variables), operations (member functions) and relationships with other classes. The UML class diagram can depict all these things quite easily.

SEQUENCE DIAGRAM:

Sequence diagrams model the flow of logic within the system in a visual manner, enabling us both to document and validate your logic, and are commonly used for both analysis and design purposes. Sequence diagrams are the most popular UML artifact for dynamic modeling, which focuses on identifying the behavior within the system.

USER SEQUENCE DIAGRAM

4. TESTING

4.1 ANTS LOAD

1. Testing using ANTS Load:

ANTS Load is used to predict a web application's behavior and performance under the stress of a multiple user load. It does this by simulating multiple clients accessing a web application at the same time, and measuring what happens. ANTS Load is for load testing websites and web services and works particularly well for applications written using Microsoft technologies such as and ASP.

Features:

It is used to build web applications using Microsoft technologies. It can quantify performance for a reasonable (>25) number of application users. It can understand the business impact of performance. It allows simulates multiple concurrent users of a web application. It measures the performance of the application in terms of page download times, server performance and errors. Finally it indicates the business impact in terms of the abandonment prediction and frustration coefficient

ANTS Load has 3 editions:

• ANTS Load Entry Level Edition lets you simulate up to 25 concurrent users, running on a single client computer.

• ANTS Load Professional Edition lets you simulate up to 100 concurrent users, running on a single client computer.

• ANTS Load Enterprise Edition lets you simulate thousands, or even tens of thousands, of concurrent users, running on multiple client computers.

I have used the free evaluation for up to 10 users here for testing my web site.

4.2 ANAYLSIS

Website performance testing tools give results that are very subjective to interpret. Ita been widely quoted that "if a web page takes longer than 10 seconds to download then a user is likely to lose interest”. Frustration was measured as being very slightly influenced by time but only if the download time was greater than 30 seconds. Lostness equals the number of page visits required to complete a task (optimal path) divided by the number of pages visited. 1.0 means the user was not lost at all. There is no upper limit! You can see in the below test result that the time to connect to each page was zero except for two pages. This shows that the web site will not be much frustrating to users. The page takes the maximum amount of time to connect because of the authentication, the images it has to load and the data it has to retrieve. Generally a web page consisting of images take a lot of bytes and lot of time to connect and in this application the time to connect is not too high. I have done the testing from a system connected to internet via modem and hence I can say that it would perform even better from a faster connection.

Figure 2 – RESULTS

[pic]

[pic]

This section shows the overall distribution of metrics for the FRC. The charts show what proportion of timings fall into which intervals.

Figure 3 – TIME TO CONNECT

This section shows you the average timings for each web page for this test. This can be used to find the fastest, and slowest, pages in the current web application.

FRC

[pic]

The figure 25 shows that the all the web requests take time that’s less than 50 milliseconds. This emphasis on the user’s frustration level is evident that it would be low for the current application.

Figure 4 – TIME TO GET FIRST BYTE

[pic]

The figure 26 shows the time taken for the application to get the first byte. We can see that time taken to receive the first byte is less for the majority. Moreover, the maximum time taken was just 250 milliseconds.

Figure 5 – TIME TO GET LAST BYTE

[pic]

The figure 27 shows the time taken for the application to get the last byte. We can see that the maximum time taken to receive the last byte was 250 milliseconds.

The figure 28 represents the total number of bytes received by each web request. The complexity of the application is obvious from the vast amount of the web requests receiving close to 5000-10000 bytes[pic]

4.2.1 RESULTS

From the above analysis, we can conclude that:

• The FRC, despite being a very complex application with a lot of request to the database, performs really well in terms as is evident from the graphs. We can be assured that the application would minimize the user frustration level.

• The time to connect to the web page is low and hence the web page will not be abandoned by the users.

• The time between the first byte and the last byte received is very nominal, We can see from the figure 28 that despite the high amount of data received is the time to receive the last byte is low. Thus we can conclude that the level of lost ness while navigating through the application is very less.

5. FUTURE WORK

5.1 EXTENSIONS

The FRC application is limited to only a few user preferences. The number of preference characteristic could be increased significantly. The case based reasoning works effectively for the particular user in context. A recommendation system can be made more effective by using a collaborative approach. An approach where the predictions are specific to the user, but use information gleaned from many users. The FRC generalizes the concept of multiple users by just calculating the total weight of individual preferences instead of calculating the similarity between different users. The current system gathers implicit feedback by observing the history of the user purchases. The scope of implicit feedback gathered can be extended or improved by observing the user’s action in each given sessions.

6. CONCLUSION

This report describes the Flight Reservation Client (FRC), an application that enables the user search for and finds flights. The search result comprises a large number of itineraries. Hence the recommendation system cuts down the burden on the user by recommending the flight that best fit his preferences by placing them at the top. Explicit feedback leads to an increase in the user’s frustration level. The recommendation process is highly effective as it uses implicit feedback. The feedback is obtained by making some observations on the user’s purchase history. The FRC makes successful recommendations by using the technique of assigning feature weights and user specific context based recommendations. The recommendation algorithm was designed with the Flight Reservation client (FRC) application in mind. Yet, it can be applied to other domains that use implicit feedback. The key to the success of the FRC is the ability to sort the results based on user preferences and personalizing it in the recommendation process.

REFERENCES AND/OR BIBLIOGRAPHY

[1] “Start VB dot ”, “ Features”,

[2] Red-Gate, “Load testing, stress testing”,



[3] Shrijeet Nair, “Microsoft Application Test Center”, “Date: 9-17-2002”17/2002



[4]

[5]W3Schools, “ Introduction”,

[6] Microsoft , “ web: Official Microsoft 2 site”,



[7] Microsoft, “Visual Studio Extensibility”,



[8] Red-Gate, “Website download time, abandonment”,



[9] “Microsoft Visio tutorial”



[10] “Visual Paradigm documentation”



[11] “Introduction to the Diagrams of UML 2.0”



[12]

[13]

[14]

[15]

[16]

[17]

[18]

[19] A dynamic approach to feature weighting

B. Arslan, F. Ricci, N. Mirzadeh & A. Venturini eCommerce and Tourism Research Laboratory, ITC-irst via Sommarive 18, 38050 Povo, Italy

[20]

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download