Patent ID: 12204598

DETAILED DESCRIPTION

Following below are more detailed descriptions of various concepts related to, and implementations of, methods, apparatuses, and systems for accommodation searching and processing based on various defined factors. The various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways, as the described concepts are not limited to any particular manner of implementation. Examples of specific implementations and applications are provided primarily for illustrative purposes. It should also be understood that the terminology is for the purpose of description only and should not be regarded as limiting.

Referring now toFIG.1,FIG.1shows a schematic diagram of search system (e.g., a hotel search system, a hotel location selection system, etc.), shown as accommodation search system10. The accommodation search system10is configured to provide a user with the ability to search for an accommodation based on a variety of information including, but not limited to, preferences, scheduling/calendar characteristics, trip characteristics/parameters, location characteristics, and the like. As shown inFIG.1, the accommodation search system10includes a user device, shown as client device100, and a remote server, shown as remote server200. According to an exemplary embodiment, the client device100is configured to establish a connection between the client device100and the remote server200and provide the variety of information to the remote server200. The client device100may provide the variety of information at least one of automatically and manually responsive to a user input. In one embodiment, the client device100is structured as a portable device. The portable device may include, but is not limited to, a smartphone, a tablet, a laptop, a smart watch, and/or any other type of form factor device. In an alternative embodiment, the client device100is structured as a stationary device (e.g., a desktop computer, etc.).

As shown inFIG.1, the client device100includes a user interface110, a communication interface120, a power source130, and a processing circuit150. The user interface110may include a display screen, a touch screen, one or more buttons, a touch pad, a mouse, and/or other devices to allow a user to operate the client device100. According to an exemplary embodiment, the user interface110is configured to provide a display to the user of the client device100. In one embodiment, the display of the user interface110provides an account login interface. The account login interface may be configured to provide a user of the accommodation search system10with the ability to sign-up for an account associated with the accommodation search system10(e.g., a new user, etc.), access an existing account associated with the accommodation search system10(e.g., with user credentials such as a username, email, password, etc.), and/or delete an existing account associated with the accommodation search system10. In another embodiment, the display of the user interface110provides a client account interface. The client account interface may be configured to provide a user of the accommodation search system10with the ability to update/change credentials, add/remove preferences, sync or enter itinerary/calendar information, view search/booking history, enter or link colleague information, and enter or link company information, among other possibilities. In still another embodiment, the display of the user interface110provides an accommodation search interface. The accommodation search interface may be configured to provide a user of the accommodation search system10with the ability to enter specific characteristics for a trip/event (e.g., location, date range, number of people, etc.) to begin a search for an accommodation (e.g., a hotel reservation, a car rental, an airline reservation, etc.). In some embodiments, the display of the user interface110provides search results in the form of a list results interface. According to an exemplary embodiment, the list results interface provides search results that are sorted and presented in a list to the user based on a weighted scoring system. The weighted scoring system may take into account a variety of factors including, but not limited to, client preferences, company preferences, agency preferences, colleague preferences, client history, colleague history, current/future trends, location information, and the like. In other embodiments, the display of the user interface110provides search results in the form of a map results interface. According to an exemplary embodiment, the map results interface provides the search results on a map which are numbered based on the weighted scoring system and presented based on location (e.g., relative to a current location, relative to a location of interest, etc.).

Referring still toFIG.1, the communication interface120may be configured to facilitate the communication between the client device100and the remote server200. The communication may be via any number of wired or wireless connections. For example, a wired connection may include a serial cable, a fiber optic cable, a CAT5 cable, or any other form of wired connection. In comparison, a wireless connection may include the Internet, Wi-Fi, cellular, radio, Bluetooth, etc. In one embodiment, a controller area network (CAN) bus provides the exchange of signals, information, and/or data. The CAN bus includes any number of wired and wireless connections. The power source130is configured to power the client device100. In one embodiment, the power source130is an internal power source, such as a battery. In some embodiments, the battery is rechargeable. In other embodiments, the power source130is an external power source (e.g., provided through a cable connecting to mains power, a wall outlet, etc.).

As shown inFIG.1, the processing circuit150includes a processor152and a memory154. The processor152may be implemented as a general-purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a digital signal processor (DSP), a group of processing components, or other suitable electronic processing components. One or more memory devices154(e.g., RAM, ROM, Flash Memory, hard disk storage, etc.) may store data and/or computer code for facilitating the various processes described herein. Thus, the one or more memory devices154may be communicably connected to the processor152and provide computer code or instructions to the processor152for executing the processes described in regard to the client device100herein. Moreover, the one or more memory devices154may be or include tangible, non-transient volatile memory or non-volatile memory. In some embodiments, the one or more memory devices154may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described herein.

The memory154is shown to include various modules for completing processes described herein. More particularly, the memory154includes modules configured to provide a variety of information (e.g., trip parameters, preferences, credentials, itinerary/calendar information, etc.) to the remote server200such that the remote server200may provide accommodation search results (e.g., based on a weighted scoring system, etc.) to a user of the client device100. The modules may also be configured to provide distance and/or navigation instructions between an accommodation of the search results and a location of interest. While various modules with particular functionality are shown inFIG.1, it will be understood that the client device100and the memory154may include any number of modules for completing the functions described herein. For example, the activities of multiple modules may be combined as a single module and additional modules with additional functionality may be included. Further, it will be understood that the processing circuit150of the client device100may further control other processes beyond the scope of the present disclosure.

As shown inFIG.1, the client device100includes a communication module156, a display module158, and a user interface module160. The communication module156may be communicably coupled to the communication interface120and configured to control the communication (e.g., the transfer of information, etc.) between the client device100and the remote server200. The display module158is configured to provide a display on the user interface110(e.g., a monitor, a touchscreen, a display screen, etc.) of the client device100. The display module158is further configured to provide the display regarding various user interfaces (e.g., an account login interface, a client account interface, an accommodation search interface, a list results interface, a map results interface, etc.) corresponding with the accommodation search system10. The display module158may also be configured to display various other features and/or user interfaces not related to the present disclosure.

The user interface module160may be configured to receive an input from a user of the client device100via the user interface110(e.g., touchscreen inputs, button inputs, etc.). The input may include a command to operate the client device100(e.g., turn on, turn off, select a feature, etc.). The input may also include a command to open an application interface (e.g., a smartphone application, a tablet application, etc.) or website interface (e.g., a website, URL, etc.) associated with the accommodation search system10. The user interface module160may further be configured to instruct the display module158which user interface to display to the user of the client device100based on the inputs. For example, a user may select to open an application associated with the accommodation search system10. Therefore, the user interface module160may provide instructions to the display module158to display of an account login interface on a display of the user interface110such that the user may provide user credentials162to log into the accommodation search system10via the client device100. The user credentials162may include a username, an email, and/or a password, among other possibilities. The user credentials162may additionally or alternatively include a social media or business networking account of a user of the client device100. The user credentials162may be stored within the memory154of the client device100such that the user stays logged into his/her account on the respective client device100.

In one embodiment, the user logging into the accommodation search system10may be a new user. Therefore, following creating a new account, the user may be provided a client account interface by the display module158on the display of the user interface110of the client device100. The client account interface may be configured to facilitate a new user in entering or a returning user in updating his/her user credentials162, user preferences164, schedule166, company information168, and/or colleague information170. The aforementioned information may be stored in the memory154of the client device100and retrieved by the remote server200when needed, or transmitted from the client device100and stored directly on the remote server200. In an alternative embodiment, a new user may choose to skip creating a new account and continue as a guest user. As a guest user, the user may be able to enter at least a portion of the aforementioned information when conducting an accommodation search directly.

The user preferences164may include a price range (e.g., a maximum price of the accommodation, a minimum price of the accommodation, etc.), a minimum accommodation rating (e.g., based on user ratings, user reviews, agency ratings, etc.), a preferred accommodation or a group/chain of accommodations (e.g., hotel A, hotel chain B, etc.), a distance from a location of interest (e.g., a meeting, an office, a city center, etc.), and the like. The schedule166may be directly entered by the user of the client device100or automatically synced from a calendar/itinerary on the client device100. The schedule166may include a time/date of an event (e.g., a meeting, a dinner, a sporting event, etc.) and/or a location of an event or point of interest (e.g., a city center, a meeting address, an office address, a landmark, a museum, a sporting event, a restaurant address/name, etc.). The company information168may include information regarding a company the user of the accommodation search system10may be employed by, a company the user of the accommodation search system10may have a meeting with, or a company a guest of the user of the accommodation search system10may be employed by, among other alternatives. In one embodiment, the user enters the company information168manually. In another embodiment, the accommodation search system10may access the company information168from social media and/or business networking accounts (e.g., LinkedIn®, Facebook®, Twitter®, etc.) of the user (e.g., if given access by the user, etc.). The colleague information170may include information about friends, coworkers, family members, and the like. In one embodiment, the user enters the colleague information170manually. In another embodiment, the accommodation search system10may access the colleague information170from social media and/or business networking accounts of the user. The remote server200may receive and use the user credentials162, the user preferences164, the schedule166, the company information168, and/or the colleague information170when applying the weighted scoring system to a user's accommodation search, as is described more fully herein.

A user of the accommodation search system10may be further provided an accommodation search interface by the display module158responsive to the user interface module160receiving a search request from a user of the client device100. The accommodation search interface may be configured to allow a user of the accommodation search system10to enter trip parameters172regarding a trip (e.g., vacation, business trip, etc.) the user may be taking or planning. The trip parameters172may include a location/destination for the trip (e.g., a city, a zip code, a current location, etc.), a date range for the trip (e.g., a beginning date, a check in data, an end date, a check out date, etc.), a number of guests (e.g., one, two, four, etc.), a number of rooms or tickets needed, a time of departure, a time of arrival, and the like. The remote server200may receive and use the trip parameters172to find accommodations (e.g., hotels, flights, car rentals, etc.) that correspond with the trip parameters172and at least some of the user preferences164, the schedule166, the company information168, and the colleague information170.

The display module158may also be configured to receive a command from the remote server200to display certain user interfaces to a user of the accommodation search system10. For example, the remote server200may send data to the display module158regarding search results that are based on the information162-172provided by the user. The display module158may be configured to provide the accommodation search results in a list configuration via a list results interface and/or a map configuration via a map results interface.

Referring now toFIG.2A,FIG.2Ashows a schematic diagram of the remote server200. As shown inFIG.2A, the remote server200includes a communication interface220and a processing circuit250. The communication interface220may be configured to facilitate the communication between one or more client device(s)100and the remote server200. The communication between the components of the remote server200, and the remote server200and the client device(s)100may be via any number of wired or wireless connections. For example, a wired connection may include a serial cable, a fiber optic cable, a CAT5 cable, or any other form of wired connection. In comparison, a wireless connection may include the Internet, Wi-Fi, cellular, radio, Bluetooth, etc. In one embodiment, a controller area network (CAN) bus provides the exchange of signals, information, and/or data. The CAN bus includes any number of wired and wireless connections.

As shown inFIG.2A, the processing circuit250includes a processor252and a memory254. The processor252may be implemented as a general-purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a digital signal processor (DSP), a group of processing components, or other suitable electronic processing components. One or more memory devices254(e.g., RAM, ROM, Flash Memory, hard disk storage, etc.) may store data and/or computer code for facilitating the various processes described herein. Thus, the one or more memory devices254may be communicably connected to the processor252and provide computer code or instructions to the processor252for executing the processes described in regard to the remote server200herein. Moreover, the one or more memory devices254may be or include tangible, non-transient volatile memory or non-volatile memory. In some embodiments, the one or more memory devices254may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described herein.

The memory254is shown to include various databases and modules for completing processes described herein. More particularly, the memory254includes databases and modules configured to receive various information from one or more client devices100and provide accommodation search results (e.g., based on a weighted scoring system, etc.) to a user of the accommodation search system10. While various databases and modules with particular functionality are shown inFIG.2A, it will be understood that the remote server200and the memory254may include any number of databases and/or modules for completing the functions described herein. For example, the activities of multiple databases and/or modules may be combined as a single database and/or module and additional databases and/or modules with additional functionality may be included. Further, it will be understood that the processing circuit250of the remote server200may further control other processes beyond the scope of the present disclosure.

As shown inFIG.2A, the remote server200includes a client database260, a company database262, a colleague database264, an accommodation database266, a history database268, and a trend database270. The remote server200further includes an accommodation module278, a client module280, a colleague module284, a company module288, an agency module290, a trend module292, a weighting module294, a sorting module296, and a location module298.

The client database260is configured to store at least one of the user credentials162, the user preferences164, and the schedule166for each registered user of the accommodation search system10(e.g., a user with an account, etc.). The company database262is configured to store company preferences for a plurality of companies. For example, a company may make a company account within the accommodation search system10and specify certain information regarding accommodations that they prefer for their employees based on a price range, a minimum accommodation rating, a preferred accommodation or a group/chain of accommodations, and the like. The company database262may be linked to the client database260such that when a user specifies which company he/she is employed by, the remote server200is able to link the company preferences to the user credentials162of the respective user. The user may manually enter his/her company of employment or it may be retrieved automatically from a social media or business networking account of the user.

The colleague database264is configured to store preferences of colleagues (e.g., coworkers, friends, family, etc.) of a user of the accommodation search system10. The colleague database264may be linked to the client database260such that the colleague database264may populate automatically based on colleague information170retrieved from social media accounts or other sources that may indicate colleagues of the user (e.g., a friend of a user on a social media platform may have his/her preferences shared with the user if both the friend and the user are registered on the accommodation search system10, etc.). The colleague database264may also be linked to the company database262such that users of the accommodation search system10that are employed by the same company receive each other's preferences, which are then stored in the colleague database264(i.e., users that share the same employment may share preferences, etc.) and linked to the user credentials162. The user may also manually populate the colleague database264by manually entering the colleague information170. If the colleague is a registered user of the accommodation search system10, their preferences may populate the colleague database264and link to the user credentials162of the user.

The accommodation database266is configured to store accommodation information regarding a plurality of accommodations (e.g., hotels, rental cars, plane tickets, etc.). The accommodation information may include pricing (e.g., $200/night, etc.), ratings (e.g., 4.5/5 stars, etc.), availability (e.g., vacancy, no vacancy, etc.), location information (e.g., address, etc.), accommodation company (e.g., hotel A, etc.), accommodation group/chain (e.g., hotel chain B, etc.), and the like about the plurality of accommodations. The history database268is configured to store information/data regarding an accommodation history of the plurality of users of the accommodation search system10and/or the users' colleague(s). The history may include accommodations in which a user and/or the user's colleague(s) previously used/stayed at (e.g., a hotel that the user has stayed at, a hotel a colleague of the user has stayed at, etc.). The user and/or colleague accommodation history may be linked the user credentials162of a user of the accommodation search system10. Therefore, the user credentials162of a user of the accommodation search system10may indicate user preferences164, schedule166of the user, company preferences, colleague preferences, user history, and/or colleague history, among other possibilities. The trend database270is configured to store trend information/data that may indicate various current and/or future trends for accommodations. For example, the trends may include accommodations that are currently popular with the general public and/or colleagues of a user of the accommodation search system10.

Referring still toFIG.2A, the accommodation module278may be communicably coupled to the accommodation database266and/or the user interface module160. In one embodiment, the accommodation module278is configured to receive the trip parameters172from a user of the accommodation search system10via the client device100. According to an exemplary embodiment, the trip parameters172facilitate the accommodation module278in retrieving (e.g., querying, extracting, etc.) a basic list of accommodations from the accommodation database266based on the trip parameters172. For example, the basic list of accommodations may include a plurality of accommodations that satisfy the trip parameters172, including aspects such as vacancy during a designated date range, located in a certain city, etc. The basic list of accommodations may then undergo various weighting and sorting processes, as is described more fully herein.

The client module280may be communicably the user interface module160. In one embodiment, the client module280is configured to receive the user credentials162, the user preferences164, the schedule166, the company information168, and/or the colleague information170from a user of the accommodation search system10via the client device100. In one embodiment, the client module280is communicably coupled to the client database260and configured to transmit (e.g., upload, etc.) at least one of the user credentials162, the user preferences164, and the schedule166to the client database260. In some embodiments, the client module280is communicably coupled to the company database262and configured to transmit the company information168for a user of the accommodation search system10to the company database262(e.g., associated with the user credentials162of a user, etc.). In other embodiments, the client module280is communicably coupled to the colleague database264and configured to transmit the colleague information170for a user of the accommodation search system10to the colleague database264(e.g., associated with the user credentials162of a user, etc.). Additionally or alternatively, the company information168and/or the colleague information170may be uploaded to the company database262and/or the colleague database264automatically (e.g., if access to this information is allowed by a user of the accommodation search system10, etc.) based on a user of the accommodation search system10linking his/her account to a social media account/profile (e.g., Facebook®, Twitter®, etc.), a business networking account/profile (e.g., LinkedIn®, etc.), and the like.

As shown inFIG.2A, the client module280may include a client preference module281, a client history module282, and a client schedule module283. The client preference module281may be configured to access the client database260responsive to a user logging into the accommodation search system10with his/her user credentials162. The client preference module281may retrieve the user preferences164for the designated user credentials162(i.e., a user currently logged into the accommodation search system10, etc.) from the client database260. The weighting module294may determine an aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via a weighted scoring system based on the user preferences164. The client history module282may be configured to access the history database268responsive to a user logging into the accommodation search system10with his/her user credentials162. The client history module282may retrieve the user accommodation history for the designated user credentials162(e.g., previous hotels a user stayed at, if applicable, etc.) from the history database268. The weighting module294may determine the aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via the weighted scoring system based further on the user accommodation history. The client schedule module283may be configured to access the client database260responsive to a user logging into the accommodation search system10with his/her user credentials162. The client schedule module283may retrieve the schedule166for the designated user credentials162from the client database260. The weighting module294may determine the aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via the weighted scoring system based further on the schedule166. In an alternative embodiment, the client schedule module283is configured to interpret the schedule166of a user to determine locations of interest for use by the location module298to determine distances and/or routes from an accommodation to the location of interest, as is described more fully herein.

According to an exemplary embodiment, the colleague module284is communicably coupled to the client module280such that the colleague module284may receive the user credentials162from the client module280when a user accesses the accommodations search system10. As shown inFIG.2A, the colleague module284includes a colleague preference module285and a colleague history module286. The colleague preference module285may be configured to access the colleague database264responsive to a user logging into the accommodation search system10with his/her user credentials162. The colleague preference module285may retrieve the colleague preferences of a user of the accommodation search system10from the colleague database264. The weighting module294may determine the aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via the weighted scoring system based further on the colleague preferences. The colleague history module286may be configured to access the history database268responsive to a user logging into the accommodation search system10with his/her user credentials162. The colleague history module286may retrieve the colleague accommodation history for the designated user credentials162(e.g., previous hotels a colleague of a user stayed at, if applicable, etc.) from the history database268. The weighting module294may determine the aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via the weighted scoring system based further on the colleague accommodation history.

According to an exemplary embodiment, the company module288is communicably coupled to the client module280such that the company module288may receive the user credentials162from the client module280when a user accesses the accommodations search system10. The company module288may be configured to access the company database262responsive to a user logging into the accommodation search system10with his/her user credentials162. The company module288may retrieve the company preferences of a company that a user is employed by from the company database262. The weighting module294may determine the aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via the weighted scoring system based further on the company preferences.

According to an exemplary embodiment, the agency module290is configured to store agency preferences of an agency (e.g., Carlson Wagonlit Travel® (CWT), etc.) who owns, operates, designed, is affiliated with, etc. the accommodation search system10. The agency preferences may include a preferred accommodation or group/chain of accommodations that the agency is affiliated with, owns, operates, and the like. The agency module290may be configured to provide the weighting module294with the agency preferences. The weighting module294may determine the aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via the weighted scoring system based further on the agency preferences.

The trend module292may be configured to access the trend database270to receive trend information indicating various current and/or future trends for accommodations. According to an exemplary embodiment, the trend module292is communicably coupled to the client module280such that the trend module290may receive the user credentials162from the client module280when a user accesses the accommodations search system10. The trend module292may be configured to retrieve trend information for colleagues of a user based on the user credentials162received from the client module280. The trend module292may also be configured to retrieve trend information for accommodations based on the trends within the general public (e.g., people not affiliated with the user, etc.). For example, the trend information may indicate an accommodation that is currently receiving good reviews and frequently being used (e.g., a certain percentage of rooms of a hotel are consistently occupied over a designated time period, etc.). The weighting module294may determine the aggregate weighted score for each accommodation of the basic list of accommodations retrieved by the accommodation module278via the weighted scoring system based further on the trend information.

The weighting module294is configured to determine the aggregate weighted score for each of the plurality of accommodations of the basic list of accommodations retrieved by the accommodation module278based on a plurality of factors. The plurality of factors may include, but are not limited to, at least one of the user preferences164, the user accommodation history, the schedule166, the colleague preferences, the colleague accommodation history, the company preferences, the agency preferences, and the trend information. The weighting module294may be configured to use the plurality of factors in the weighted scoring system to determine the aggregate weighted score for each accommodation within the basic list of accommodations. The weighted scoring system may be based on a function, algorithm, decision matrix, and/or any other type of weighting system. In one embodiment, the weights (e.g., predetermined values, etc.) for each factor are predefined and stored within the weighting module294. The weighting module294may be further configured to apply the weights to a respective accommodation for each factor that may apply, and then aggregate the weights of the factors to determine an aggregate weighted score for the respective accommodation.

The sorting module296is configured to sort (e.g., rank, order, etc.) the basic list of accommodations into a sorted list of accommodations. In one embodiment, the sorted list of accommodations is sorted in descending order based on the aggregate weighted scores of the accommodations. For example, the sorted list of accommodations may have an accommodation with the highest aggregate weighted score ranked first, and an accommodation with the lowest aggregate weighted score ranked last. The sorting module296may then send the sorted list of accommodations to the client device100(e.g., via the communications interface220, etc.). The display module158of the client device100may then provide a display of the sorted list of accommodations on a display (e.g., screen, monitor, etc.) of the user interface110in the form of at least one of a list results interface (see, e.g.,FIG.5) and a map results interface (see, e.g.,FIG.6).

Referring now toFIG.2B, a visual depiction of the processes performed by the various modules of the remote server200are shown according to an exemplary embodiment. Table210shows a list of several factors, along with the weight given to each of the factors. The factors and respective weights of table210may be stored within the weighting module294. Referring now to table212, when a user of the accommodation search system10runs a search for an accommodation by providing the trip parameters172, the accommodation module278determines the basic list of accommodations that correspond with the trip parameters172. The client module280, the colleague module284, the company module288, the agency module290, and/or the trend module292then determine one or more factors that apply to each of the accommodations of the basic list of accommodations. The weighting module294in turn applies the weights (e.g., from table210, etc.) for each of the one or more factors to each of the accommodations of the basic list of accommodations. The weighting module294may then aggregate the weights for each accommodation of the basic list of accommodations to determine an aggregate weighted score from each accommodation of the basic list of accommodations. The sorting module296may then sort (i.e., reorder, etc.) the basic list of accommodations into a sorted list of accommodations (e.g., in descending order, etc.) based on the aggregate weighted score of each accommodation as shown in table214. The sorted list of accommodations may then be provided to the client device100such that the user may see a display of the results of his/her search based on the trip parameters172, the user preferences164, the user accommodation history, the schedule166, the colleague preferences, the colleague accommodation history, the company preferences, the agency preferences, the trend information, and/or other factors. It should be understood that the accommodation search system10may include more, less, and/or different factors upon which weights are given and the basic list of accommodations are ranked, as table210is an exemplary representation of the factors stored within the weighting module294.

Referring back toFIG.2A, in some embodiments, the remote server200includes the location module298. The location module298may be configured to facilitate providing information regarding a distance and/or navigation instructions from an accommodation to an indicated point or locations of interest(s) (e.g., a meeting location, an office location, a city center, etc.) to a user of the accommodation search system10responsive to an input from the user on the client device100. In one embodiment, the location module298is configured to provide the distance and/or navigation instructions in a list configuration responsive to the display module158displaying the sorted list of accommodations to the user of the client device100with a list results interface (see, e.g.,FIG.5). In another embodiment, the location module298is configured to provide the distance and/or navigation instructions in a map configuration responsive to the display module158displaying the sorted list of accommodations to the user of the client device100with a map results interface (see, e.g.,FIGS.6-8). In one embodiment, the input from the user of the client device100includes a predefined setting to display the distance and/or navigation instructions. In another embodiment, the input from the user of the client device100includes selecting a respective accommodation via touching a touchscreen to select the respective accommodation (e.g., on a touchscreen device such as a smartphone, tablet, laptop, etc.) or via a mouse click on the respective accommodation (e.g., with a mouse connected to a laptop, a desktop computer, a tablet, etc.), among other alternatives. The distance and/or navigation instructions may provide the user of the accommodation search system10with additional information to aid the user in making a selection of an accommodation that best fits his/her needs. In an alternative embodiment, the location module298is stored within the memory154of the client device100and may include or use various navigation/map software stored on the client device100to provide the distance and/or navigation instructions to the user of the accommodation search system10.

According to the exemplary embodiments shown inFIGS.3-8, various user interfaces that may be provided to a user of the accommodation search system10on the user interface110of the client device100are illustrated. As shown inFIG.3, an account interface, shown as client account interface300, may be provided to a user of the accommodation search system10. In one embodiment, the client account interface300is provided to a new user of the accommodation search system10following creating a new account to enter/link various information to his/her account. In other embodiments, a returning user of the accommodation search system10is able to access the client account interface300to review and/or update the information previously provided by the user. As shown inFIG.3, the client account interface300includes a plurality of buttons310-360configured to allow a user of the client device100to select which information to view, enter, delete, and/or update on the client device100. In one embodiment, all of the information is stored on the remote server200and retrieved by the client device100when the user requests it (i.e., through the client account interface300, etc.). In some embodiments, at least a portion of the information is stored on at least one of the client device100and the remote server200.

The credentials button310may be configured to provide the user of the accommodation search system10with a credential interface. The credential interface may allow the user to view, update, and/or delete his/her user credentials162(e.g., username, email, password, etc.). The credentials interface may further allow a user to link his/her account to a social media or business networking profile. The preferences button320may be configured to provide the user of the accommodation search system10with a preference interface. The preference interface may allow the user to view, update, and/or delete his/her user preferences164. The schedule button330may be configured to provide the user of the accommodation search system10with a schedule interface. The schedule interface may allow the user to view, manually add, manually update, and/or manually delete events (e.g., a meeting at location X at time Y on date Z, etc.). The schedule interface may also allow a user to connect/sync the accommodation search system10with a planner/itinerary, email account, and/or social media account of the user such that events may automatically be synced from the user's email account, social media account, calendar, or itinerary. The history button340may be configured to provide the user with his/her recent accommodations (e.g., last three accommodations, last five accommodations, etc.) and/or allow a user to clear his/her recent accommodations. The colleague button350may be configured to provide the user of the accommodation search system10with a colleague interface. The colleague interface may allow the user to view, manually update, and/or manually delete colleagues. The colleague interface may also allow a user to connect/sync the accommodation search system10with a social media account and/or a business networking account of the user such that colleagues (e.g., friends, connections, etc.) may automatically be synced from the user's profile(s). The company button360may be configured to provide the user of the accommodation search system10with a company interface. The company interface may allow the user to view, manually enter, manually update, and/or manually delete a company he/she is employed by. The company interface may also allow a user to connect/sync the accommodation search system10with a social media account and/or a business networking account of the user such that the company he/she is employed by may automatically be synced from the user's profile(s). The client account interface300may also include an accommodation search interface button402that is configured to direct the user to the accommodation search interface400(see, e.g.,FIG.4).

As shown inFIG.4, a search interface, shown as accommodation search interface400, is configured to allow a user to enter the trip parameters172into the accommodation search system10. By way of example, the user may be able to specify a type of accommodation he/she is interested in performing a search for (e.g., a hotel, a car rental, a plane ticket, etc.). The accommodation search interface400may include various buttons and/or fillable slots configured to receive the trip parameters172. In one embodiment, the user provides the location for the accommodation search via a fillable location slot, shown as location slot410. The location slot410is configured to receive a city, zip code, and the like to narrow the accommodation search to a designated location or region. In an alternative embodiment, the user provides the location for the accommodation search via a current location button, shown as location button420. The location button420may be configured to instruct at least one of the client device100and the remote server200to provide a current location of the user (e.g., via a global positioning system, geolocation, etc.) to the location slot410such that the search is performed based on a predefined distance (e.g., 5 miles, 10 miles, 15 miles, etc.) from the current location of the client device100of the accommodation search system10. The predefined distance may be chosen by the user or preset within the memory of the accommodation search system10.

Referring still toFIG.4, a user may narrow the accommodation search by providing check in information (e.g., a date desired for check-in, etc.) to a fillable check in slot, shown as check in slot430. A user may also provide check out information (e.g., a date desired for check-out, etc.) to a fillable check out slot, shown as check out slot440. A user may further narrow the accommodation search by providing a number of guests that may be using the accommodation (e.g., staying in a hotel room, etc.) under the potential accommodation reservation via a guest button450. A user may choose to further narrow the accommodation search by selecting an advanced search button470. The advanced search button470may direct the user to an advanced accommodation search interface. The advanced search interface may be configured to allow a user to further narrow his/her search than available with the accommodation search interface400. For example, via the advanced search interface, a user may enter more detailed information such as accommodation names, accommodation chains/groups, a desired number of rooms (e.g., in a hotel embodiment, etc.), a price range preference, a rating preference, and the like. The accommodation search system10may ask the user whether he/she would like to save the advanced filters as part of his/her user preferences164which then may be used for future accommodation searches. Once a user has entered his/her desired trip parameters172within the accommodation search interface400, the user may choose to conduct a search for accommodations that correspond with the trip parameters172provided. The user may prompt the accommodation search system10to conduct such a search by selecting a search accommodations button460. The accommodation search interface400may also include a client account interface button302that is configured to direct the user to the client account interface300ofFIG.3.

Referring now toFIGS.2B and5, the display of the user interface110may display a results interface, shown as accommodation list results interface500, following the remote server200conducting the accommodation search and applying the weighted scoring system to the basic list of accommodations, as shown inFIG.2B. The accommodation list results interface500is configured to provide the sorted list of accommodations (i.e., the table214, etc.) to the user in a list configuration based on the trip parameters172provided via the accommodation search interface400and the one or more factors determined from the information (e.g., user credentials162, user preferences164, schedule166, company information168, colleague information170, etc.) provided via the client account interface300. As shown inFIGS.2B and5, the sorted list of accommodations510-540are presented to a user of the accommodation search system10in a manner that correlates with the table214. According to an exemplary embodiment, the first ranked accommodation510(e.g., Accommodation A, etc.) satisfies eight of nine predefined factors stored in the Table210(e.g., as shown in table212, etc.). For example, the user may have user preferences164such as an accommodation or accommodation chain/group that Accommodation A is affiliated with (e.g., factor 1, etc.), a three dollar sign maximum price (e.g., factor 8, etc.), and a minimum rating of four stars (e.g., factor 9, etc.). The history stored within the remote server200may also indicate that the user and at least one of the user's colleagues have previously stayed at Accommodation A (e.g., factor 3, factor 7, etc.). Further, the company X that employs the user, a colleague of the user, and the agency Y (e.g., that owns, operates, and/or is affiliated with the accommodation search system, etc.) may indicate that they prefer an accommodation or accommodation chain/group that Accommodation A is affiliated with (e.g., factor 2, factor 6, factor 8, etc.).

In some embodiments, the accommodation search system10is configured to provide a user with distance information on the accommodation list results interface500. The distance information may indicate a distance from the user's current location to the accommodation or a distance from the accommodation to a location of interest indicated by the user (e.g., via the schedule166, etc.). According to an exemplary embodiment, the accommodation list results interface500allows a user to scroll up and down, or provides a button allow a user to load more results or go to a subsequent page of sorted accommodation results. The user may also use the filter button550, the sort button560, and/or the name/search button570to further narrow or reorder the sorted list of accommodations provided by the accommodation list results interface500(e.g., based on distance, price, rating, etc.). According to an exemplary embodiment, a user is able to select an accommodation provided by the accommodation list results interface500. By selecting an accommodation, the user may be provided a more detailed description (e.g., location, directions, amenities, features, policies, etc.) of the selected accommodation. The user may also be able to reserve the accommodation after selecting to see a more detailed view of the accommodation.

As shown inFIG.5, the user may select a return button404configured to return the user to the accommodation search interface400to change/update the trip parameters172. The user may also select a map button602configured to direct the user to an accommodation map results interface (see, e.g.,FIG.6, etc.).

Referring now toFIGS.2B and6, the display of the user interface110may display a results interface, shown as accommodation map results interface600, following the remote server200conducting the accommodation search and applying the weighted scoring system to the basic list of accommodations, or the user selecting the map button602from the accommodation list results interface500. The accommodation map results interface600is configured to provide the sorted list of accommodations (i.e., the table214, etc.) to the user in a map configuration based on the trip parameters172provided via the accommodation search interface400and the one or more factors determined from the information (e.g., user credentials162, user preferences164, schedule166, company information168, colleague information170, etc.) provided via the client account interface300. As shown inFIGS.2B and6, the sorted list of accommodations are presented to a user of the accommodation search system10in a visual manner (e.g., via a map, etc.) that correlates with the table214. In an alternative embodiment, aspects of the accommodation list results interface500and the accommodation map results interface600are combined into a single interface.

As shown inFIG.6, the accommodation map results interface600may provide a visual representation of locations of interest, shown as first location of interest610(e.g., an office location, etc.) and second location of interest620(e.g., a meeting location, etc.), in relation to the location of each accommodation provided from the accommodation search performed by the remote server200. The first location of interest610and the second location of interest620may be imported/synced to the remote server200based on the schedule166(e.g., a location of a scheduled meeting, etc.) or entered directly by the user via the accommodation map results interface600. In some embodiments, the accommodation map results interface600may include more or less than two locations of interest. The locations of interest may include a variety of types of locations including, but are not limited to, a city center, a meeting, an office, an attraction (e.g., a sporting event, a museum, a restaurant, a monument, an amusement park, etc.), and/or any other location designated by the user or the schedule166of the user. According to an exemplary embodiment, the accommodation map results interface600is configured to display accommodations that are located within a certain radius of each of the locations of interest (e.g., accommodations outside of the radius of one or more locations of interest are not displayed, etc.). The accommodation map results interface600may be configured to allow a user to select one of the provided accommodations such that the user is provided with a more detailed description (e.g., location, directions, amenities, features, policies, etc.) of the selected accommodation. The user may also be able to reserve the accommodation after selecting to see a more detailed view of the accommodation. The user may also select a list button502configured to direct the user to the accommodation list results interface500. Again, the user may use the filter button, the sort button, and/or the name/search button to further narrow or reorder the sorted list of accommodations provided by the accommodation map results interface600.

According to the exemplary embodiment shown inFIGS.7-8, a user may indicate an accommodation for which he/she wishes to receive distance and/or navigation instructions about through the accommodation map results interface600. The user may indicate which accommodation he/she is interested in by holding his/her finger over the desired accommodation (e.g., in an embodiment where the client device100is structured as a touch screen device, etc.) and/or by hovering a mouse cursor over the desired accommodation (e.g., in an embodiment where the client device100is structured as a computer or laptop, etc.) as indicated by the dotted circle around the second ranked accommodation520(e.g., Accommodation C, etc.). According to the exemplary embodiment shown inFIG.7, the user is provided one or more paths, shown as path710and path720, on the accommodation map results interface600that extend from the selected accommodation (e.g., the second ranked accommodation520, etc.) to the one or more locations of interest, the first location of interest610and the second location of interest620, respectively. The number of paths may correspond with the number of locations of interest indicated by the user and/or the schedule166. For example, if one location of interest is present, one path may be generated; if five locations of interest are present, up to five paths may be generated; and so on. A user may be able to hide at least one of the generated paths displayed on the accommodation map results interface600if desired.

As shown inFIG.7, the path710and/or the path720may display information, shown as path information712and path information722, to the user. The path information712and/or the path information722may provide a distance between the selected accommodation (e.g., the second ranked accommodation520, etc.) and the location(s) of interest(s) (e.g., the first location of interest610, the second location of interest620, etc.). The user may toggle between various path information such as a distance in metric units (e.g., meters, kilometers, etc.), a distance in English units (e.g., feet, yards, miles, blocks, etc.), and the like.

According to the exemplary embodiment shown inFIG.8, the user is provided one or more navigation instructions (e.g., a route of travel, etc.), shown as route810and route820, on the accommodation map results interface600. The route810and the route820may provide the user with navigation instructions from the selected accommodation (e.g., the second ranked accommodation520, etc.) to the one or more locations of interest, the first location of interest610and the second location of interest620, respectively. The number of routes of travel may correspond with the number of locations of interest indicated by the user and/or the schedule166. For example, if one location of interest is present, one route of travel may be generated; if five locations of interest are present, up to five routes of travel may be generated; and so on. A user may be able to hide at least one of the generated routes displayed on the accommodation map results interface600if desired.

As shown inFIG.8, the routes of travel (e.g., the route810, the route820, etc.) may display information, shown as route information812and route information822, to the user. The route information812and/or the route information822may provide an estimated time of travel or distance between the selected accommodation (e.g., the second ranked accommodation520, etc.) and the location(s) of interest(s) (e.g., the first location of interest610, the second location of interest620, etc.). The user may toggle between various displayed information such as a time of travel (e.g., in hours, in minutes, etc.), a distance in metric units (e.g., meters, kilometers, etc.), and a distance in English units (e.g., feet, yards, miles, blocks, etc.). The user may also be able to indicate a mode of transportation such that the navigation instructions correspond with the indicated mode of transportation. For example, the user may be able to indicate modes of transportation such as walking, biking, driving (e.g., a car, a truck, etc.), public transportation (e.g., bus, train, subway, tube, tram, etc.), or another form of transportation. The accommodation map results interface600may remove, update, or otherwise alter the route(s) of travel based on selected mode of transportation.

According to an exemplary embodiment, a user receives a list view of the navigation instructions corresponding to one of the routes of travel (e.g., the route810, the route820, etc.) provided to the user (e.g., responsive to the user selecting one of the routes, etc.). According to another exemplary embodiment, a user is provided with an interactive, step-by-step navigation from the selected accommodation (or current location) to one of the locations of interest (e.g., responsive to the user selecting one of the routes, etc.). The navigation may provide visual instructions, audible instructions, and/or track the user's progress along the selected route of travel (e.g., distance left, estimated time of arrival, etc.).

Referring now toFIG.9, a method900for assisting the selection of an accommodation is shown according to an exemplary embodiment. In one example embodiment, method900may be implemented with the client device100and the remote server200of the accommodation search system10ofFIGS.1-2. Accordingly, method900may be described in regard toFIGS.1-2.

At step902, a remote server (e.g., the remote server200, etc.) receives user credentials (e.g., the user credentials162, etc.) from a client device (e.g., the client device100, etc.). The user credentials may include a username, an email address, a password, a social media account, and/or a business networking account, among other possibilities. At step904, the remote server receives trip parameters (e.g., the trip parameters172, etc.) from the client device. The trip parameters may include a location/destination for the trip, a date range for the trip, a number of guests, a number of rooms needed, a time of departure, a time of arrival, and the like. At step906, the remote server determines a basic list of accommodations that correspond with (i.e., satisfy, etc.) the trip parameters.

At step908, the remote server determines one or more factors that may apply to each accommodation of the basic list of accommodations. In one embodiment, the one or more factors are indicated at least in part by the user credentials. In some embodiments, the one or more factors are be based on at least one of user preferences (e.g., price, rating, accommodation group/chain, etc.), company preferences (e.g., accommodation group/chain, price, rating, etc.), colleague preferences (e.g., accommodation group/chain, price, rating, etc.), user history (e.g., previous use by the user, etc.), and colleague history (e.g., previous use by a colleague of the user, etc.) indicated by the user credentials (i.e., stored within the memory of the remote server and/or client device and linked to the user credentials, etc.). In additional embodiments, the one or more factors are based further on at least one of agency preferences, trend information (e.g., current and/or future trends, etc.), and location information.

At step910, the remote server applies weights to each of the one or more factors that apply to each accommodation of the basic list of accommodations. For example, an accommodation that is user preferred and company preferred may receive a first weight for the user preferred factor (e.g., a value of 18, etc.) and a second weight for the company preferred factor (e.g., a value of 8, etc.). This may be repeated for each accommodation in the basic list of accommodations. At912, the remote server determines an aggregate weighted score for each accommodation of the basic list of accommodations based on the weights of the one or more factors applied to each accommodation. To continue the above example, the first weight of the user preferred factor and the second weight of the company preferred factor are aggregated to determine the aggregate weighted score of the accommodation (e.g., 18 and 8 results in an aggregate weighted score of 26, etc.).

At step914, the remote server sorts the basic list of accommodations into a sorted list of accommodations based on the aggregate weighted score of each of the accommodations. In one embodiment, the sorted list of accommodations is arranged is a descending order. For example, the accommodation with the highest aggregate weighted score is ranked first and the accommodation with the lowest aggregate weighted score is ranked last. At step916, the remote server provides (e.g., transmits, sends, etc.) the sorted list of accommodations to the client device. In one embodiment, the client device displays the sorted list of accommodations to a user in a list configuration (e.g., the accommodation list results interface500, etc.). In another embodiment, the client device displays the sorted list of accommodations to a user in a map configuration (e.g., the accommodation map results interface600, etc.).

Referring now toFIG.10, a method1000for accommodation evaluation using locations of interest is shown according to an exemplary embodiment. In one example embodiment, method1000may be implemented with the client device100and the remote server200of the accommodation search system10ofFIGS.1-2. Accordingly, method1000may be described in regard toFIGS.1-2.

At step1002, a remote server (e.g., the remote server200, etc.) receives at least one location of interest from a client device (e.g., the client device100, etc.). In one embodiment, the at least one location of interest is manually entered by a user on the client device and sent to the remote server. In another embodiment, the at least one location of interest is imported/synced to the remote server from a calendar, schedule, email account, social media account, and/or itinerary of the user (e.g., the schedule166, stored on the client device, etc.). By way of example, the location of interest may include a variety of locations such as a city center, a meeting, an office, an attraction (e.g., a sporting event, a museum, a restaurant, a monument, an amusement park, etc.), and/or any other location designated by the user or the schedule of the user.

At step1004, the remote server provides a sorted list of accommodations to the client device (see steps902-912of method900). In one embodiment, the sorted list of accommodations is based at least in part on the at least one location of interest. For example, the sorted list of accommodations determined in method900is further sorted based on the location of the accommodations relative to the at least one location of interest. At step1006, the client device displays the sorted list of accommodations and the at least one location of interest in a map configuration (e.g., the accommodation map results interface600, etc.).

At step1008, the client device receives an indication of a selected accommodation. The indication may be provided by an input from the user of the client device such as selecting an accommodation by touching a touchscreen where the accommodation is displayed, by a mouse click on the accommodation, or by hovering over the accommodation with a mouse cursor. At step1010, the client device displays a path (e.g., a straight line path, etc.) from the selected accommodation to the at least one location of interest. At step1012, client device displays distance information for the path from the selected accommodation to the at least one location of interest. The distance information may indicate a distance between the selected accommodation and the at least one location of interest. In some embodiments, the client device transmits the indication of the selected accommodation to the remote server. The remote server may then provide a command to the client device to display the path(s) and/or the distance information.

Referring now toFIG.11, a method1100for accommodation evaluation using locations of interest is shown according to another exemplary embodiment. In one example embodiment, method1100may be implemented with the client device100and the remote server200of the accommodation search system10ofFIGS.1-2. Accordingly, method1100may be described in regard toFIGS.1-2.

At step1102, a remote server (e.g., the remote server200, etc.) receives at least one point/location of interest from a client device (e.g., the client device100, etc.). In one embodiment, the at least one location of interest is manually entered by a user on the client device and sent to the remote server. In another embodiment, the location of interest is imported/synced to the remote server from a calendar, schedule, social media account, and/or itinerary of the user (e.g., the schedule166, etc.). By way of example, the location of interest may include a variety of locations such as a city center, a meeting, an office, an attraction (e.g., a sporting event, a museum, a restaurant, a monument, an amusement park, etc.), and/or any other location designated by the user or the schedule of the user.

At step1104, the remote server provides a sorted list of accommodations to the client device (see steps902-912of method900). In one embodiment, the sorted list of accommodations is based at least in part on the at least one location of interest. For example, the sorted list of accommodations determined in method900is further sorted based on the location of the accommodations relative to the at least one location of interest. At step1106, the client device displays the sorted list of accommodations and the at least one location of interest in a map configuration (e.g., the accommodation map results interface600, etc.).

At step1108, the client device receives an indication of a selected accommodation. The indication may be provided by an input from the user of the client device such as selecting an accommodation by touching a touchscreen where the accommodation is displayed, or by a mouse click on the accommodation or hovering over the accommodation with a mouse cursor. At step1110, the client device displays a route of travel (e.g., directions, navigation instructions, etc.) from the selected accommodation to the at least one location of interest. The route of travel may be along a road (e.g., for a bus, a personal vehicle, a taxi, etc.), a sidewalk (e.g., for walking, biking, etc.), a pathway (e.g., through a park, etc.), and/or a railway (e.g., for a train, a tram, a trolley, etc.). At step1112, client device displays route information for the route of travel from the selected accommodation to the at least one location of interest. The route information may indicate an estimated time of travel and/or a distance along the route of travel from the selected accommodation to the at least one location of interest.

In some embodiments, the client device transmits the indication of the selected accommodation to the remote server. The remote server may then provide a command to the client device to display the route(s) and/or the route information. In another embodiment, the user is able to indicate a mode of transportation such that the navigation instructions for the route correspond with the indicated mode of transportation. The client device and/or remote server may remove, update, or otherwise alter the route(s) based on indicated mode of transportation.

The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.

The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.

Although the figures may show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.

While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.