CROSS-REFERENCE TO RELATED APPLICATIONSThis application is a continuation-in-part of application Ser. No. 14/789,944, filed Jul. 1, 2015, which is a continuation-in-part of application Ser. No. 14/703,783, filed May 4, 2015, which is a continuation-in-part of application Ser. No. 14/293,930, filed Jun. 2, 2014, which is a continuation-in-part of application Ser. No. 13/474,633, filed May 17, 2012, the entireties of which are hereby incorporated by reference. This application claims the benefit of U.S. Provisional Application No. 62/106,229, filed Jan. 22, 2015, and U.S. Provisional Application No. 62/095,708, filed Dec. 22, 2014, the entireties of which are hereby incorporated by reference.
BACKGROUNDThe present disclosure generally relates to the field of online marketplaces and search results. Conventional online shopping typically occurs by a user typing a product name or product description into a search engine. The search engine conventionally provides a list of results and the user is required to click into each particular vendor's website to view product offerings and availability. In some cases, the search engine or another aggregation provider can consolidate ratings for merchants and various pricing or availability information relating to particular product numbers. In such examples, the users still must click into the vendor's website to see the real story (e.g., whether the product is still in stock, whether a particular size or color is available, what the actual price is, shipping costs, etc.).
What is needed are systems and methods for facilitating efficient and rich consumer-to-vendor interactions. What is needed is a chat driven online marketplace system.
SUMMARYOne embodiment relates to a method. The method includes receiving, by a location module of a server, location data indicative of a location of an initiating user; identifying, by a pooling module coupled to the location module of the server, at least one other user within a predefined distance of the initiating user; identifying, by the pooling module, at least one existing interactive chat session relating to the location of the initiating user; and generating and providing, by the pooling module, a waiting room indicative of the identified at least one other user and the at least one existing interactive chat session to a graphical user interface of a user device of the initiating user, wherein the waiting room facilitates receiving a selection from the initiating user to at least one of join at least one of the at least one existing interactive chat session and create a new interactive chat session.
Another embodiment relates to an apparatus. The apparatus includes a location module configured to receive location data indicative of a location of an initiating user and a pooling module communicably coupled to the location module, the pooling module configured to: identify other users within a predefined distance of the initiating user; identify at least one existing interactive chat session relating to the location of the initiating user; and generate and provide a waiting room indicative of the identified other users and the at least one existing interactive chat session to a graphical user interface of a user device of the initiating user, wherein the waiting room facilitates receiving a selection to at least one of join the at least one existing interactive chat session and create a new interactive chat session.
Still another embodiment relates to a computer system. The computer system includes a network interface configured to facilitate communication with a plurality of user devices and a processor communicably coupled to a memory device. In one embodiment, the processor is configured to: receive location data indicative of a location of an initiating user; identify at least one other user within a predefined distance of the initiating user; identify at least one existing interactive chat session based on the location of the initiating user; and generate and provide a waiting room comprising at least one of a graphical and a textual indicator indicative of the identified at least one other user and the at least one existing interactive chat session to a graphical user interface of a user device of the initiating user, wherein the waiting room is configured to receive a selection from the initiating user to at least one of join at least one of the at least one existing interactive chat session and create a new interactive chat session.
The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
BRIEF DESCRIPTION OF THE FIGURESThe disclosure will be more fully understood from the following detailed descriptions, taken in conjunction with the accompanying figures, wherein like reference numerals refer to like elements, in which:
FIG. 1A is a block diagram of an online marketplace system, according to an exemplary embodiment;
FIG. 1B is a block diagram of an online marketplace system, according to another exemplary embodiment;
FIG. 1C is a block diagram of an online marketplace system, according to another exemplary embodiment;
FIG. 1D is a block diagram of an online marketplace system, according to another exemplary embodiment;
FIG. 1E is a block diagram of an online marketplace system, according to another exemplary embodiment;
FIG. 2 is a more detailed block diagram of the client and vendor of the online marketplace system ofFIGS. 1A-D, according to an exemplary embodiment;
FIG. 3 is a detailed block diagram of the marketplace server of the online marketplace system ofFIGS. 1A-D, according to an exemplary embodiment;
FIG. 4A is a detailed block diagram of the search engine module of the marketplace server ofFIG. 3, according to an exemplary embodiment;
FIG. 4B is a detailed block diagram of the vendor account module of the marketplace server ofFIG. 3, according to an exemplary embodiment;
FIG. 4C is a detailed block diagram of the alert module of the marketplace server ofFIG. 3, according to an exemplary embodiment;
FIG. 5 is an example graphical user interface for displaying search results for the online marketplace system, according to an exemplary embodiment;
FIG. 6 is an example graphical user interface for providing a chat interface for the online marketplace system, according to an exemplary embodiment;
FIG. 7 is an example graphical user interface for providing a bidding interface for the online marketplace system, according to an exemplary embodiment;
FIG. 8 is an example graphical user interface for providing a feedback interface for the online marketplace system, according to an exemplary embodiment;
FIG. 9 is a flow chart of a process for providing search results to a user of the online marketplace system, according to an exemplary embodiment;
FIG. 10 is a flow chart of a process for providing a chat interface to a user and vendors of the online marketplace system, according to an exemplary embodiment;
FIG. 11 is a flow chart of a process for providing a bidding interface to a user and vendors of the online marketplace system, according to an exemplary embodiment;
FIG. 12 is a flow chart of a process for providing search results to a user of the online marketplace system, according to another exemplary embodiment;
FIG. 13 is a flow chart of a process for providing a bidding interface in response to a user offer to a user and vendors of the online marketplace system, according to an exemplary embodiment;
FIG. 14 is a flow chart of a process for offer authorization of the online marketplace system, according to an exemplary embodiment;
FIG. 15 is a flow chart of a process of providing a chat interface for users of the online marketplace system, according to an exemplary embodiment;
FIG. 16 is an example graphical user interface for providing a chat interface for users of the online marketplace system, according to an exemplary embodiment;
FIG. 17 is an example graphical user interface for providing a chat interface for users of the online marketplace system, according to an exemplary embodiment;
FIG. 18 is a flow chart of a process of displaying search results and providing chat options for users of the online marketplace system, according to an exemplary embodiment;
FIG. 19 is an example graphical user interface for displaying search results and chat options for users of the online marketplace system, according to an exemplary embodiment;
FIG. 20 is an example graphical user interface for displaying chat rooms for users of the online marketplace system, according to an exemplary embodiment;
FIG. 21 is an example graphical user interface for providing a chat interface for users of the online marketplace system, according to an exemplary embodiment;
FIG. 22 is a flow chart of a process for providing a chat room for users of the online marketplace system, according to an exemplary embodiment;
FIG. 23 is an example graphical user interface for providing a chat room for users of the online marketplace system, according to an exemplary embodiment;
FIG. 24 is an illustration of a home page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 25 is an illustration of a search results page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 26 is an illustration of a chat page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 27 is an illustration of a chat list page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 28 is an illustration of a friends page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 29 is an illustration of a user profile page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 30 is an illustration of an events page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 31 is a flowchart of a process of providing alerts to a user by a computer system based on search queries of other users according to one embodiment;
FIG. 32A is an illustration of an alerts page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 32B is an illustration of an alerts prompt window generated on a user device according to instructions from a computer according to one embodiment;
FIG. 33 is an illustration of a chat page generated on a user device according to instructions from a computer according to one embodiment;
FIG. 34 is an illustration of a chat page with an audio-video player generated on a user device according to instructions from a computer according to one embodiment;
FIG. 35 is an illustration of a search results page with an audio-video player generated on a user device according to instructions from a computer according to one embodiment;
FIG. 36 is an illustration of a home page with a chat window generated on a user device according to instructions from a computer according to one embodiment;
FIG. 37 is an illustration of a home page with the chat window ofFIG. 36 collapsed according to one embodiment;
FIG. 38 is an illustration of a search results page and a chat window generated on a user device according to instructions from a computer according to one embodiment;
FIG. 39 is an illustration of a search window generated on a user device according to instructions from a computer according to one embodiment;
FIG. 40 is a block diagram of the interactive chat module of the marketplace server ofFIG. 3, according to one embodiment;
FIG. 41 is a flow chart of a process for creating or selecting a location-based chat session, according to one embodiment;
FIG. 42 is an example graphical user interface of a waiting room generated fromprocess4100 ofFIG. 41, according to one embodiment;
FIG. 43 is an example graphical user interface of the waiting room of generated from theprocess4100 ofFIG. 41, according to one embodiment; and
FIG. 44 is an example graphical user interface on a mobile device for creating a location-based chat session, according to an exemplary embodiment.
DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTSBefore turning to the figures, which illustrate the exemplary embodiments in detail, it should be understood that the application is not limited to the details or methodology set forth in the description or illustrated in the figures. It should also be understood that the terminology is for the purpose of description only and should not be regarded as limiting.
Referring generally to the figures, systems and methods for providing an online marketplace to a user and vendors is described. A user may use the online marketplace system to search for products and services, to chat with vendors providing the products and services, to chat with other users based on the searched products and services, and to purchase the products and services. The user may first provide a search query to a search engine via an interface (e.g., via an app on a mobile device, via a browser on a computer, etc.). After the user receives the search results, the user may select one or more results or vendors associated with the results. The user can then chat with the selected vendor without requiring the user to browse to the vendor's website. For example, the search results page itself or a plug-in on top of the search page may allow the user to initiate the chat. Systems or methods constructed or provided according to some embodiments of the present disclosure advantageously permit the user to rapidly obtain person-to-person feedback without requiring the user to visit website pages for each vendor in a serial manner.
In some embodiments, the user may chat with other users based on the search query. For example, after the user receives the results of the search query, the user may also receive an indication of other users searching the same or substantially the same query. In addition to chatting with a selected vendor, the user may also chat with another user who used the similar search query, without requiring the user to browse to a vendor's website. Accordingly, the systems and methods provided herein permit users using similar search queries to exchange information without searching several vendor website for the desired product or service (e.g., “Vendor X does not provide Product A, as I searched. However, Vendor Y does provide Product A.”). As such, the collective knowledge of other users may be utilized to enhance one's search for products and services.
Referring toFIGS. 1A-D, online marketplace systems are shown, according to various exemplary embodiments.Online marketplace systems100,130,150,170 ofFIGS. 1A-D generally include amarketplace server102,search engine104, apotential client106, and vendors110.Potential client106 may provide a search request tosearch engine104 and receive search results fromsearch engine104.Search engine104 may be a single search engine, more than one search engine, or a search engine that aggregates search results from multiple other search engines.Potential client106 may be connected tomarketplace server102.Marketplace server102 may receive search results, client input, and other information frompotential client106.Marketplace server102 may then provide client input to the one ormore vendors110 and provide a response fromvendors110 topotential client106. In other words,marketplace server102 is configured to facilitate interaction, such as a chat, betweenpotential client106 andvendors110.Marketplace server102 may also be configured to facilitate an interaction, such as a chat, between several potential clients106 (seeFIG. 1E). The interaction betweenpotential client106,vendors110,marketplace server102, andsearch engine104 may vary as shown inFIGS. 1A-D or otherwise. In varying embodiments, an interactive session may be a chat session (e.g., SMS, instant messaging, texting, etc.), a voice over-IP session, a Skype session, a video conference session, or another interactive computer-based communication session.
Referring now toFIG. 1A, one exemplary configuration ofonline marketplace system100 is shown.Online marketplace system100 includes amarketplace server102,search engine104, apotential client106, and one ormore vendors110.Marketplace server102 may be configured to manage interaction betweenclient106 andvendors110. In the embodiment ofFIG. 1A,potential client106 may provide asearch request112 tosearch engine104, and receives search results114.Potential client106 may view the search results via application108 (e.g., an application on a mobile device, a browser on a computer or laptop, etc.). In the embodiment ofFIG. 1A, the activity ofsearch engine104 is shown independent ofmarketplace server102 activity. In such an embodiment,marketplace server102 may be configured to manage interaction betweenpotential client106 andvendors110 without directly communicating with the search engine thatpotential client106 uses to selectvendors110. The embodiment ofFIG. 1A may operate with the assistance of application108 (e.g., browser plug-in) that parses search results for facilitating the chat-based marketplace activity.
The user may select one or more search results or vendors associated with the searchresults using application108. The selections andother client input116 may be provided tomarketplace server102.Marketplace server102 may use the selection of the search results and vendors to contact the vendors (e.g., to establish an on-demand chat session).Marketplace server102 may provide the client input116 (e.g., input chat text) tovendors110 and may provide vendor responses118 (e.g., chat responses, acceptance of the chat session, etc.) to client106 (e.g., via app108). For example, ifclient input116 indicates thatpotential client106 is interested in a product of avendor110,vendor110 may receiveclient input116 and indicate viavendor response118 whether the vendor is available to chat withpotential client106. As another example, ifclient input116 indicates thatpotential client106 is interested in receiving an offer fromvendor110,vendor110 may receiveclient input116 and indicate whether the vendor can provide an offer. The vendor may provide the offer as part of avendor response118 topotential client106 viamarketplace server102.
Vendors110 may provide vendor information tomarketplace server102.Online marketplace system100 may be a subscription-based system andmarketplace server102 may use information received from the vendor to authenticate avendor110.Marketplace server102 may further chargevendors110 for participating in the online marketplace system, allow vendors to provide preferences relating to the display of search results related tovendors110, and otherwise managevendor110 usage of the online marketplace system.
Referring now toFIG. 1B, another exemplary configuration of anonline marketplace system130 is shown, according to an exemplary embodiment. Afterpotential client106 provides asearch request132 tosearch engine104,marketplace server102 may receivesearch request132.Marketplace server102 may then providesearch preferences134 tosearch engine104 which may be used bysearch engine104 to determine which searchresults136 to provide topotential client106. For example,search preferences134 may include a preferred vendor. If avendor110 has subscribed to the online marketplace system, search results associated with the vendor may be listed at the top of search results136. As another example,search preferences134 may include vendors that are participating in the online marketplace system.Search engine104 may use the list of vendors to determine which search results to provide topotential client106. In other words, search results136 provided topotential client106 are impacted by the activity ofmarketplace server102, which works in conjunction withsearch engine104.Potential client106 may then viewsearch results136 viaapplication108.Client input138 may be provided tovendors110 viamarketplace server102, and thevendor response140 may be provided topotential client106 bymarketplace server102, as described above, to initiate a chatting or bidding process betweenclient106 andvendors110. For example,client input138 may include a client question or comment posted in the chat interface, andvendor response140 may include a response to the client question or comment.Marketplace server102 may facilitate continuous communication betweenclient106 andvendors110.
Referring now toFIG. 1C, another configuration of anonline marketplace system150 is shown, according to an exemplary embodiment. Afterpotential client106 provides asearch request152 tosearch engine104,vendors110 may receive the search request.Vendors110 may providevendor preferences154 tosearch engine104, andsearch engine104 may usevendor preferences154 to determine which searchresults156 to provide topotential client106.Vendor preferences154 may include if the vendor is a preferred vendor (e.g., a vendor whose search results affiliated with the vendor are shown at the top of the search results), if the vendor is a participant in the online marketing system, if the vendor is available to chat withclient106, etc. Search results156 may be sorted based onvendor preferences154.Potential client106 may then viewsearch results156 viaapplication108. In other words, search results156 provided topotential client106 are impacted by vendor preferences related to the online marketplace system described in the present disclosure.Client input158 may be provided tovendors110 viamarketplace server102, and thevendor response160 may be provided topotential client106 bymarketplace server102, as described above, to initiate a chatting or bidding process betweenclient106 andvendors110. For example,client input158 may include a client question or comment posted in the chat interface, andvendor response160 may include a response to the client question or comment.Marketplace server102 may facilitate continuous communication betweenclient106 andvendors110.
Referring now toFIG. 1D, another configuration of anonline marketplace system170 is shown, according to an exemplary embodiment. In the embodiment ofFIG. 1D,search engine104 is shown to includemarketplace server102.Search engine104 may includemarketplace server102 in the process of finding and delivering search results topotential client106. In other words,marketplace server102 is a search engine itself or functions withsearch engine104 as a search engine independent of all other search engines.Search engine104 uses results and information frommarketplace server102 to providesearch results174 toclient106 without using information from other search engines. In the embodiment ofFIG. 1D,marketplace server102 uses information related to the vendors subscribed or affiliated withmarketplace server102 and the products and services the vendors provide to determineappropriate search results174 for a givensearch request172. In such an embodiment,marketplace server102 may include one or more modules for comparingsearch request172 to vendors and vendor offers to determine appropriate search results174.
Search engine104, upon receiving asearch request172 frompotential client106, provides the request tomarketplace server102.Marketplace server102 may determine which search results to provide or highlight compared to other search results.Potential client106 may then receivesearch results174 andview search results174 viaapplication108.Client input176 may be provided tovendors110 viamarketplace server102, and thevendor response178 may be provided topotential client106 bymarketplace server102, as described above, to initiate a chatting or bidding process betweenclient106 andvendors110. For example,client input176 may include a client question or comment posted in the chat interface, andvendor response178 may include a response to the client question or comment.Marketplace server102 may facilitate continuous communication betweenclient106 andvendors110.
Referring toFIG. 1E, another configuration of anonline marketplace system180 is shown, according to an exemplary embodiment.Marketplace system180 may include the communications described above and herein betweenpotential client106 and vendors110 (e.g.,client input176 andvendor response178 ofFIG. 1D). For clarity, these communications are lumped together in the potential client andvendor communication198. In the embodiment ofFIG. 1E,search engine104 is shown to includemarketplace server102. According to various other embodiments,marketplace server102 andsearch engine104 may be structured as shown inFIGS. 1A-1D, and many other ways. Although described as a client chat session (e.g., client chat session192), these chat sessions may also be referred to as user chat sessions herein.
As shown,online marketplace system180 communicates withpotential client1106 topotential clientn106. As inFIGS. 1A-1D, eachpotential client106 may communicate withsearch engine104,marketplace server102, andvendors110 viaapplication108. In this example embodiment,potential client1106 provides asearch quest182 tosearch engine104.Search engine104 generates and providessearch results184 based on therequest182.Potential clientn106 may also provide asearch request186 tosearch engine104, wheresearch engine104 providessearch results188 based on the results. These operations may be similar to that ofFIGS. 1A-1D.
Marketplace server102 may also provide chat options to thepotential clients106. The chat options may be included with the search results. The chat options may be configured to enablemarketplace server102 to generate a chat session betweenpotential client1106 and another potential client based on the search query.Potential client1106 may control the chat options viaclient chat input190. Viaclient chat input190,potential client1106 may select which one or more chat options to use.Marketplace server102 generatesclient chat session192 based on the selected chat option fromclient chat input190. As described more fully with regard toFIG. 15, the chat options may be based on the location ofpotential client1106, a location selected bypotential client1106, a search request of other potential clients, a peer-to-peer option, and a group-based option.
As an example,potential clientn106 providessearch request186.Search request186 is substantially similar tosearch request182. Similarity may be based on a matching of words, letters, and/or phrases. The matching may be further based on the order of the words, letters, and/or phrases. As similarity can be widely based, a limitless amount of determinations may be used to gauge matching. For example,potential client1106 searches “green hats and green gloves” (search request182).Potential clientn106 searches “hats and gloves” (search request186). Because both searches relate to “hats and gloves,”marketplace server102 may determine that they are substantially similar. As such, whenmarketplace server102 providessearch results184, search results184 may include the number of other users searching substantially similar items (in this example, one other user).Potential client1106 may wish to chat with that other user and enter this desire viaclient chat input190.Potential clientn106 may also wish to chat with the other user and enter this desire viaclient chat input194.Marketplace server102 may then generate a chat session for potential client1106 andpotential clientn106, which is provided asclient chat session192 andclient chat session196, respectively. Thus, based on the search parameters, potential clients are given the opportunity to interact with one another frommarketplace server102. The potential clients may share experiences, their profiles (described below), and any other information. In one embodiment, the user chat session is provided without requiring the user to browse away from the list of search results.
Referring now toFIG. 2, auser device202 andvendor device230 forpotential client106 andvendors110 are shown, according to an exemplary embodiment. Clients and vendors may be connected tomarketplace server102 andsearch engines104 vianetwork250. Clients and vendors may useuser device202 andvendor device230 to access the online marketplace system described herein (e.g., the online marketplace system ofFIGS. 1A-D, referred to collectively asonline marketplace system200 inFIG. 2).
Online marketplace system200 includes auser device202.User device202 may be, for example, a computer, laptop, mobile phone, PDA, or other computing device that provides information to the client or user ofuser device202 relating toonline marketplace system200. The user may view search results, select search results and vendors, converse with vendors, and select offers for purchase usinguser device202.
User device202 includes aprocessing circuit204 including aprocessor206 andmemory208 for completing the various user or client processes of the present disclosure.Processor206 may be implemented as a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components.Memory208 may be one or more devices (e.g., RAM, ROM, flash memory, hard disk storage, etc.) for storing data and/or computer code for completing and/or facilitating the various user or client processes, layers, and modules described in the present disclosure.Memory208 may be a non-transitory medium or include volatile memory or non-volatile memory.Memory208 may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures of the present disclosure.Memory208 may be communicably connected toprocessor206 and includes computer code or instructions for executing one or more processes described herein.
Memory208 is shown to include abrowser module210 anduser app module212.Browser module210 may be configured to provide a software application for viewing search results and interacting with a chat interface and bidding interface.Browser module210 may be used with the user is accessingsystem200 on a laptop, desktop, or a mobile device that does not have or support a particular app for interfacing withsystem200.User app module212 may similarly provide an application for viewing search results and interacting with a chat interface and bidding interface.User app module212 is configured to provide an application on, for example, a mobile phone or other handheld device.Memory208 may include only one ofbrowser module210 anduser app module212, or may include both. As examples, the embodiments shown inFIGS. 5-8 are examples of applications provided bybrowser module210. In various embodiments, elements of the screenshots ofFIGS. 5-8 may be shown on either type of client (e.g., a browser-based client or an application-based client).
User device202 further includesnetwork interface220.Network interface220 may be configured to communicate withmarketplace server102 andsearch engines104 via one or more networks250 (e.g., a mobile phone network, the Internet, etc.).Input devices214 may include any input device (e.g., keyboard, mouse, phone keypad, touchscreen, etc.) that may be used by a user ofdevice202 to interact withmarketplace server102 andvendor device230.Output devices216 may include display screens, monitors, speakers, and/or other visual and audio components for providing a user ofdevice202 with vendor information and search result information.User interface218 can be any control, pointer, keypad, sensor, or sensors configured to accept user input relating to interaction between the user and vendor. It should be appreciated that some user devices202 (e.g., full computers) will includemany input devices214,output devices216, oruser interfaces218 while other user devices202 (e.g., a touchscreen-based mobile phone) will primarily have a single touchscreen display for all user input/output activities.
Vendor device230 may be, for example, a computer, laptop, mobile phone, PDA, or other computing device that provides the vendor access to the online marketplace system. The vendor may receive information relating to clients interested in the vendor, and the vendor may interact with the clients usingvendor device230.Vendor device230 includes aprocessing circuit232 including aprocessor234 andmemory236.Processing circuit232,processor234, andmemory236 may have the same functionality as described with reference toprocessing circuit204,processor206, andmemory208.Memory236 includesbrowser module238 anduser app module240 that provides an application that allows the vendor to view client information (e.g., if a client is interested in a product or service of the vendor) and to converse with the client (e.g., chatting with the client or providing an offer to the client).Vendor device230 further includesinput devices242,output devices244,user interface246, andnetwork interface248. Components242-248 may have the same functionality as described with reference to components214-220 ofuser device202.
Referring now toFIG. 3,marketplace server102 is shown in greater detail.Marketplace server102 may be connected tosearch engines104,clients106, andvendors110 vianetwork interface302 andnetwork250.Network interface302 may be configured to communicate (e.g., wirelessly or non-wirelessly) withsearch engines104,clients106, andvendors110 vianetwork250.Marketplace server102 including aprocessing circuit304 including aprocessor306 andmemory308.Processing circuit304,processor306, andmemory308 may be configured as described above with reference to the processing circuits, processors, and memory ofFIG. 2.
Memory308 includes various modules for completing the processes described herein.Memory308 includes asearch engine module310 configured to receive search results and other information from a search engine or other source and format the search results for the clients.Memory308 further includes aninteractive chat module312 configured to manage a chat interface that a client and one or more vendors may use to communicate with one another. Theinteractive chat module312 may also support a chat interface between clients that the clients may use to communicate with each other.Memory308 further includes aninteractive bidding module314 configured to manage an interface that allows vendors to submit bids to a client and clients to select bids for purchase.Memory308 further includes aclient account module316 andvendor account module318 configured to manage client and vendor interaction withmarketplace server102.Memory308 further includesfeedback module320 configured to manage vendor feedback provided by clients.Memory308 still further includes amedia module322 configured to manage and facilitate management by a user of audio-video content provided via at least one of a search and in one or more interactive chat sessions.Memory308 yet further includes analert module324 configured to at least one of provide an alert (e.g., notification, prompt, message, etc.) to an initiating user and facilitate an interactive chat session between the initiating user and one or more other users based on the one or more other users searching a substantially similar search term and/or an interactive chat session itself based one or more predefined search terms and chat session names (e.g., indicators of a chat session) predefined by an initiating user.
Referring also toFIG. 4A, the activities ofsearch engine module310 are shown in greater detail.Search engine module310 may be configured to receive search results and other information from a search engine or client device.Search engine module310 may then format the search results for the client and provide the formatted search results to the client for display (e.g., onbrowser module210 or user app module212).Search engine module310 may further manage client interaction with the search results by providing links to preview images for the websites and chat windows for interaction between the client and vendors.Search engine module310 includes awebsite preview module402,search filter module404,vendor selection module406, andsearch results module408 for formatting the search results for the client.
In the embodiments ofFIGS. 3 and 4A,search engine module310 is shown as part ofmarketplace server102. In other embodiments, some or all of the functionality provided bysearch engine module310 may be executed on a browser module or user app module of a client device as shown inFIG. 2, may be executed by asearch engine104 configured to receive a search request from a client, or otherwise. For example,search engine module310 may provide instructions to a browser module or user app module of a client device that allows the client device to incorporate the features described herein on the client device (e.g., handling activity on the client side instead of the server side, allowing images, links, and other information to load faster). The instructions may be implemented by, for example, a browser add-on application that is installed on the client device.
Further,search engine module310 may be a part ofmarketplace server102 or another module. For example, in the embodiment ofonline marketplace system170 ofFIG. 1D,search engine module310 may be a module withinmarketplace server102 and search engine104 (see alsoFIG. 1E). As another example, in the embodiment ofonline marketplace system130 ofFIG. 1B,search engine module310 receives search results beforeclient106 does, and formats the search results before they are received byclient106.
In another embodiment,search engine module310 may be configured to determine search results for a given search request. For example, with reference toonline marketplace system170 ofFIG. 1D,marketplace server102 may be configured to generate search results for a search request.Search engine module310 may receive the search request and determine the most relevant search results, based on the vendors or vendor offers and the search terms or keywords of the search request.
Website preview module402 may be configured to generate a preview of a website associated with a search result. Upon receiving search results,website preview module402 may generate a preview image of the website associated with each search result. In one embodiment, the preview image may be a cached thumbnail image of the website, making it easier for the client browsing the search results to see the contents of the website without clicking on any link. The client may select to view the preview image when the client is presented with the search results. In one embodiment, a link may be provided that the client may select to view the preview image. In another embodiment, the client may simply scroll a mouse over a link to pull up the preview image. In yet another embodiment, the client may scroll a mouse over the link to pull up the preview image, and then select a preview link to update the preview image.
Search filter module404 may be configured to filter the received search results by removing duplicated search results, highlighting particular search results, and otherwise determining which search results to show. For example, when a client provides a search request to a search engine, results from multiple search engines may be returned to the client.Search filter module404 may be configured to remove duplicated search results, e.g., search results that were found by two or more search engines.Search filter module404 may further change the order of search result listings. For example, if a search result is associated with a “preferred” vendor or other vendor that has a subscription withmarketplace server102, then searchfilter module404 may list the search result at the top of all search results, highlight the search result, or make any other stylistic change.
Vendor selection module406 may be configured to manage user selections of vendors from the search results. For example, after being provided with search results, the client may select one or more vendors to participate in a chatting process or bidding process.Vendor selection module406 may receive the selection of the one or more vendors and may be configured to invite the vendors to reply to the client via the chat interface, or to submit bids via the bidding interface. In one embodiment, for each search result, the client may be provided a link that allows the client to select the vendor. Upon selection of the link, a chat interface may be provided to the client, and a chat interface may simultaneously be provided to a vendor, allowing the client and vendor to chat in one embodiment. In another embodiment, a checkbox or other button may be provided for each search result, and the client may select the search result via the checkbox in order to select one or more vendors to chat with or to receive an offer from. The client may be able to select one vendor at a time or multiple vendors at the same time, for either a chatting or a bidding process (e.g., selecting multiple vendors to chat with at the same time, selecting multiple vendors to invite to a bidding process, etc.).
Search results module408 may be configured to format each search result for the client. For example, for each search result,search results module408 may generate links the client may click on. A link may take the client to a preview of the website, may open a chat window that allows the client to chat with the vendor (as described with reference to vendor selection module406), may open a bidding window that allows vendors to submit bids to the client, etc.Search results module408 may further determine which content is displayed for each search result (e.g., the short description of the search result or vendor, which links or preview images to include). In other words,search results module408 uses the information from modules402-406 and other information to generate a search result listing for the client.
The search results may be presented in various ways. For example,module408 may be configured to provide text search results (e.g., a title and description for each search result). As another example,module408 may generate visual search results. The search results may be icon based (e.g., each search result is represented by an icon), window based (e.g., each search result is represented by a window showing a website's homepage and other information), may be 3D (a three-dimensional representation of the search results), or may be based on the type of search the client is requesting. For example, if the client is searching for blogs, a tiled 3D view may be used to display the search results, allowing the client to scroll through screenshots of websites associated with the search results.Search results module408 may be configured to determine a type of presentation for the search results and to provide the client device receiving the search results with the presentation.
Interactive chat module312 may be configured to manage a chat interface between a client and one or more vendors.Interactive chat module312 may receive an indication from a client that the client wishes to initiate a chat with one or more vendors. The indication may come from a client clicking a chat link provided with a search result, according to one embodiment. After receiving the indication, a chat window may be provided on the website the client is viewing. The process of displaying the chat window for the client may vary, according to various embodiments. The chat interface may be provided on the same website the client is browsing the search results on or the chat window may be loaded for the client on a new website. As an example, a chat window may pop up on the current webpage the client is browsing. As another example, the chat window may pop up on the current webpage the client is browsing, but only after the vendor has responded and provided an initial message. As yet another example, a chat window may be part of the loaded webpage, and upon selection of a link, all future client and vendor interaction may occur in the chat window (e.g., the chat window may be loaded as an empty window on, for example, the right side of the screen, and future chat interaction may be displayed in the window). As yet another example, upon a selection of the chat link, a chat interface may be opened on the webpage directly below the corresponding search result, pushing other search results down the page.
The client may then use the chat interface to type a question or other response for the vendor, and the vendor response may be posted in the chat window as well. In other embodiments, other methods for inputting a question for the vendor or receiving a vendor response may be implemented (e.g., voice input/output). For example, the chat interface may be integrated with voice over IP (VoIP) technology that allows the client and vendors to speak to each other. As another example, while the chat interface is open, the client may call the vendor using a software application (e.g., Skype) to further discuss the product or service with the vendor. In general, this allows the client and a vendor to conduct a conversation regarding a product or service associated with the vendor and the selected search result. A chat interface may be initiated for the client for each vendor, or a chat interface may host a conversation between a client and multiple vendors.
Interactive chat module312 may be configured to contact the one or more vendors the client is interested in and to provide a chat interface to the vendors. For both the clients and vendors,interactive chat module312 may be configured to provide the chat interface for various types of devices.Interactive chat module312 may provide a chat interface for a computer, laptop, smartphone, or other mobile device.Interactive chat module312 may integrate with various software applications (e.g., Skype), allowing a client or vendor to communicate via the chat interface through the software application. The activities ofinteractive chat module312 is described in greater detail with reference toFIG. 6.
Interactive chat module312 (or another module of marketplace server102) may further be configured to filter chat interaction between the client and the one or more vendors.Interactive chat module312 may detect when a vendor is “spamming” the chat window of the chat interface with messages, when a vendor or client is providing inappropriate content, when a vendor is being disruptive, or otherwise. For example, if during a chat, the vendor is spamming the chat window with messages not related to a client query (e.g., a “BUY NOW!!!!” message repeated multiple times without addressing a client question or comment, posting a detailed offer multiple times without addressing a client question or comment, etc.),interactive chat module312 may terminate the chat (or remove the offending vendor from the chat) or alert the client that the vendor is not cooperating with the chatting system. As another example, if the vendor is providing inappropriate content (e.g., content not related to the search result or a client question or comment) or if the vendor or client is being disruptive (e.g., using foul language),interactive chat module312 may terminate the chat or alert the client or vendor that the other party in the chat is being inappropriate.
Interactive chat module312 may also be configured to manage a chat interface between clients.Interactive chat module312 may receive an indication from a client that the client wishes to initiate a chat with another client. The indication may come from a client clicking a chat link provided with a search result, according to one embodiment. After receiving the indication, a chat window may be provided on the website the client is viewing. The process of displaying the chat window for the client may vary, according to various embodiments. The chat interface may be provided on the same website the client is browsing the search results on or the chat window may be loaded for the client on a new website. As an example, a chat window may pop up on the current webpage the client is browsing. As another example, the chat window may pop up on the current webpage the client is browsing, but only after the vendor has responded and provided an initial message. As yet another example, a chat window may be part of the loaded webpage, and upon selection of a link. As yet another example, upon a selection of the chat link, a chat interface may be opened on the webpage directly below the corresponding search result, pushing other search results down the page.
The client may then use the chat interface to exchange information with one or more other clients. The chat interface provided may be based on a client chat input and the number of users searching the same or substantially the same search parameters. For example, if the client is the only client searching a particular parameter,marketplace server102 may not provide any client-to-client chat session. However, if more than one client is searching similar parameters,marketplace server102 may ask each client if they would like to initiate a group chat. If the client chooses yes, the client may also provide input as to whether they want to chat with only one other client, whom they may select (e.g., peer-to-peer); chat with numerous other clients (group chat); chat with users in their or a selected location; and many other ways.
Marketplace server102 may also update the order of search results (e.g., search results188 inFIG. 1E) in a subsequent search (e.g., search request186) based on a number of users of going to a specific site in the list of search results from prior search results. In this manner, a list of search results for certain search parameters become optimized over time based on user traffic. Via group chat of theinteractive chat module312 then, clients may discuss among themselves the efficacy of the search results (e.g., “Although vendor X is listed first, I have found vendor Y (listed fourth) to be more useful.”). Thus,interactive chat module312 may connect clients to help the effectiveness of their searching.
Interactive bidding module314 may be configured to manage a bidding process between a client and one or more vendors.Interactive bidding module314 may receive an indication from a client that the client wishes to receive bids for a product or service from one or more vendors. The client may select all vendors related to the received search results or may select particular vendors and search results.Interactive bidding module314 may be configured to contact the one or more vendors the client is interested in and to provide a bidding interface to both the client and vendors. The bidding interface may be configured to allow vendors to submit bids and other comments, and allow the client to reject or accept a bid, in addition to posting other comments.Interactive bidding module314 may receive an indication of an accepted bid and manage the interaction between the client and the vendor of the accepted bid.
As an example of an interaction between a client and vendors via the bidding interface, the client may first invite one or more vendors into the chat window or bidding window. The client may individually select vendors, may choose to select all vendors associated with the first ten or twenty search results, may choose the vendors based on a list of criteria provided by the client to the marketplace server, or may select the vendors in any other way. The client may then provide a product or service (e.g., pair of shoes) that the client wishes to purchase. The vendors may then provide offers (e.g., a vendor may offer a pair of shoes for $40, another vendor then offers the same pair of shoes for $35, and so forth), and other comments, via the bidding interface. The offers may simply include a cost for the offer, or may include additional terms (e.g., free shipping, money-back guarantees, etc.). These additional terms may be provided as a comment by the vendor or integrated with the rest of the offer (e.g., the cost and product). The bidding interface may be configured to present the offer in various formats. For example, the offer may be provided such that if a client clicks on the offer in the bidding interface, the offer is accepted, or the client may click the offer to then choose whether to accept or reject the offer.
As another example of an interaction between a client and vendors via the bidding interface, the client may view a search result for a particular vendor. The client may then choose to provide an offer to the vendor for a product or service. For example, the client may view the search results for a vendor that sells shoes, and the client may provide an offer of $40 for a particular pair of shoes. The client may type out the offer; or one or more links, drop-down boxes, or checkboxes may be provided with the search results that allow the client to select a price or price range, along with a particular brand or type of shoe. After providing the offer to the vendor, the vendor may choose to accept, reject, or counteroffer the offer.Interactive bidding module314 may then provide a bidding interface to allow the vendor and client to interact with one another, with the initial client offer triggering the bidding process.
The client may review the bids, offers, and comments and may select an offer to accept (e.g., selecting the offer for the $35 pair of shoes).Interactive bidding module314 may then provide the client and vendor a way to finalize the offer. For example,interactive bidding module314 may provide a chat interface to the client and vendor of the winning offer to finalize the deal, may boot all non-winning vendors from the bidding interface and allow the client and vendor to chat, etc.Interactive bidding module314 may then finalize the deal, or the deal may be finalized independently by the client and vendor. In addition to accepting an offer, the client may further boot vendors out of the bidding interface (e.g., vendors with inadequate offers or offers not relevant to the client), invite other vendors to the bidding interface, reject offers, provide reasons for rejections (e.g., the price of the pair of shoes in an offer being too high), or provide further details to the vendors.
In one embodiment, the bidding interface may be an interface integrated with the chat interface. For example, the client may first initiate a chat with the one or more vendors, then select to start a bidding process with the vendors. The chat interface may then be adjusted to allow offers to be submitted, accepted, and rejected. In another embodiment, upon starting a bidding process, a new bidding interface may be launched independently of the chat interface. The chat interface and bidding interface may be independent interfaces or may be integrated in various ways without departing from the scope of the present disclosure. Further, the bidding interface may be displayed in any manner as described with respect tointeractive chat module312. The activities ofinteractive bidding module314 is described in greater detail with reference toFIG. 7.
Likeinteractive chat module312, interactive bidding module314 (or another module of marketplace server102) may further be configured to filter interaction between the client and the one or more vendors in the bidding process.Interactive chat module312 may detect when a vendor is “spamming” the bidding window of the bidding interface with offers and messages, when a vendor or client is providing inappropriate content, when a vendor is being disruptive, or otherwise. For example, if during a bidding process, the vendor is spamming the bidding window with the same offer over and over again (e.g., providing the same offer over and over that a client has already rejected),interactive bidding module314 may remove the vendor from the bidding window and alert the client of the removal.
Client account module316 may be configured to manage client interaction withmarketplace server102.Marketplace server102 may provide a chat and bidding interface as described with reference tomodules312,314, andclient account module316 may be configured to track client usage of the chat interface (with vendors and with other clients) and bidding interface or may track client history relating to interaction with the search results. For example,client account module316 may manage customer account information or may use customer feedback to adjust the search results (e.g., putting preferred vendors' search results at the top, using bad feedback to remove other vendors' search results). Further,client account module316 may be configured to manage post-purchase activities. For example, upon purchasing an offer,client account module316 may be configured to hold client funds in escrow for the vendor, may authorize the client for purchase of the offer, may verify terms and conditions of the offer with the client, or otherwise. Post-purchase activities of the client andmarketplace server102 are described in greater detail with reference toFIG. 14. The customer account information may be stored in a user profile. When users receive their search results, the search results may include a number of people of searching the same parameters. The user may select that number which shows a visible profile of each user. The profiles of each user may be in a default private setting. Accordingly, the visible profile may only show the location of the user and a user identification number. Upon entering a user-to-user chat session, the user may provide a user profile command. The user profile command may enable one or more aspects of the user's profile to become visible to the other chat attendees. In another embodiment, the user profile command may be structured to control which aspects are visible and to whom (e.g., although a user is in a group chat session with users A, B, C, and D, a user may only make some aspects of their profile visible to user A and user C, no users B or D). In this manner, as users become more familiar with other users, users may select to permit more details of their profile to become public.
Referring now toFIG. 4B, the activities ofvendor account module318 are shown in greater detail.Vendor account module318 is configured to manage vendor interaction withmarketplace server102.Vendor account module318 may include avendor profile module420.Vendor profile module420 may include information relating to the vendor such as the vendor name, products and services offered by the vendor, a vendor interaction history with the marketplace server (e.g., the number of times a vendor has sold an offer to a client or chatted with a client, etc.), and other vendor information.Vendor profile module420 may be configured to provide vendor information to a client as part of the search results, as part of the chat interface or bidding interface, or otherwise.
Vendor profile420 may include information about the specific offers provided by the vendor. For example, in one embodiment, the online marketplace system of the present disclosure may allow clients to provide a bid on an offer (e.g., a price).Vendor profile420 may include information about specific products and services provided, along with any other options. For example, if the vendor sells shoes,vendor profile420 may include a list of brands of shoes offered, options for the shoes like shoe size and shoe color, and other information.Vendor profile420 information may then be provided to the client such that the client can provide a specific offer to the vendor.
Vendor account module318 further includesvendor feedback module422.Vendor feedback module422 is configured to track feedback provided by clients for each vendor. After a client provides vendor feedback (seefeedback module320 ofFIG. 3),vendor feedback module422 may store and organize the vendor feedback. The vendor feedback may then be provided to a client in a subsequent search. In various embodiments, the vendor feedback may be provided upon client request, or may be provided as part of the search results.
Vendor account module318 further includesvendor account information424.Vendor account information424 may include vendor information related to the use ofmarketplace server102. For example,vendor account information424 may include vendor preference information such as a preferred preview image, preview image presentation, or vendor description.Vendor account information424 may be displayed to a client in various ways. For example, vendor account information may be included in the display with a chat interface or bidding interface, so that the client may view the vendor account information without looking away from the chat interface or bidding interface.
Vendor account module318 further includesvendor subscriptions426. A vendor may subscribe tomarketplace server102, according to an exemplary embodiment. The vendor subscription may allow the vendor's search results to receive preferential treatment, may allow the vendor a better chance to chat with and provide offers to clients compared to other vendors, etc. For example, if a vendor subscribes tomarketplace server102, the search results related to the vendor may be given priority compared to other search results (the search results may be highlighted or listed at the top of the website, for example).
The vendor subscription tomarketplace server102 may vary, according to various embodiments. In one example, there may be no cost to subscribe tomarketplace server102. In another example, there may be a cost to subscribe tomarketplace server102, and different costs of subscriptions may affect the level to which the vendor is given preferential treatment compared to other vendors.
Vendor account module318 may further be configured to manage post-purchase activities. For example, upon the vendor selling an offer,vendor account module318 may be configured to hold client funds in escrow for the vendor, may authorize the vendor for selling of the offer, may verify terms and conditions of the offer with the vendor, or otherwise. Post-purchase activities of the vendor andmarketplace server102 are described in greater detail with reference toFIG. 14.
Referring again toFIG. 3,memory308 further includesfeedback module320.Feedback module320 may manage client feedback provided by the client about the vendors. For example, upon completing interaction with a vendor (e.g., by either chatting with the vendor, purchasing an offer from the vendor, or otherwise interacting with the vendor in a bidding process or chatting process), the client may provide vendor feedback. The vendor feedback may relate to the quality of offers provided by the vendor, the quality of interaction with the vendor (e.g., friendliness), the relevancy of offers provided by the vendor, etc. The vendor feedback may also include if the vendor was previously cited for misusing the chat interface or bidding interface (if the vendor was identified as an offender by a filtering process ofinteractive chat module312 or interactive bidding module314).Feedback module320 may receive and store the feedback. The feedback may be provided by the client by providing comments or by rating the vendors based on a numerical value or rating system.
Further,feedback module320 may generate a vendor profile based on the feedback. The vendor profile may indicate to a client how friendly the vendor is, how often an offer is purchased from the vendor, the types of offers provided by the vendors, etc.Feedback module320 may then provide the vendor profile to a client upon request, or may provide the vendor profile along with the search result relating to the vendor.
Referring generally toFIGS. 5-8, exemplary graphical user interfaces for the online marketplace system are shown, according to an exemplary embodiment. Referring more specifically toFIG. 5, agraphical user interface500 for displaying search results is shown. Inuser interface500 ofFIG. 5, search results are shown to the client as a result of a search request from the client. The search results may be sorted by relevancy to the client as described above. In various embodiments, the search results may be sorted by search engine (e.g., search results found by the same search engine are grouped together), search results related to vendors subscribed to the marketplace server may be displayed at the top of the page, etc. For example, inFIG. 5, search results may first be sorted by the search engine that generated the search result (e.g., Bing, Yahoo, Google, etc.), and then by relevancy to the client or by vendor subscriptions to the online marketplace system. The search results may be repeated for each search engine (e.g., a search result retrieved by both Bing and Yahoo may be displayed once under each search engine) or the duplicate search results may be removed for one of the search engines.
Anexample search result502 created by the online marketplace system of the present disclosure may include adescription504 for the search result.Description504 may include a title, a small preview window, and general information about the search result. In addition, various links or buttons may be provided onuser interface500 to allow the client to interact with the marketplace server. For example,search result502 includes apreview link506. Upon selectingpreview link506, one ormore preview images508 for the website are displayed to the client as described with reference towebsite preview module402.
Search result502 further includes achat link510. Upon selectingchat link510, a chat interface may be provided to the client and to a vendor. The chat interface is shown in greater detail inFIG. 6. The chat interface may be provided as a window on the current webpage, or the client may be taken to a new webpage. For example, upon selectingchat link510, an alert may be provided to the corresponding vendor, and a chat window may be opened on the current webpage upon vendor acceptance. As another example, upon selectingchat link510, the chat window may be provided instantly to the client, and the vendor may enter or exit the chat window at any time. As a further example,chat link510 may provide access to a user chat option (seeFIG. 15).
Search result502 may optionally further include abid link512. Upon selectingbid link512, a bidding interface may be provided to the client. The bidding interface is shown in greater detail inFIG. 7. The bidding interface may be selected bylink512 or may be selected from the chatting interface window, according to various embodiments. For example, the bidding interface may be activated from the chat interface, and link512 may not be provided, in one embodiment.
User interface500 may include one or more buttons, such as acheckbox514, allowing the client to select one or more search results and vendors. This may allow the client to select multiple vendors to chat with or to start a bidding process with. For example, a client may select multiple search results viacheckbox514, then select achat link510 or another link or button onuser interface500 to open a chat interface that multiple vendors are invited to.
Referring toFIG. 6, the chat interface system is shown in greater detail. In theuser interface600 ofFIG. 6, the client has selected a vendor to chat with. Whileuser interface600 illustrates a client chatting with one vendor, in other embodiments, the client may chat with more than one vendor (e.g., by chatting with multiple vendors in the same chat window or by opening one chat window for each vendor). In the embodiment ofFIG. 6,chat interface602 is shown as loaded on the same website as the search result; in other embodiments, another website may be used to display the chat interface. Whilechat interface602 is shown as a new window on the same website, it should be understood thatchat interface602 may be any type of window or interface as described with reference tointeractive chat module312 ofFIG. 3. For example,chat interface602 may be embedded on the right or left side ofuser interface600,chat interface602 may be opened directly above, below, or next to the corresponding search result,chat interface602 may only pop up onuser interface600 in any location once the vendor sends a message, etc.
Inchat interface602, a conversation is shown between a client and the vendor. The client may ask for information related to products and services offered by the vendor.Chat interface602 may display the conversation.Chat interface602 may further include one or more buttons that allow the client to initiate a bidding sequence (e.g.,button604 for asking the vendor to provide an offer) or to view vendor information or a vendor website (e.g., button606).FIG. 6 shows a chat interface based on a client-to-vendor interaction. In comparison,FIG. 16 shows a chat interface for client-to-client interaction (e.g., user-to-user).
Referring toFIG. 7, the bidding interface system is shown in greater detail. In theuser interface700 ofFIG. 7, the client has selected to initiate a bidding process with one or more vendors.Bidding interface702 is then provided to the client and all vendors the client wishes to include in the bidding process.
The client may start the bidding process, and vendors may provide offers to the client. The client may choose to accept or reject an offer. In one embodiment,links704,706 may be provided to the client inbidding interface702 to accept and reject offers. In other embodiments, other buttons or links may be provided on the screen orbidding interface702 to allow the client to accept or reject an offer. In yet other embodiments, the client may not be able to accept or reject offers, but may be able to talk to the vendors and select a vendor to chat with usingchat interface602. Upon selecting an offer to purchase from a vendor, the client may be taken to a website of the vendor or another website to complete the transaction.
Referring toFIG. 8, the feedback system is shown in greater detail. Usinguser interface800 ofFIG. 8, the client may leave feedback related to the one or more vendors the client has interacted with (either via the chat interface or the bidding interface).Feedback interface802 is provided to allow the client to provide feedback.Feedback interface802 may be provided in a new window on the same webpage as the search results, or a new webpage may be loaded for the feedback interface.
Feedback interface802 may allow the client to rate a vendor or product. The client may rate an overall experience with the vendor during the chatting and bidding process, may rate the quality and affordability of the products offered by the vendor, or may rate any other interaction with the vendor. Further, the client may leave comments about the vendor.Feedback interface802 may receive the client input and provide the input tofeedback module320.
Using the feedback provided viafeedback interface802, the online marketplace system may be configured to allow a client to view the vendor feedback. For example, a link may be provided with search results for a vendor that when selected, allows the client to view vendor feedback (e.g., the vendor's rating, and selected comments about the vendor).
Referring now toFIG. 9, a flow chart of aprocess900 for providing search results to a user of the online marketplace system is shown, according to an exemplary embodiment.Process900 may be executed by, for example, asearch engine module310 of amarketplace server102.Process900 may be executed to provide search results to the user, allowing the user to select vendors associated with the search results for participation in a chat interface or bidding interface.
Process900 includes receiving a user search query (step902) and receiving the search results from search engines (step904) related to the search query. The search results may then be formatted (step906). The formatting of the search results may include generating website preview images, 3D views of the websites of the search results, determining display properties associated with the search results, reordering the search results based on vendor subscriptions and other information, and any other step as described with references to modules402-408 ofsearch engine module310. Step906 may further include providing a chat link or bid link with each search result, allowing the user to select a vendor to chat with or invite to a bidding process. The formatted search results are then provided to the user (step908).
Referring now toFIG. 10, a flow chart of aprocess1000 for providing a chat interface to a user and vendors of the online marketplace system is shown, according to an exemplary embodiment.Process1000 may be executed by, for example, aninteractive chat module312 of amarketplace server102.
Process1000 includes providing search results to the user (step1002).Process1000 further includes receiving a user selection of one or more vendors (step1004). The user may select vendors by clicking a link associated with a particular search result, by clicking on one or more checkboxes to select multiple vendors, etc.Process1000 further includes providing an indication to the selected vendors and receiving confirmation from the vendors (step1006).Step1006 may generally entail alerting the vendors to user interest and receiving confirmation of vendor participation for chatting with the user.Process1000 further includes providing the chat interface to the user and the selected vendors (step1008). The user and vendor may then chat with each other using the chat interface. While in some embodiments orsituations process1000 may operate between a single client and vendor, in other embodiments orsituations process1000 may allow one or more clients access to the chat interface to chat with one or more vendors at the same time.
Referring now toFIG. 11, a flow chart of aprocess1100 for providing a bidding interface to a user and vendors of the online marketplace system is shown, according to an exemplary embodiment.Process1100 may be executed by, for example, aninteractive bidding module314 of amarketplace server102.
Process1100 includes providing a bidding interface to the user and vendors (step1102). The bidding interface may be provided upon user request, according to one embodiment. The bidding interface is provided to the vendors that the user has selected.Process1100 further includes receiving offers from the vendors to provide to the user (step1104).Step1104 may further include receiving other terms and comments related to the offers.
The user may receive the offers and may provide a response to the offers (step1106). The response may be or include a rejection of an offer, an acceptance of an offer, or comments directed to the offers and/or vendors. If the user rejects the offers, the vendors may provide another offer or other comments to the user (step1104).
When the user accepts an offer (step1108),process1100 further includes finalizing a purchase of the offer with the user and vendor (step1110).Step1110 may include verification of the purchase, or may simply include providing the user and vendor with an interface or another method of contact to complete the transaction. For example, after the user accepts an offer, the user and vendor may finalize the purchase independent of the marketplace server or using an interface of the marketplace server.
Referring now toFIG. 12, a flow chart of aprocess1200 for providing search results to a user of the online marketplace system is shown, according to an exemplary embodiment.Process1200 may include using user feedback to provide the search results.Process1200 may be executed by, for example, asearch engine module310 andfeedback module320 of amarketplace server102.
Process1200 includes receiving a user search query (step1202) and receiving search results and the vendors of the search results (step1204).Process1200 further includes retrieving user feedback for the vendors and search results (step1206). User feedback may relate to the specific search result or the vendor.
Process1200 further includes filtering the search results based on the user feedback (step1208). For example, the search results and vendors associated with the search results with the best feedback may be presented at the top of the search results, while the search results and vendors associated with the search results with the worst feedback may be presented at the bottom of the search results or may not be presented at all.
Process1200 further includes formatting the search results (step1210) and providing the search results to the user (step1212). Steps1210-1212 may be similar to steps906-908 ofprocess900 ofFIG. 9.
Referring now toFIG. 13, a flow chart of aprocess1300 for providing a bidding interface in response to a user offer to a user and vendors of the online marketplace system is shown, according to an exemplary embodiment.Process1300 may be executed to allow a user of the online marketplace system to select or bid on an offer for a product or service, and the vendor can respond to the user instead of the other way around.
Process1300 includes providing an interface to the user for entering an offer (step1302). For example,step1302 may include providing a chat interface or bidding interface as described in the present disclosure, and the user may simply type in the offer. As another example,step1304 may include providing an interface to the user that allows the user to select one or more vendor offers or one or more options related to the offers. For example, a list of offers may be provided to the user, and the user may select an offer and enter a bid for the offer. Further, options for the offer (e.g., for shoes, the shoe color may be an example of an option) may be selected by the user. The interface may be provided as part of a chat interface or bidding interface or as part of the search result (e.g., upon selection of a link of the search result, the offers and options may be chosen).
Process1300 further includes receiving the user offer and providing the user offer to the vendor (step1304).Process1300 further includes receiving a vendor response to the client offer (step1306). The vendor response may be an acceptance of the offer, a rejection of the offer, a counter-offer, or any other comment or reaction to the offer.Process1300 further includes providing a bidding interface (or a chat interface) to the user and vendor (step1308). The interface may allow the user and vendor to negotiate on the offer, finalize an acceptance or rejection of the offer, or to otherwise discuss the offer.
Referring now toFIG. 14, a flow chart of aprocess1400 for offer authorization of the online marketplace system is shown, according to an exemplary embodiment.Process1400 may be executed by the online marketplace system upon receiving an indication that a client and vendor have reached an agreement on an offer.Process1400 may be used to authorize the purchase of the offer by the client and to otherwise manage the process of providing the payment to the vendor and the offer to the client.
Process1400 includes receiving an acceptance of an offer (step1402). The acceptance of the offer may be submitted through, for example, the bidding interface. Upon acceptance of the offer, the marketplace server may receive the offer details (step1404). The offer details may include the product or service being sold, the price of the offer, a payment method for the offer, a delivery method for the offer (e.g., how the offer is to be redeemed or sent to the user), terms of the offer (e.g., refund details, offer insurance, or other terms or conditions for the usage of the services of the offer), and other offer information.
Process1400 further includes approving the user and vendor for the purchase and sale of the offer (step1406).Step1406 may include verifying that the user has the funds available to purchase the offer. For example, the user may provide payment information to the marketplace server, and the marketplace server may approve the user. The marketplace server may process the payment itself or may simply verify the payment method and let the vendor handle the payment processing. In another embodiment, the marketplace server may open an escrow account for the user and hold the user funds, and then release the funds to the vendor at an appropriate time (e.g., upon delivery of the offer to the user).Step1406 may further include verifying that the vendor has an available offer to provide to the user. For example, using vendor information from a vendor account module (e.g.,module318 ofFIG. 4B), the marketplace server may verify that the vendor is able to provide the offer.Step1406 may further include any verification process associated with any of the terms of the offer.
Process1400 may further include various optional steps for authorizing the offer purchase upon user and vendor approval. For example,process1400 may include receiving payment from the user to hold in escrow for the vendor (step1408). As another example,process1400 may include receiving verification that the user has provided payment directly to the vendor (step1410). As yet another example,process1400 may include receiving verification that the vendor has delivered the offer to the user (step1412). As yet another example,process1400 may include receiving verification that a user has redeemed an offer (step1414). Any of the information received in steps1108-1114 may be used by the marketplace server to verify that the offer purchase was completed without a problem to either the user or vendor.Process1400 may further include determining if any of the verification steps that should have occurred have yet to occur, and if a message or warning should be provided to either the user or vendor about the missing verification steps. For example, if a user missed a payment, if the vendor did not provide the offer within a given time frame, or if the user or vendor violated a term or condition of the offer, the user and/or vendor may be notified.
Referring now toFIG. 15, a flow chart of aprocess1500 for providing a user chat interface is shown, according to an exemplary embodiment.Process1500 may be executed by, for example, aninteractive chat module312 of amarketplace server102. In some embodiments, operations ofprocess1500 may be split betweenmarketplace server102 andsearch engine104.
Process1500 includes receiving a search query for a user (step1502). This user may be referred to as the initiating user. The search may use hashtags and any other type of search methods/protocol.Process1500 further includes determining a number of other users searching a substantially similar search query as the search query for the initiating user (step1504). Similarity may be based on matching algorithms, formulas, or other processes designed to match the initiating user's search query with the search queries of other users. For example, similarity may be based on the use of nouns (e.g., User A may search “how do I recharge a battery?” User B may search “battery-powered vehicles.” User C may search “flashlight batteries.” Because users B and C searched the noun “battery,” they may be determined to have a similar search parameter as user A). The matching determinations may be structured in a variety of ways, with only one example described above. Accordingly, this example is not meant to be limiting. Search results are provided based on the search query from the initiating user (step1506). The search results may be provided in accord withstep904 ofprocess900.
An indication of the number of other users may be provided to the initiating user along with the search results (step1508). The indication may appear on a graphical user interface. This graphical user interface may appear in another window relative to the search results, in a shared window with the search results, as a pop-up, as link, etc. The provided indication may be based on the users that are currently on-line, the number of other users that performed the similar search in the past X timeframe (e.g., three days), and any other feature. Using the above example, if the indication is based on the users currently on-line and users B and C are off-line, they may be excluded from the indication. In another example, if one or more of the other users are off-line (e.g., based on a timeframe parameter), a chat session may be provided to them next time they go online. This chat session may be a pop-up or an email and may be configured to allow the exchange of information with an initiating user.
A user chat option may be provided also on the graphical user interface (step1510). The user chat option may be provided after the initiating user selects the indication of the number of users searching the same or substantially the same query. Accordingly, if no other users are searching this query (e.g., based on the parameter that the user only wants to chat with users currently on-line), a user chat option may not be provided. However, if there are other users searching substantially similar parameters, the initiating user may be provided with user chat options (step1510). For example, ten other users may be shown to be also searching this parameter. The user may select the number ten, which takes them to another window with a list of the ten specific users. Included in the list may be the user chat options.
The user chat option may be location-based. For example, an initiating user may choose to chat only with other users in their location or in a location they select (e.g., the physical vendor location may be in a neighboring state and they may wish to interact with people in that state who frequent that location). The user chat option may be peer-to-peer. In turn, the initiating user only chats with one other user. In one embodiment, the initiating user may select which user to initiate a chat session with from a list of users provided in the indication (e.g., step1508). The user chat option may be group-based. For example, the initiating user may select more than other users in the list of users to initiate a chat session with.
Atstep1512, a response to the user chat option is received from the initiating user. The response includes which user chat option to utilize and with which other users. In some embodiments, a default user chat option may be selected, such that it automatically sets the user chat option with no response needed.
Atstep1514, a user chat interface is generated. In one embodiment, the user chat interface is configured as a chat session that appears on the initiating user's graphical user interface and other graphical user interfaces of other users included with the user chat. The chat session may be provided alongside the search results, in a window separate from the search results, via a link, a pop-up, etc.
Process1500 further includes receiving a user profile command (step1516). As mentioned above, the user profile command is structured to adjust the visibility of a user's profile. The visibility settings may be different based on if the user is entering a chat session and the list of users included in the number of users searching the same or substantially the same query. For example, the visibility may be limited to a user location and a user identification number in the list. In this example, the initiating user may observe where other users are located and select the users they wish to chat with based on their location. Upon entering a chat session, the visibility may further include past search requests by the user. However, controlling what aspects of a user profile are visible, to whom, and when may be controlled via the user profile command ofstep1516.
The user profile command may also include activating/deactivating the user chat feature. For example, user A may be the only other user searching the same parameters, however, user A has deactivated the user chat feature. Accordingly, the initiating user will receive an indication of zero other users.
Referring now toFIG. 16, an example graphical user interface for providing a user chat interface is shown, according to an exemplary embodiment.User chat interface1602 is shown as loaded on the same website as the search result; in other embodiments, another website may be used to display the user chat interface. Whileuser chat interface1602 is shown as a new window on the same website, it should be understood thatuser chat interface1602 may be any type of window or interface as described with reference tointeractive chat module312 ofFIG. 3. For example,user chat interface1602 may be embedded on the right or left side ofuser interface1600,user chat interface1602 may be opened directly above, below, or next to the corresponding search result,user chat interface1602 may only pop up onuser interface1600 in any location once the vendor sends a message, etc.
User chat interface1602 provides a user profile visibility options module1604 (e.g., step1516); an indication of a number of other users with a similar search module1606 (e.g., step1508); and user chat options module1608 (e.g., step1510). Although the userchat options module1608 is shown as separate from the number of other users with asimilar search module1604, the user chat options may be a separate window or pop-up that is accessible when there are other users.
In one example, the initiating user may select a user chat option, such that a user chat session is generated and shown inFIG. 17. Theuser interface1700 is shown to includeuser chat session1702. As shown, the users—who had a similar search for “shoes”—are able to converse. In this example, the initiating user informs the other users that vendors X and Y were not included in their provided search results. However, after going to those vendors websites,marketplace server102 may update the list of search results based on this and other site traffic. In this event, sites that are most frequented will be presented sooner in the list of search results.
Referring now toFIG. 18, a flow chart of aprocess1800 for displaying search results and providing chat options for users of the online marketplace system is shown, according to an exemplary embodiment. In embodiments,process1800 includes receiving a search query for a user (1802). In embodiments,process1800 includes providing to a graphical user interface (GUI) a list of search results based on the search query, wherein each search result of the list of search results comprises a link and a result chat icon (1804). In embodiments, when the result chat icon associated with a search result of the list of search results is selected and no result chat room associated with the search result exists,process1800 includes creating (1808) and displaying (1810) a result chat room associated with the search result. In embodiments, when the result chat icon associated with a search result of the list of search results is selected and the result chat room associated with the search result exists,process1800 includes displaying the result chat room associated with the search result (1810).
Still referring toFIG. 18, in embodiments,process1800 includes providing to the GUI a search query chat rooms display (1806). In embodiments, the search query chat rooms display comprises a plurality of numbers, wherein a first number of the plurality of numbers indicates a number of other users currently searching a same or substantially same search query and a second number of the plurality of numbers indicates a number of search query chat rooms regarding the search query. In embodiments,process1800 includes displaying the number of users and number of chat rooms (1812). In embodiments, when the search query is a product or service, a third number of the plurality of numbers indicates a number of merchants offering the product or service and currently available to chat. In embodiments,process1800 includes displaying the number of merchants (1814).
Still referring toFIG. 18, in embodiments, the search query chat rooms display comprises a new search query chat room trigger, wherein when the new search query chat room trigger is activated by the user,process1800 includes creating (1816) and displaying (1818) a new search query chat room.
Still referring toFIG. 18, in embodiments, the search query chat rooms display comprises a list of search query chat rooms regarding the search query. In embodiments,process1800 displays the list of search query chat rooms (1820). In embodiments, when a search query chat room from the list of search query chat rooms regarding the search query is selected,process1800 includes displaying the selected search query chat room (1818).
In some embodiments,process1800 includes displaying simultaneously a plurality of result chat rooms and/or a plurality of search query chat rooms without requiring the user to browse away from the list of search results. In some embodiments, a chat room is not limited to text, but may allow multimedia and display images and videos directly in the chat room. In some embodiments, the user may filter messages in a chat room.
In some embodiments,process1800 includes storing user account of the user, wherein a user account comprises a real name of a user, a user name, user bookmarks, user history, user chats, user tags, user products, and user friends. In some embodiments,process1800 includes associating a rating with a search result and storing the rating of the search result, wherein the rating of the search result is based at least in part on votes by users signed in to their user accounts. In some embodiments,process1800 includes assigning, after verifying identity of the user, the user as owner of a chat room, when the user is signed in to the user account, wherein a user may own a plurality of chat rooms, wherein a chat room may be a result chat room or a search query chat room. In some embodiments, verifying user identification may be accomplished by checking the Social Security Number of the user. In some embodiments,process1800 includes setting, based on selections of the user, security and privacy settings for a chat room the user owns. In some embodiments,process1800 includes inviting or removing, based on selections of the user, other users by user name or IP address to or from a chat room the user owns. In some embodiments, user bookmarks may be bookmarks for webpages or chat rooms. In some embodiments, user history may be a record of user activity. In some embodiments, user chats may be chat rooms the user owns or has participated in. In some embodiments, users tags may be used specify a chat room, so that users may find the chat room by searching for the user tag. In some embodiments, user products may indicate products or services the user has purchased through an online marketplace system. In some embodiments, user friends may indicate a list of users the user has saved.
Referring now toFIG. 19, graphical user interface (GUI)1900 displaying search results and chat options for users of the online marketplace system is shown, according to an exemplary embodiment. In embodiments,GUI1900 displays thesearch query1902. For instance, the search query may be “shoes.” In embodiments,GUI1900 displays alist1904 of search results. In embodiments,search result1910 comprises alink1912 and aresult chat icon1914. A user may click onlink1912 and proceed to a linked webpage. A user may also start or join a chat about a search result. In embodiments, when no result chat room is associated with a search result, the result chat icon may differ from when a result chat room is associated with the search result. For instance,result chat icon1914 ofsearch result1910 may indicate no result chat room is associated withsearch result1910. In embodiments, a user clicking onresult chat icon1914 would create and join a result chat room associated withsearch result1910, andGUI1900 would display the (newly created) result chat room associated withsearch result1910. Further,result chat icon1918 ofsearch result1916 may indicate a result chat room is associated withsearch result1916. In embodiments, a user clicking onresult chat icon1918 would join the result chat room associated withsearch result1916, andGUI1900 would display the result chat room associated withsearch result1910. Having separate result chat rooms for each search result allows for independent discussion of each search result. In some embodiments, a user may vote on a search result, affecting a rating of the search result.
Still referring toFIG. 19, in embodiments,GUI1900 displays search querychat rooms display1920. In embodiments, search query chat rooms display1920 comprises a plurality of numbers. In embodiments,first number1922 of the plurality of numbers indicates a number of online users currently searching for a same or substantially same search query. For instance,first number1922 may indicate the number of other users searching for shoes. In embodiments,second number1924 of the plurality of numbers indicates the number of search query chat rooms regarding the search query. For instance,second number1924 may indicate the number of search query chat rooms regarding shoes. In embodiments, when the search query is a product or service,third number1926 of the plurality of numbers indicates a number of merchants offering the product or service and currently available to chat. For instance,third number1926 indicates the number of merchants selling shoes and available to chat.
Still referring toFIG. 19, in embodiments, search query chat rooms display1920 comprises new search querychat room trigger1928. In some embodiments, new search querychat room trigger1928 may be a button. In some embodiments, new search querychat room trigger1928 may be a text field. In embodiments, a user activating searchchat room trigger1928 would create and join a search query chat room regardingsearch query1902, andGUI1900 would display the (newly created) search query chat room regardingsearch query1902. For instance, a user may create and join a chat room regarding shoes. In embodiments, search query chat rooms display1920 comprises alist1930 of search query chat rooms regarding thesearch query1902. In embodiments, a user clicking on searchquery chat room1932 from thelist1930 of search query chat rooms would join searchquery chat room1932, andGUI1900 would display searchquery chat room1932.
Referring now toFIG. 20,GUI2000 for displaying chat rooms for users of the online marketplace system is shown, according to an exemplary embodiment. A user may join and participate in a chat room or view chat history. In some embodiments, a chat room is displayed without the user browsing away from the list of search results. For instance,GUI2000displays chat room2010 without the user browsing away from list of search results2002. In some embodiments, a plurality of chat rooms may be displayed simultaneously. For instance,GUI2000 displays simultaneously chatroom2010 as well as a plurality of chat rooms2020. In some embodiments, chat rooms may be docked. For instance,GUI2000 displays a plurality of chat rooms2020 docked along the bottom of the display. In some embodiments, a user may see previews of messages from other users in a chat room before the messages are sent. In some embodiments, a preview of a message appears in a lower right corner of theGUI2000.
Referring now toFIG. 21,GUI2100 displays a chat interface for users of the online marketplace system is shown, according to an exemplary embodiment. In some embodiments, a user may set security and privacy settings for a chat room the user owns, including whether the chat room is public or private, or whether users may post anonymously. In some embodiments, a user may own a chat room where the search query is the name of the user. Verification of identify may be done by checking Social Security Number, for instance. In some embodiments, a user may own a chat room where the search query is the name of a product or the name of a company of which the user is the owner. For instance, a user may own a result chat room wherein the link points to the website of a company owned by the user, or a user may own a search query chat room regarding a product sold by the user or by a company owned by the user. Verification of identity would involve checking ownership records, for instance. In some embodiments, the user may invite or remove other users by user name or IP address to or from the chat room the user owns. For instance, invitewindow2110 comprisesuser types2112,user search field2114, anduser list2120. In some embodiments,user types2112 may be used as a filter to select a subset of users to invite to the chat room. In some embodiments,user search field2114 may be used to search for a user, for instance by name or IP address, and invite that user to the chat room.User list2120 comprises a list of users that meet the user type filter or user search field. In some embodiments, the user may indicate a desire to invite a user2122 by selectingcheck box2124. The user would click invite to send an invitation to user2122 to join the chat room. This allows, for instance, the user to create a chat room regarding shoes, set the chat room to private, and invite merchants, to create a bidding or purchasing session.
Referring now toFIG. 22, a flow chart of aprocess2200 for providing a chat room is shown, according to an exemplary embodiment. In embodiments,process2200 includes providing to a graphical user interface (GUI) a chat room comprising a plurality of users (2202). In embodiments, while a message of a user of the plurality of the users has not been sent (2204), when a first threshold is met (2206),process2200 includes obtaining a capture of the message (2208) and displaying in the chat room the capture to other users of the plurality of users (2210). In embodiments, when a number of displayed captures in the chat room is greater than a second threshold (2212),process2200 includes removing from the chat room an oldest displayed capture (2214). For instance, while a user is typing a message, a sequence of captures of the message being typed is obtained and displayed to the other users, allowing the other users to see the message formation process; the sequence of captures of the message of the user is not displayed in the chat room of the user. When the number of displayed captures exceeds a predetermined number, e.g., ten,process2200 removes the oldest capture, thus maintaining a display of the ten most recent captures. In embodiments,process2200 is not limited to one message of one user—when multiple messages of multiple users are being typed,process2200 would obtain and display, for each user, the ten most recent captures among all of the multiple messages of each other user. For instance, if users A, B, C, and D were in a chat room and all were typing a message, A would see the ten most recent captures of messages by B, C, and D; B would see the ten most recent captures of messages by A, C, and D; C would see the ten most recent captures of messages by A, B, and D; and D would see the ten most recent captures of messages by A, B, and C. In some embodiments, the captures are displayed in a lower right corner of the chat room.
Still referring toprocess2200, in some embodiments, the chat room is private. In some embodiments, the first threshold may be a first predetermined number of changes to the message from an immediately-previous capture, or, when no immediately-previous capture exists, from a blank message. For instance, the first threshold may be four changes, andprocess2200 would obtain and display a capture whenever the message being typed differs from the immediately-previous capture by four changes. When no immediately-previous capture exists, as when a message is initially begun, the number of changes may be compared to a blank message. In some embodiments, the first threshold may be a first predetermined number of changes to the message from an immediately-previous capture and a first predetermined period of time from the immediately-previous capture, or, when no immediately-previous capture exists, from a blank message. For instance, when the first predetermined number of changes is four, and the first predetermined period of time is 500 milliseconds, when at least four changes to the message being typed have been made,process2200 does not obtain and display a capture until 500 milliseconds have elapsed since the immediately-previous capture. In another instance, more than 100 milliseconds may have elapsed since the immediately-previous capture, butprocess2200 does not obtain and display a capture until four changes to the message have been made.
Still referring toprocess2200, in some embodiments, when a number of displayed captures for the message in the chat room is greater than a third threshold (2216),process2200 includes removing from the chat room an oldest displayed capture of the message (2218), wherein the third threshold may be a second predetermined number of captures to display for a message of each user of the plurality of users. For instance, when the second threshold is ten total displayed captures, and the third threshold is four displayed captures for a message, when users A, B, C, and D are in a chat room and all are typing a message, user A may see, among the ten captures displayed in the chat room of user A, at most the four most recent captures of messages by users B, C, and D, even when the ten most recent captures may be, e.g., all from the message of user C. The four most recent captures of the message of user C would be displayed, as well as the six most recent captures of messages of users B and D, again limited to at most four captures of the message by user B and at most four captures of the message by user D. This prevents the captures of one message from removing all captures of other messages from the display. In some embodiments, the second predetermined number of captures to display for a message of each user of the plurality of users is one.
Referring now toFIG. 23 aGUI2300 displaying a chat room is shown, according to an exemplary embodiment.Old messages2302 were previously entered, andmessage input field2304 allows user A to enternew message2306. Displayedcaptures2308 appear in the lower right corner of the chat room, displayedcaptures2308aand2308dare captures of a message user B is currently typing, and displayedcaptures2308band2308care captures of a message user C is currently typing. Messages from users B and C have not been sent, and thus those messages do not show up withold messages2302. Because the process does not display captures of a message of the user,new message2306 of user A does not show up in the displayed captures2308. Embodiments of the process are not limited to chat rooms for an online marketplace system. For instance, a chat room may be an one-on-one conversation between two users using a stand-alone chat application on a computer or mobile device.
Referring now toFIGS. 24-30, one embodiment of a graphical user interface, and accompanying interaction features, generated by the computer system described herein, is illustrated. The computer system (e.g., marketplace server102) includes hardware and software components configured to generate the graphical user interface illustrated, according to one embodiment, inFIGS. 24-30. The computer system further handles inputs fromclients106,search engines104, and/or other remote computing devices (e.g., servers running search engines, computing devices used by users of the graphical user interface and the computer system described herein, and/or other devices). For example, a user may provide a search query, chat initiation request, chat content, and/or other information or requests which are received bynetwork interface302, processed usingprocessing circuit304, and acted upon (e.g., an output is provided to the user device). The computer system further provides for outputs to other devices. For example, in response to received requests, instructions, and/or other information received vianetwork interface302, the computer system may process this information and provide an output vianetwork interface302 to a client device or other device (e.g., search engine). Output information may be or include instructions and/or information which causes a receiving user device to display one or more elements of the graphical user interface and associated content described herein with reference toFIGS. 24-30.
To provide the graphical user interface described herein to users via user computing devices (e.g., laptop computers, desktop computers, smartphones, and/or other devices), the computer system includes hardware and/or software components configured to perform the functions described herein. The computer system may include one or more components described herein with reference toFIGS. 3A-4B. For example, the computer system (e.g., marketplace server102) includesnetwork interface302 and/or other networking hardware to establish communications between the computer system and other devices (e.g., user computingdevices running client106 to access and interact with the computer system via the graphical user interface described with reference toFIGS. 24-30).Network interface302 may be used to provide instructions for displaying elements of the graphical user interface (e.g., HTML content) and/or information displayed via the graphical user interface (e.g., user specific information such as search results, chat content, profile information, and/or other information).Network interface302 may also be used to communicate with non-user devices, such assearch engines104. The computer system may transmit received search queries from users tosearch engines104 usingnetwork interface302.
The computer system further includesprocessing circuit304.Processing circuit304 is used to process received inputs, retrieve stored information (e.g., user profile information and settings stored in memory308), and otherwise perform the functions described herein.Processing circuit304 may use one or more module stored inmemory308 and included in the computer system to perform the functions described herein. For example,processing circuit304 may usesearch engine module310 to receive a user search query, format the request, transmit the request to search engine(s)104, receive the search results from search engine(s)104, format the results for display, and generate instructions to be sent to the user device which cause the display of the search results within the graphical user interface as described herein. The computer system may includeinteractive chat module312 which is executed by processingcircuit304 to provide for the chat functions described herein (e.g., chat between a user and an additional one or more users). The computer system may include additional modules as described with reference toFIGS. 3-4B.
In some embodiments, the computer system is configured to provide for the purchase of products via the graphical user interface using one or more of the techniques and/or hardware components described herein (e.g., with reference toFIGS. 3,9-14). In other embodiments, the computer system is not configured to provide for the purchase of products via the graphical user interface. In such embodiments, the graphical user interface described with reference toFIGS. 24-30 does not include features supporting the purchase of products, and the computer system does not include hardware and/or software components used in purchasing products (e.g.,interactive bidding module314,vendor account module318, and/or other components). The computer system may be configured to provide search results and communication between one or more users. For example, the computer system may include hardware and/or software components configured to provide for chat and/or messaging between users and/or the display of search results as described herein with reference toFIGS. 15-23.
Referring now toFIG. 24, home page2400 provided by the computer system to a user device is illustrated according to one embodiment. A user may access the computer system using a web browser running on a computing device and/or an application (e g, running on a smartphone) by causing the browser or application to submit a request to the computer system (e.g., using a universal resource locator, hyperlink, or other transmitted request). The computer system may receive the request usingnetwork interface302, process the request using processing circuit304 (e.g., to determine user specific information) and serve home page2400 (e.g., transmit information and/or instructions to the client device usingnetwork interface302 which causes the display of home page2400). Home page2400 may include information specific to a user retrieved from memory308 (e.g., username, user specific settings, search history, chat content, message content, user statistics, and/or other information).
Home page2400 includes search filed2401.Search field2401 is a field of the graphical user interface in which a user may input a search query. Once the user submits the search query (e.g., by pressing enter or a submit button), the search query is transmitted from the user device on which the graphical user interface is displayed to the computer system which receives the search query usingnetwork interface302. The search query is processed, usingprocessing circuit304 of the computer system, and transmitted to one ormore search engines104. Results from thesearch engines104 are receives and processed by processingcircuit304 to format instructions to cause the display of the results on the user device using the graphical user interface. The instructions are then transmitted to the user device using the network interface. The display of search results is described in greater detail with reference toFIG. 25.
Home page2400 includesnavigation bar2402. In some embodiments,navigation bar2402 is included in all pages of the graphical user interface which the computer system causes to be displayed on the user device.Navigation bar2402 includesmenu button2403. In some embodiments,menu button2403 causesnavigation bar2402 to expand (e.g., as illustrated inFIG. 27) and include labels corresponding to the other buttons included innavigation bar2402.Navigation bar2402 further includesuser profile button2405.User profile button2405 includes an image associated with the user profile stored inmemory308 of the computer system and provided to the user device for display in the graphical user interface.User profile button2405, when clicked, causes the user device to transmit a request for user profile page2900 (e.g., illustrated inFIG. 29) to the computer system. The computer system receives the request, usingnetwork interface302, formats information and instructions for the display ofuser profile page2900 and the content included therein usingprocessing circuit304, and transmits the instructions and content to the user device vianetwork interface302.Navigation bar2402 further includessearch button2407.Search button2407, when clicked, causes the user device to transmit a request for search results page2500 (e.g., illustrated inFIG. 25) to the computer system. The computer system receives the request, usingnetwork interface302, formats information and instructions for the display ofsearch results page2500 and the content included therein usingprocessing circuit304, and transmits the instructions and content to the user device vianetwork interface302.Navigation bar2402 further includeschat button2409.Chat button2409, when clicked, causes the user device to transmit a request for chat page2700 (e.g., illustrated inFIG. 27) to the computer system. The computer system receives the request, usingnetwork interface302, formats information and instructions for the display ofchat page2700 and the content included therein usingprocessing circuit304, and transmits the instructions and content to the user device vianetwork interface302.Navigation bar2402 further includesfriends button2411.Friends button2411, when clicked, causes the user device to transmit a request for friends page2800 (e.g., illustrated inFIG. 28) to the computer system. The computer system receives the request, usingnetwork interface302, formats information and instructions for the display offriends page2800 and the content included therein usingprocessing circuit304, and transmits the instructions and content to the user device vianetwork interface302.Navigation bar2402 further includesevents button2413.Events button2413, when clicked, causes the user device to transmit a request for events page3000 (e.g., illustrated inFIG. 30) to the computer system. The computer system receives the request, usingnetwork interface302, formats information and instructions for the display ofevents page3000 and the content included therein usingprocessing circuit304, and transmits the instructions and content to the user device vianetwork interface302.
Navigation bar2402 may further includeclaim button2415.Claim button2415, when clicked, causes the computer system to generate a graphical user interface page which includes fields prompting a user to input information for claiming a name or website that the user owns. The user may request that his profile be associated with the claimed name or website using the graphical user interface. The claim may be reviewed automatically by the computer system of by an operator of the computer system. When claimed (and approved), a website or name is associated with a particular user inmemory308 of the computer system (e.g., stored in a tuple). This may cause the computer system to display the user profile (e.g., user profile button2405) associated with the claimed website or name when information associated with the claimed website or name is displayed by the graphical user interface. For example, if a claimed website is returned in search results, the user profile of the claimed owner may be displayed next to the website hyperlink in the search results and/or the user associated with the profile may be listed as an expert related to the website in an area of the graphical user interface displaying users associated with the search results and/or website (e.g.,user list2533 illustrated inFIG. 25).
Navigation bar2402 may further includeprivate group button2417.Private group button2417, when clicked, causes the computer system to generate a graphical user interface page which includes fields, buttons, and/or other elements which allow a user to create a private group or chat which is not visible to users who are not invited to join by the creating user (or in some cases other users who have joined the private chat or group).
In some embodiments, home page2400 further includesrecent searches field2420. Recent searches field2420 is generated on the user's device as part of the graphical user interface based on instructions and information provided to the user device by the computer system. In one embodiment, the computer system stores recent (e.g., the last predetermined number of searches) public searches from all users inmemory308. When home page2400 is requests by a user device, the computer system causes recent searches filed2420 to be generated based on the stored information. Recent searches field2420 includes each set of search terms2421. Clicking on search terms2421 causes the user device to submit a search query to the computer system using those search terms. The computer system then causes the display of search results based on those terms on the user device. In some embodiments, clicking search terms2421 reveals a button prompting the user to confirm that the search will be conducted prior to submitting the search query. Associated with the search terms2421 isuser profile button2423 corresponding to the user who submitted the search query. Clicking onuser profile button2423 submits a request to the computer system to display the user profile associated with that user. The computer system receives an indication of whichuser profile button2423 was clicked and causes the user device to display a page of the graphical user interface containing the associated user profile (e.g., based on information related to the user profile stored in memory308). This page may include information about the user and/or options to interact with the user (e.g., friend the user, chat with the user, and/or other generate other interactions carried out by the computer system as described herein). In another embodiment, the computer system stores recent search queries submitted by the user inmemory308 associated with the user (e.g., as a tuple) and displays these recent searches conducted by the user inrecent searches field2420.
In some embodiments, home page2400 further includespublic search toggle2419. When clicked,public search toggle2419, causes the user device to transmit a request to the computer system to toggle the public search setting associated with the user. The computer system receives the request vianetwork interface302. The public search setting associated with the user is stored inmemory308. The computer system toggles the public search setting between on and off based on the request from the user device. When the public search setting is toggled on, search queries submitted by the user are visible to other users (e.g., visible in therecent searches field2420 of their homepages2400, visible in theuser list2533 of users searching related keywords insearch results pages2500 of other users, etc.). When the public search setting is toggled off, the computer system does not provide user information to other user devices when generating elements of the graphical user interface including information or identification of other users based on searches (e.g.,recent searches field2420 of their homepages2400,user list2533 of users searching related keywords insearch results pages2500, etc.).
Referring now toFIG. 25,search results page2500 of the graphical user interface generated by the computer system instructions provided to the user device is illustrated according to one embodiment. The search result content, associated content (e.g., related chats, users searching for the same results, recent search results for similar keywords, and/or other associated content) and instructions for displaying this information are transmitted to the user device to cause the display of the graphical user interface in response to a user submitted search query and/or in response to a user clickingsearch button2409 ofnavigation bar2402.Search results page2500 may also be accessed by a user by clicking onsearch button2407 of thenavigation bar2402.
Search results page2500 includes anindication2501 of the searched terms. The computer system provides information to the user device of the terms in the search query which are then displayed asindication2501 as part of the user device's generation of the graphical user interface based on the instructions from the computer system.
In some embodiments,search results page2500 includessearch results list2503. Search results list2503 includes anindication2505 of the search engine used in performing the search. In some embodiments, a user may click on theindication2505 to select a different search engine for use in searching for the query. In such a case, selecting a different search engine causes the user device to resend the search request with information indicating that a different search engine has been selected. The computer system receives the search request, conducts a search via the different search engine, and sends instructions to the user device causingsearch results page2500 to be redisplayed according to the search results from the different search engine. Search results list2503 may further includebuttons2507 which allow a user to toggle between the type of search and/or results displayed (e.g., search of websites, videos, news only, etc.). Toggling between the type of search may cause thesearch results page2500 to be redisplayed by the computer system.
Search results list2503 further includes a list of search results. Each search result may include one or more of awebpage title2509, a universalresource locator address2511, a description or excerpt of text found on thepage2513, astart talk button2519, a first user who suggests thewebsite2515, and/or an indication of the number of other users who suggests thewebsite2517. The first user who suggests thewebsite2515 may be displayed based on information stored inmemory308 of the computer system. For example, the first user who suggest thewebsite2517 may be the user with the highest user rating who suggests the website, the user who has claimed ownership of the website, a friend of the user conducting the search, or a user who is designated an expert with regard to one or more keywords in or associated with the search result. This information and associations are stored and maintained by the computer system and provided to the user device in the instructions which cause the display of the search results page of the graphical user interface. Thestart talk button2519, when clicked sends a request to the computer system for the generation of a chat session related to the website associated with the start talk button in the search results. In response to the request, the computer system provides instructions to the user device which generates a graphical user interface for the chat (e.g., as illustrated inFIG. 26). The chat session may be populated by the computer system automatically based on similar requests for chat sessions submitted by other users or may be populated in response to invites to other users requested to be sent by the user in the chat. In some embodiments, if a chat session already exists for the website, the computer system causes the user to join the chat in progress when thestart talk button2519 is clicked.
If a chat session does not exist, the computer system via theinteractive chat module312 may prompt a user to name the chat session. Theinteractive chat module312 may further restrict a user from naming the chat session to substantially match the name of an existing chat session. Theinteractive chat module312 may utilize one or more functions, algorithms, processes, and the like to check the availability of a chat session name before finalizing selection of a name. For example, if a user attempts to name a chat session “Chat Session,” and a chat session already exist with that title, theinteractive chat module312 may provide an indication to the graphical user interface of the user that the name is unavailable. If no chat session named “Chat Session” exists, theinteractive chat module312 may indicate that the name is available. The computer system via theinteractive chat module312 may then assign that name to the chat session at the request of the user. Determining, by the computer system via theinteractive chat module312, whether a proposed name exists may be done via one or more matching algorithms using a similar or a substantially similar formula, algorithm, process, etc. as used by the computer system to determine whether other users are searching or have searched the substantially similar search query as the initiating user. As described herein, by naming the chat session, one or more other users may search for the chat session name or a name similar to the chat session name. In which case, as described below, thealert module324 may provide a notification to one or more users associated with the searched chat session. In some embodiments, the alert may only be provided to the originator of the chat session while in other embodiments the alert may be provided to any other user associated with the chat session (e.g., one or more participants of the chat session, all of the participants in the chat session, etc.).
In some embodiments, a user may make comments about a website (e.g., certain universal resource locator address) related to asearch result2509 from thesearch results page2500. The comments may automatically be posted in chat rooms/sessions which are related to the website and/or keywords associated with the search query and/or website. The comments may be entered in a field which is displayed when a user mouses over or selects a search result or icon associated with the search result. The computer system may receive the comment and based on information from the user device determine which website and/or keywords are related to the comment. Based on the related website and/or keywords, the computer system automatically causes the comment to be displayed in one or more relevant chat rooms/sessions. For example, chat rooms/sessions may be stored inmemory308 as a tuple with keywords and/or websites which correspond. The computer system may cross reference this information with the received information to determine which related chat rooms/sessions in which to post the comment.
The search resultspage2500 may further include atalk list2518. Thetalk list2518 may include a startnew talk button2521. The startnew talk button2521 operates in a similar fashion to thestart talk button2519 discussed above. The startnew talk button2521 starts a new chat or causes the user to join an existing chat related to the search (e.g., one or more keywords included in the search). Thetalk list2518 displays a list of chat sessions already in progress and/or already created which are related to one or more keywords contained in the search query (e.g., the chat title or chat content contains a predetermined number of keywords from the search query and/or related keywords). The keywords from the search query found in the title of the chat session may be bolded, color coded, underlined, or otherwise indicated in thechat session title2523 displayed in thetalk list2518. Each entry in the talk list may include one or more ofchat session title2523, an indication of the time since the chat session has last been modified2525 (e.g., a user has posted a comment), an indication of the number of users participating in thechat2529, and/or an indication of the number of expert users participating in thechat2531. A user can click on a listed chat session in order to join the chat session (e.g., a request is sent to the computer system which sends instructions to the user device to display the chat session). In some embodiments, the first chat listed in thetalk list2518 is a chat based on the location of the user device. The user device may provide location information (e.g., GPS coordinates, IP address, and/or other location information) to the computer system as part of sending a search query. The computer system may use the location information to generate the chat based on this location data to include other users within a predetermined area or distance from the user. This location based chat may be further restricted to users searching for the same or similar keywords. Alternatively, this location based chat session may include nearby users irrespective of the keywords being searched by these users. Advantageously, this allows users to easily identify other users in the same area with which to chat.
In some embodiments,search results page2500 includesuser list2533.User list2533 includes a list of users searching for the same or similar keywords.User list2533 is generated based on instructions from and information stored in the computer system. For example, the computer system may maintain a database of all recent searches conducted by users organized as tuples of users and keywords. When a search query is received from a user and prior to generating thesearch results page2500, the computer system may process the search query to identify one or more keywords. Based on the identified keywords, the computer system cross references the identified keywords with the database of recent searches to identify users searching for similar keywords. Theuser names2539 and associated profile pictures are sent to the user device along with the instructions for generating thesearch results page2500. In some embodiments, 10 users searching for similar keywords are displayed inuser list2533 by default. Theuser list2533 may be scrolled to view additional users. In other embodiments, other numbers of users are displayed by default. Advantageously, users searching for similar keywords are automatically displayed to a user alongside the results of the user's search. A user is not required to setup an alert or other notification request for user's searching for similar search results. The list of users searching for similar keywords allows a user to quickly and easily identify other users which whom to chat about the search.
For each user displayed in theuser list2533, theusername2539,online status2541,user rating2543, number of comments made by theuser2545, time at which the user last commented2547, and/or other information is displayed. When a listed user in theuser list2533 is clicked, the graphical user interface displays an option to initiate a private chat with the selected user (e.g., transmit a private chat request to the user). When this option is selected (e.g., clicked) the user device sends a request to the computer system which transmits a request for a private chat to the user device associated with the second user with whom the first user wants to chat. In some embodiments, clicking on the profile picture or name of the user in theuser list2533 causes the computer system to display the profile of that user. In some embodiments, the option for initiating a private chat is displayed when a user mouses over the listed user inuser list2533. In some embodiments, when a user clicks on or mouses over a user in theuser list2533, an excerpt of the listed user's last post related to the one or more keywords in the search query is displayed in place of the statistical information related to the listed user.
In some embodiments, theuser list2533 includes tabs which organize the users in theuser list2533. Selection of afirst tab2535 may cause theuser list2533 to display users searching for similar keywords as described above. Asecond tab2527, when clicked, may cause theuser list2533 to display a list of expert users who are associated with the keywords contained in the search query. A list of experts identified with each keyword is maintained by the computer system (e.g., stored in memory308). A user may become an expert associated with a keyword in a variety of manners. For example, a user may be identified by the computer system as an expert associated with a keyword if the user claims a website or name associated with the keyword. In some embodiments, a user may become an expert user associated with a keyword by receiving a predetermine number of up votes for comments made in chat sessions associated with a keyword. In further embodiments, a user may become an expert with respect to a particular keyword by applying to be one through the computer system. In still further embodiments, a user may indicate that he or she wishes to become an expert for a keyword and may send requests to friends or other users to identify him or her as an expert. Upon receiving a predetermined number of identifications, the user is identified as an expert with respect to that keyword by the computer system. In still further embodiments, a user can self-designate as an expert by providing keywords to the computer system (e.g., via the graphical user interface) for which the user wants to be identified as an expert.
In some embodiments, the users displayed in user list2533 (e.g., in first tab2535) are displayed based on location. For example, only users who are searching for similar keywords and who are located within a predetermined distance from the user are displayed. In some embodiments, only expert users are displayed under thesecond tab2537 who are within a predetermined distance from the user searching or are within a predetermined area in which the user searching is located (e.g., within the same metropolitan area, the same state, the same country, the same county, the same city, and/or other area). The location of the experts may be determined based on location data received by the computer system when expert users use the computer system, based on information contained in their profile (e.g., where they live or work), based on business addresses associated with businesses, websites, or names which the expert user has claimed, and/or based on other information. In other embodiments, experts identified with the one or more keywords contained in the search query are displayed in thesecond tab2537 regardless of the area in which the experts are located or their distance from the searching user.
In some embodiments,search results page2500 includesrecent results field2420.Recent results field2420, while displayed on thesearch results page2500, includes recently active chat rooms which are related to one or more keywords contained in the search query. Chat rooms may be designated by the computer system as recently active based on one or more factors such as a comment being posted within a predetermined time period, the chat session or group being created within a predetermined time period, and/or other factors. When a search query is received from a user device, the computer system may determine the keywords contained in the search query and compare them to a database of recently active chat sessions or groups corresponding with the identified keywords. Included in the instructions and information provided to the user device from the computer system may be instructions and information which cause the user device to display the recently active chat sessions in therecent results field2420. When a user clicks or mouses over a listed currentlyactive chat2549, the user is prompted to join the chat session, and can click to accept or decline. Based on the selected option, the user device provides the computer system with instructions on generating a chat session (e.g., as illustrated inFIG. 26).
Referring now toFIG. 26,chat page2600 of the graphical user interface generated by a user device according to instructions from the computer system is illustrated according to one embodiment. Thechat page2600 may be generated and be caused to be displayed by the computer system based on the occurrence of one or more of the actions previously described herein. For example, a user may click an option to join a chat session presented on the search results page, a user may select an option to start a new chat session (e.g., an option found innavigation bar2402 or search results page2500), or otherwise provide an instruction to the computer system, via an input of the graphical user interface, to join or create a chat session. The computer system includesinteractive chat module312 to facilitate and perform the functions of the chat described herein throughout.
Chat page2600 includes a header which in turn includes the title of the chat session or room. The header may also include one or more of an indication of the number of messages/comments in thechat session2617, asearch button2619, afilter button2621, and/or ashare button2623, a. In some embodiments, clicking the title or an associated icon in the header displays options to allow a user to see members associated with a group linked to the chat session, claim the name of the chat group/session, and/or minimize the chat session.
Clicking thesearch button2619, causes the graphical user interface to display a search field. When a user enters text through the search filed, the computer system searches the messages in the chat session for messages containing the search terms and causes the user device to display a graphical user interface with the search results displayed. Clicking thefilter button2621 causes the graphical user interface to display a filter command bar with options (e.g., buttons, sliders, fields, etc.) to filter the messages/comments in the chat session by whether the message/comment contains a picture or video, whether the message/comment has a rating higher than a certain value, the source of the message (non-friend users, friend users, anonymous users, all users, etc.), the date of the message, and/or by other characteristics of the message. Filtering may be carried out by the computer system based on the filter properties selected in the graphical user interface and received at the computer system. Based on the filter parameters, the computer system may provide instructions to the user device to display an updated and filter list of chat messages/comments. Clicking theshare button2623 causes the graphical user interface to display options to share a link to the chat session via e-mail, social networks, messaging systems, and/or other communication services. Clicking an option causes the graphical user interface to display login options for the service, or alternatively if the user is already logged in or the computer system has stored the login information for use, displays a confirmation button to transmit a link to the chat session. Once a user has logged in, the user is given the option to confirm to share the link and/or options on how the link will be shared using the other communication service.
In some embodiments,chat page2600 includeschat participant list2624.Chat participant list2624 lists all the users which are in the chat session/room. For each user, theparticipant list2624 includes aprofile picture icon2605,user name2603, and user rating2631. When a user mouses over or clicks on a user listed in participatelist2624, an option is displayed which when selected invites the listed user to a private chat session with the first user. The user rating may be calculated and stored by the computer system based on one or more factors such as length of time a user has been a participant in the system run by the computer system; amount of posts, messages, and/or comments made by the user; frequency of posts, messages, and/or comments made by the user; number of friends the user has, number of keywords the user is an expert in; number of times posts, messages, and/or comments made by the user are up voted or down voted; and/or other factors.
In some embodiments,chat participant list2624 includes afirst tab2625 which when selected displays all users in the chat session and asecond tab2627 which when selected displays expert users in the chat session. Each tab may also list the number of that type of user currently in the chat session. In some embodiments,chart participant list2624 further includessearch button2629. When selected,search button2629 causes the display of a field which allows a user to search the list of other users in the chat session for a particular user.
Chat page2600 displays messages2601 (e.g., comments or posts) from users. Eachmessage2601 may include auser name2603 corresponding to the user who posted the message, the time the message was posted, auser profile picture2605 corresponding to the user who postedmessage2601, and/or the content of themessage2607. In some embodiments, the content of themessage2607 may include one ormore images2609, videos, files, and/or text. Text for amessage2601 is entered by a user viamessage field2611. The text and/or other content may be posted as amessage2601 when the user presses the enter key or clicks onsend button2615. When a user clicks on addfile button2613,message field2611 becomes a drag and drop target which allows a user to upload files by dragging and dropping them intomessage field2611.
In some embodiments, a user can mouse overmessage2601 to reveal additional options. For example, when a user mouses overmessage2601 icons allowing for a user to reply to the user who originated themessage2601, up vote themessage2601, down vote themessage2601, delete themessage2601, flag themessage2601 as violating the terms and services of the computer system, and/or allowing for other actions are displayed. When an icon is selected, the user device transmits the corresponding information to the computer system which tracks the information and updates the graphical user interface for all users accordingly.
In some embodiments, the user who originates themessage2601 may be an expert in the field of the search query or interactive chat session, or a person designated to be an expert for one or more sessions, etc. Expert status may be defined in a variety of methods. Expert status may be designated by a user submitting, via the user device, to the computer system a credentialing indicator (e.g., resume, CV, diploma, authored books list, peer-review journal lists, personal endorsements, current or past held jobs, years of experience in a particular job/career, etc.). The computer system may receive the credentialing indicator, determine the authenticity and sufficiency of the credentialing indicator, and provide a notification to the submitting user. Determining the authenticity and whether the particular credentialing indicator(s) is sufficient to be deemed an expert is highly variable. In one embodiment, the computer system may provide the credentialing factor to a third-party authenticating source (e.g., to a doctor authenticating website if the person claims to be a doctor to authenticate the credentials of the submitting user). In another embodiment, designation of an “expert” may be based on receipt of one or more credentialing indicators by the computer system. For example, the user initiating the chat may define that an “expert” is a person who receives explicit approval from the initiating user of the chat session and/or someone who submits a predefined acceptable credentialing indicator (e.g., a diploma from a particular University from a particular timeframe). In still another embodiment, designation of an expert may be via chat-feedback. For example, a particular user may be a member of a three interactive chat sessions: A, B, and C. Interactive chat session A and B are related (e.g., Pets versus Dogs) while interactive chat session C is different (e.g., golf courses). Other users may provide feedback regarding the particular user in each chat session (e.g., click on a thumbs up of the particular user's message, “like” the user's message(s), etc.). If the particular user receives a predefined amount of positive feedback (e.g., ten likes), the particular user may be deemed an “expert” in that session. In another embodiment, the particular user may be deemed an “expert” in all interactive chat sessions that the user is a participant of. In still another embodiment, the particular user may be deemed or designated, by the computer system, an expert in only interactive chat sessions that are related, where “relatedness” may be determined via the computer system using similar principles, methods, strategies, formulas, algorithms, and the like as those used to determine the number of other users searching a “substantially similar” search query.
If the user who originated themessage2601 is an expert in the field,message2601 may appear in at least one of a different font, color, or size (or any other differentiating indicator) than messages from non-expert users. To that extent, an expert'smessage2601 may also be set off by highlighting, bordering, or any other symbol, sign, or design. Different colors, fonts, or other indications onmessage2601 may signal that the expert who submitted the message is of a particular type, level, or other characteristic. Different kinds or levels of experts may be distinguishable by the visual traits of a postedmessage2601.Message2601 may also display a distinctive visual feature for other groups or classifications of users.
In some embodiments, designated or determined experts by the computer system may also include the providing of one or more privileges to the designated expert. The privilege may include an ability to filter the interactive chat session, such as removing content at their discretion, generally moderating the chat session, opening/closing the chat session to additional users, providing invites to join the chat session to other users, and the like. It should be understood that the aforementioned list is not meant to be limiting as the present disclosure contemplates other, additional, and/or different privileges that may be provided to the expert by the computer system.
In some embodiments,messages2601 which contain other keywords are automatically posted in other relevant chat rooms/sessions when submitted in one chat room/session using message filed2611. Themessage2601 is transmitted to the computer system which then causes the graphical user interfaces of other user devices to be updated to reflect themessage2601. The computer system usesinteractive chat module312 to format instructions to be sent to the user devices of other users in the chat session. The instructions cause the content ofmessage2601 to be displayed in the graphical user interfaces of the other user devices. The computer system may analyze received message content to determine if other relevant keywords are contained in the message content and may automatically cause themessage2601 to be displayed in other relevant chat rooms/sessions based on the keyword content of the message.
Referring now toFIG. 27, talkslist page2700, as generated on a user device according to information and instructions provided by the computer system, is illustrated according to one embodiment. Thetalks list page2700 is caused to be displayed on the user device by the computer system when the user clicks thetalks button2409 onnavigation bar2402. Clickingtalks button2409 causes the user device to request the page from the computer system. In response, the computer system sends instructions and information to the user device to cause the display oftalks list page2700. The computer system stores inmemory308 the chat rooms/sessions in which the user has commented or posted a message. This information is used along with the transmitted instructions to cause the user device to generatetalks list page2700 which lists all, or in some embodiments a subset (e.g., recently commented in chat rooms/sessions), in which the user has commented (e.g., posted a message).
Chat list page2700 may display chat rooms/sessions in which the user has commented under one ormore tabs2701. For example, one tab may correspond to, and when selected display in the graphical user interface, chat rooms/sessions in which the user has recently posted a message or otherwise commented. In some embodiments, selection of another tab causes the display of chat rooms/sessions corresponding to a claimed website, name, or group which the user has claimed. In some embodiments, selection of a third tab causes the display of all chat rooms/sessions in which the user has posted a comment (e.g., a message).
In some embodiments, chat sessions displayed under each tab are organized into afirst column2703 showing public chat sessions in which the user has commented and asecond column2721 showing private chat sessions in which the user has commented (e.g., chat sessions in which there are only two participants, the user and a second user). In each column a startnew talk button2705 is included which, when selected, causes the computer system to initiate a new chat session, public or private depending on which startnew talk button2705 is selected.
Each talk (e.g., chat session)2707 may be listed with the title of thetalk2711, an indication of the last time a message or comment was posted in thechat session2713, an indication of the total number of messages or comments posted in thechat session2715, an indication of the total number of users which have posted in thechat session2717, and/or an indication of the total number of expert users participating in thechat session2719. Each talk listed may also be listed alongside achat icon2709 which when selected causes the display of thechat page2600 corresponding to the listed talk2707.
In some embodiments, thechat list page2700 includes achat management pane2722.Chat management pane2722 lists invitations for the user to participate in existing chats under invites tab2733. Each chat may be listed with the title of thechat2729. When a user clicks, or in some embodiments mouses over a listedchat2729, the graphical user interface displays an accept and a reject button which when clicked accept the invitation and cause the user to join the chat and reject the invitation, respectively.Search button2727, when clicked, causes the display of a search field which allows a user to search the content of the listedchat sessions2729.Chat management pane2722 may also list outstanding requests by the user to join existing groups or chat sessions underrequests tab2725. Requests may be similarly listed and/or searched.
Referring now toFIG. 28,friends page2800, as generated by a user device according to instructions and/or information provided by the computer system, is illustrated according to one embodiment,Friends page2800 is caused to be displayed when a user selectsfriends button2411 fromnavigation bar2402. The computer system maintains a database of the other users who are friends of the user (e.g., stores the database in memory308). The computer system updates the friends database as instructions are received from users devices on which users accept friend requests. The instructions are received vianetwork interface302 and processed usingprocessing circuit304.
In some embodiments,friends page2800 includes twotabs2801 corresponding to existing friends and friend recommendations. The recommendations tab may be labeled “find people.” When a user selects this tab, the graphical user interface is updated to include information about other users who are not already friends with the user. For example, the information displayed may be suggests of other users with whom the user may desire to be friends. This list may be generated using a plurality of factors such as determining friends of a user's existing friends, users who participate in a predetermined number of chat sessions in which the user also participates, cross reference of profile information between the user and the other users, close geographic location of the user and the other users, and/or other factors. The computer system may carry out the analysis of other users and determine whether to list them on the graphical user interface usingprocessing circuit304. A user may select listed users to view additional information about the user and/or send a friend invite to the other user.
Under the tab corresponding to existing friends, the graphical user interface displays a list of the user's existing friends. This database is maintained by the computer system (e.g., stored inmemory308 and updated based on instructions received via network interface302). The list of existing friends may be made up ofindividual friend listings2805. Each friend listed2807 may include may include aprofile picture2809 of the user, name of theuser2811, anduser type icon2813. Theuser type icon2813 may indicate information about the user such as whether the user is a new user (e.g.,user type icon2813 is an underlined “T”) or an expert user (e.g.,user type icon2813 is a pair of glasses over a book). In further embodiments, other user types (e.g., experienced user, moderator, etc.) may be indicated with furtheruser type icons2813. In some embodiments, when a user mouses over a listed friend2807 a plurality of options may be displayed which allow a user to unfriend the friend, being a private message (e.g., chat session) with the friend, invite the friend to a group, block the friend, report the friend, or take other action. In some embodiments,friends page2800 includes addfriend button2803 which, when selected, causes the graphical user interface to display options for adding a friend (e.g., searching for a user name and adding a selected user). In some embodiments,friends page2800 includes a startgroup chat button2815 which, when selected, prompts a user to select friends to be included in a group chat session and causes the user device to transmit and instruction to the computer system to initiate the group chat session with the selected users. The computer system creates the group chat session usinginteractive chat module312.
In some embodiments,friends page2800 includes a friendinvite management pane2816. Friendinvite management pane2816 lists friend invitations the user has received underinvites tab2817. Each invite may be listed with the name and profile picture of the user requesting to be friends with the user. When a user clicks, or in some embodiments mouses over a listed friend invite, the graphical user interface displays an accept and a reject button which when clicked accept the invitation and cause the computer system to add the users to their respective friends database t and reject the invitation, respectively. Friendinvite management pane2816 may also list outstanding friends requests by the user to other users under sentrequests tab2819. Requests may be similarly listed with the user name and user profile of the users to which friend requests have been sent.
Referring now toFIG. 29,user profile page2900, as generated by instructions and/or information received at a user device from the computer system, is illustrated according to one embodiment.User profile page2900 may be displayed when a user clicksuser profile button2405.User profile page2900 includes options for modifying the settings of the computer system with respect to the user and/or viewing information about the user stored by the computer system. In some embodiments,user profile page2900 includes theprofile picture2901 associated with the user and stored on the computer system, auser rating2903 maintained by the computer system, and/or auser type icon2907. The user rating may be influenced by the factors described herein (e.g., number of user comments which have been up voted or down voted and number of votes, expertise with respect to keywords, claimed websites, number of friends, etc.) and/or other factors. Theuser type icon2907 is determined based on the factors described herein (e.g., user type, expertise, etc.) and/or other factors.User profile page2900 includespicture button2905 which allows a user to upload a new profile picture to the computer system.
Theprofile page2900 lists the user's personal information including name, nickname, e-mail, and/or other information. A user may change privacy settings which control to which other users this information is available by selecting theprivacy icon2909 which corresponds to each piece of information. Settings are conveyed using different icons and may include visible to all, visible to friends only, visible only to the user, visible to registered users of the computer system, and/or other settings. Theprofile pate2900 may further includeoptions2911 for controlling notifications which are sent to the user device by the computer system upon the occurrence of certain events (e.g., the user receiving a friend request, the user receiving an invitation to chat, a new message being posted in a chat session in which the user is participating, the user receiving a new request for a private chat, and/or other events). The profile page may further includeoptions2913 for managing a user's password.
In some embodiments, theprofile page2900 further includesprofile information pane2914.Profile information pane2419 may display further information about the user under one or more tabs. In some embodiments,information pane2914 includes badgedtab2915 which when selected displays the badges that the user has earned through achieving certain achievements (e.g., making a first post or comment, becoming friends with a predetermined number of users, becoming an expert, etc.). In some embodiments,information pane2914 includesstatistics tab2917 which displays statistics about the user. For example, the statistics displayed may include the number of talks (e.g., chat sessions) the user has joined, the number of friends the user has, the number of likes or up votes the user's posts or messages have received, the number of messages the user has posted in chat sessions, a ranking in comparison to other users based on the user's rating, and/or other statistics.
Referring now toFIG. 30,events page3000, as generated by a user device according to instructions and information from the computer system, is illustrated according to one embodiment. In some embodiments,events page3000 listsevents3001 which have occurred. For example, the listed events may include friend requests being accepted or declined by other users, mentions of the user by other users, invitations to chat sessions, being unfriended by other users, and/or other events. The listed events may be listed in chronological order. In some embodiments,events page3000 includesmessage list3003 which chronologically lists messages sent to the user. The messages may be in private chats in which the user participates and/or replies to messages that a user has posted in a chat session (e.g., a public talk).
In some embodiments,events page3000 further includesalarms panel3004.Alarms panel3004 includes options and information related to talks (e.g., chat sessions) which the user is following or in which the user participates and other users are following. These options and/or information may be organized undertabs3005 and3007, respectively. Underfollowed tab3005, addalarm tag button3009 is displayed. When a user clicks addalarm tag button3009, a user may select a chat session to follow. The user may select from a list of recent chat sessions in which the user has participated or viewed. In some embodiments, a user may also follow a chat session by typing and submitting as a message the word “tag,” which causes the computer system to add the chat session to the list of chat sessions the user is following. In some embodiments, the word tag does not appear as a visible message to other users in the chat session. The computer system receives the message, identifies the content as “tag” and rather than causing the message to be displayed, identifies the chat session and the user sending the “tag” message and adds the chat session to a database of followed shat sessions for that user. The computer system determines when new messages are received in the followed chat sessions and provides this information to the user device such that it is displayed onevents page3000 inalarms panel3004. For example, a user's followed chat sessions are displayed byname3011 and include an indication3013 of the number of new messages which have been posted since the user last viewed the chat session. Notifications may also be sent to the user. Similar information may be provided under followingtab3007 for chat sessions in which the user is participating and which other users are following. A user may click on a listed chat session, or is some embodiments mouse over the listed chat session, to cause the display of an option to stop following the chat session. When selected, an instruction is sent from the user device to the computer system which causes the computer system to remove the chat session from the database of followed chat sessions.
Referring now toFIG. 31, a flowchart of a method of providing alerts to a user by a computer system based on search queries of other users is shown, according to one embodiment. Among other purposes,process3100 facilitates the tracking, monitoring, and management of search queries provided by other users relative to the interests, desires, and predefined terms of interest provided by an initiating user. Beneficially,process3100 may be used to facilitate the identification and connection of two or more users who are interested in the same or similar topics. In this regard,process3100 may facilitate the exchange of information and content between the two or more users to allow the two or more users to have, e.g., their questions answered, a person to chat about similar interests, and potentially a friendship initiation. According to one embodiment,process3100 may be implemented using a computer system, such as that shown inFIGS. 1A-4C. More particularly, according to an example embodiment,process3100 may be implemented using themarketplace server102 and one or more modules shown therewith. In this regard, to aid explanation ofprocess3100, reference is made to themarketplace server102 during explanation ofprocess3100. Further explanation ofprocess3100 is also provided byFIGS. 32A-39, such that additional features of one or more processes ofprocess3100 may be elaborated upon in regard to one or more ofFIGS. 32A-39.
With the above in mind, a brief description ofprocess3100 is described herein with a more detailed explanation provided in regard toFIGS. 32A-39. Atprocess3102, a first keyword indicative of a first topic of interest that an initiating user desires to follow is received. In one embodiment, the first keyword corresponds with a first search term (e.g., words, phrases, or any other search term corresponding to a search query). In another embodiment, the first keyword corresponds with a name or other identifier of an interactive chat session (e.g., as provided by the interactive chat module312). In still another embodiment, the first keyword may include a combination of a first search term and an identifier of an interactive chat session. The “desire to follow” generally refers to the capability of the computer system of providing the user an ability to track, monitor, and observe activity (e.g., online search activity) regarding one or more first keywords. Accordingly, a user may determine whether one or more of their predefined topics of interests (e.g., via the first keyword(s)) are trending in popularity, decreasing in popularity, and/or the general feeling surrounding/regarding those topics of interests. As alluded to above, the first keyword may include one or more phrases, words, values, etc. that the initiating user is interested in. In operation, a user may enter a search query the user wishes to follow via theuser interface218 throughinput devices214, which is received by the alert module324 (see, e.g.,FIG. 3). Followed keywords (e.g., first search keyword) may be stored inalert module324 withinmemory308. Further, the followedkeyword module432 may store the followed search terms along with any other accompanying information. For example, and explained more particularly in regard toprocess3110, a user may wish to receive notifications immediately for an exact match (e.g., the search term to follow is “the high school career of Person X” and if a second user searches “the high school career of Person X” then the initiating user receives an alert immediately or nearly immediately); within a prescribed time frame for matches seventy-five percent or better (e.g., matching at least three out of the four predefined search terms); and any other configuration. In some embodiments, the followedkeyword module432 may keep running totals of search query statistics, including how many users searched a particular keyword and the frequency and timing of those searches, the geographical origination of those searches, the identity of the users, etc.
Atprocess3104, a second keyword indicative of a second topic of interest for facilitating a chat session about is received by the initiating user via, e.g., the graphical user interface of the user device. The second keyword may have the same or similar configuration as the first keyword (e.g., be configured as a search term, an identifier of a chat session, and/or a combination thereof). In one embodiment, the second keyword allows others to contact the initiating user regarding is received. In comparison to process3102, the second search term is intended to, among potentially other purposes, facilitate an interaction between the initiating user and another user(s) searching the second keyword or term substantially similar to the second keyword. Similar to the followed search term feature ofprocess3102, thenetwork interface220 may be configured to communicate with thenetwork250 to convey the entered search term to marketplace server102 (see, e.g.,FIG. 3).Marketplace server102 may store the selected search queries inclient account module316 and/or followedkeyword module432. In one embodiment, selected keywords may be stored inclient account module316 withinmemory308. Theclient account module316 may associate a selected keyword with the relevant user, such that the selected keyword appears when other users view profile information for that user. In one embodiment, the contact-me search terms (e.g., the second search terms) may be based on a friend (e.g., associated contact) of the user. For example, referring toFIG. 28, a friend's selected keywords, if any, may be displayed in or near each friend listed2807. In another embodiment, theadd friend feature2803 may be configured to allow users to add friends based on the keywords those users selected in a user contact window, such as user contact page3211 (see, e.g.,FIG. 32A).
Atprocess3106, a search query (e.g., keyword, chat session identifier such as a name of a chat session of interest, etc.) from a second user is received. Atprocess3108, the search query from the second user is determined to be substantially similar to the first keyword. In response, atprocess3110, an alert is provided to the initiating user, which is described in more detail herein below. The alert may be indicative of the fact that another—the second—user searched the first term or keyword and, in some embodiments, may facilitate the generation of an interactive chat session between the first and second users. The alert may include, but is not limited to, at least one of a text message, an e-mail message, a phone call, an alert notice next time s/he logs onto themarketplace server102, and so on. In regard to the notifications or alert, the alert may be provided to an email address, phone number, etc. associated with the initiating user (e.g., stored in the memory308). In regarding to determining substantial similarity (e.g., process3108), searchquery analysis module434 of the alert module324 (seeFIG. 4C) may be configured to receive an initiating user search query and associate it with followed search terms. Searchquery analysis module434 may receive a search query from a user device vianetwork250 indicative of a search query from a second user. In some embodiments, searchquery analysis module434 receives the search query viasearch engine module310. Searchquery analysis module434 may then compare the search query of the second user to the followed keywords stored in followedkeyword module432. Searchquery analysis module434 may determine matches between the search query and the followed keywords based on one or more matching algorithms, formulas, processes, and the like. In this regard, determining substantial similarity may be in accord with the principles and methods described herein above in regard to determining the number of users searching the substantial similar topic (e.g., search term).
In some embodiments, the searchquery analysis module434 may determine gradations of a match between the second user's search query and the first search term(s) of the initiating user. Based on the determined gradation (e.g., level indicating match percentage), different notifications (e.g., alerts) may be performed by thealert module324. For example, for one-hundred percent match, the initiating user may receive a notification immediately. In another example, if the match is determined to be between 50 and 75 percent, the initiating user may receive a weekly or other predefined time period regarding the second user's search query. In still other embodiment, thealert module324 may be configured to filter out or not notify the initiating user for matches less than a predefined percentage (e.g., fifty percent). This configuration may be utilized for popular search terms, such as the NFL® (i.e., National Football League), where the initiating user may otherwise be inundated with alerts if not otherwise filtered in order to substantially only notify the user of potentially close matches. In another example, on the initiating user's profile page or screen (or another designated window provided by the marketplace server102), a list of all the matches and their corresponding degree of match may be provided to the user such that the initiating user may selectively examine the search term of the other users relative to the first search term. In some embodiments, the user may then provide an indication (e.g., clicking on the search terms of other users) of interest to further refine the first search terms (e.g., to go from “pet store in Wisconsin” to “pet stores in Wisconsin specializing in organic food for Labrador puppies”).
More particularly and with reference toFIG. 4C, theuser notification module436 may be configured to receive information about the search query and matching followed keywords from searchquery analysis module434.User notification module436 may combine this information with information about each user's followed keywords stored in followedkeyword module432.User notification module436 may thereby determine which users follow the search query.User notification module436 may be configured to then send notifications to the user or users following the search query, update thealerts page3200, or inform the user or users in another way.User notification module236 may contactclient account module316 to configure the notification or other alert according to saved user preferences.
In certain embodiments, the notification may be based on one or more predefined notification settings that are particular to each of the one or more first search term. For example, a user may wish to be immediately notified forSearch Term1, notified monthly forSearch Term2, etc. The predefined notification settings may also include the communication notification protocol associated with each search term (e.g.,Search Term1 corresponds to text message notification,Search Term2 corresponds with e-mail notification, etc.). Advantageously, specifying these predefined notification settings via thealert module324 may facilitate relatively quick identification and observation surrounding each search term predefined viaprocess3102.
Alternatively, the computer system viaalert module324 may determine that the search query from the second user is substantially similar to the second search term (process3112) rather than the first search term. In response, atprocess3114, an alert may be provided to at least one of the first user and second user to facilitate and allow the second user to contact the first user regarding the second search term; or, vice versa, facilitate and allow the initiating user to contact the second user. In this regard, the initiating user may specify a setting that only allows the initiating user to contact the second user. In another embodiment, either one or both of the initiating user and the second user may contact each other via thealert module324 andinteractive chat module312. Determining substantial similarity may be based on the same or similar principles as described above in regard toprocess3108 and in regard to determining when other users are searching or having searched substantial similar search terms herein above.
In certain embodiments,process3100 may further include determining that the second user's search term is not substantially similar to either of the first and second keywords. In this case, thealert module324 may also provide an indication to the initiating user that no other user (or a number of users below a predefined threshold, such as ten) has searched terms substantially similar to either of the first and second search terms within a predefined time period. Thealert module324 may then prompt the initiating user (e.g., via an alert or notification) to refine or modify at least one of the first and second keywords to potentially increase the level of “hits” or activity surrounding at least one of the first and second keywords. In this regard, thealert module324 may provide a dynamic response to the user in response to the activity of other users.
With the above description ofFIG. 31 in mind, referring now toFIG. 32A, a graphical depiction of processes3102-3104 is shown, according to one embodiment. In this example, processes3102-3104 are depicted in a single window (e.g., webpage, etc.) as analerts page3200. Thealerts page3200 may be generated by thealert module324 of the computer system and provided to a user device associated with a user associated with themarketplace server102. Thealerts page3200 may include options for alerts based on keywords, where the keywords may include the first and second keywords as described above. As shown, thealerts page3200 includes a followedkeywords panel3201 and a user contact page3211 (also referred to herein as notification page or panel3211). As also shown, each of the followedkeywords panel3201 anduser contact page3211 are generated and displayed on a shared page. However in other embodiments, theuser contact page3211 and/or thekeywords panel3201 may be located on a different window, a pop-up window (e.g., generated via a link on the other page), and any other configuration.
The followedkeywords panel3201 includes options and information related to search terms which the user is following. As such and in this regard, the followedkeywords panel3201 corresponds withprocess3102. In an exemplary embodiment, when a user clicks the addalert tag button3205, a user is prompted to enter a search query (i.e., the first keyword). In one embodiment, the add alert tag button3205 (e.g., add alert feature, add alert icon, add alert mechanism, etc.) may open a pop-up window on the user device. In another configuration, a user may simply mouse over the addalert tag button3205. Following activation of theadd alert tag3205, the user may then enter a search term in the pop-up window using an input to the user device (keyboard, touchscreen, or other input method), which is received by thealert module324. In other embodiments, the user may be prompted to enter a search query withinalerts page3200 or other area of the graphical user interface without navigating away from the alerts page or opening a pop-up window. For example, upon selecting the addalert tag button3205, a user may be prompted to input a search query intag box3206. The user may then input a search term using an input to the user device (keyboard, touchscreen, or other input method) to add that term to followedkeyword list3208. Thealert module324 may store (e.g., in memory, via a database, via the cloud, etc.) thekeyword list3208. In other embodiments, the user may be provided with a list or drop down menu of recent searches or substantially similar searches, and may select a search query from that list to add it to followedkeyword list3208. In some embodiments, via theadd alert tag3205 feature, the user may define one or more notification settings associated with one or more provided search terms. As mentioned above, the notification settings may be specific to a search term. Further, the notification setting may be generally applicable to all or mostly all of the search terms provided to and stored by thealert module324.
Via thealert module324, thealerts page3200 may include one or more followedsearch query terms3207, or zero followed search query terms. The followedkeywords panel3201 may also include anindicator3209, wherein theindicator3209 may be a numerical indication of the number of users searching a substantially similar search term and/or that searched the user-identified search term(s) (i.e., the first keyword) in a past predefined time frame, where the past predefined time frame is a user configurable condition (e.g., past six hours, one day, three weeks, etc.). For example, theindicator3209 may be based on a number of users searching within a set amount of time (e.g., one week, one hour), a complete total of all users who ever entered the selected search query, a number of users who searched the search query since the last time the user viewedalerts page3200, or any other statistic. In still other embodiments, theindicator3209 may also include a list of the identities (e.g., user names or other user-identifying characteristic) for the user(s) who searched the substantially search term viaprocess3102.
In operation (e.g., processes3102,3106,3108, and3110), when another user submits a search using a followed search term or a substantially similar term, thealert module324 viaalerts page3200 may present information to the graphical user interface of the user device notifying the user of the occurrence. Theindicator3209 may show the number of users searching that search term and may be updated in real time to notify the user.Followed keywords panel3201 may thereby alert (in accord with the predefined notification settings) a user when another user searches a followed search term or a substantially similar term. As described above, viaprocess3110, notifications may also be sent to the user via email, text message, or other means of communication. Visual notifications may appear on the graphical user interface throughout other pages of the graphical user interface (e.g., a blinking lamp on the side of the search window, etc.). Notifications may also be in the form of sounds generated by the user device in response to instructions from the marketplace server. The present disclosure contemplates any and all other types of notifications that may be used by themarketplace server102 to notify the initiating user of activity surrounding the first search term.
Referring further toFIG. 32A and as mentioned above, thealerts page3200 may includeuser contact page3211. Whereas the followed keywords page is for the user to follow the activity (e.g., online search term activity) surrounding one or more search terms/keywords, theuser contact page3211, via thealert module324, facilitates and allows other users to contact an initiating user based on the one or more other users searching one or more predefined search terms (i.e., the second keyword of process3100). In some embodiments, the reverse configuration is also provided by the alert module324: facilitate and allow the initiating user to contact the other user(s) based on the other user(s) searching substantially similar predefined search terms.
Theuser contact page3211 may include information and options for allowing other users to contact a user regarding a selected search query (i.e., the second search term(s)), such as a preferred contact means (e.g., text message, etc.). Theuser contact page3211 includes add keyword button3215 (e.g., link, feature, mechanism, input device, etc.). In one embodiment, theadd keyword button3215 may open a pop up window on the user device. The user may then enter a search term in the pop-up window using an input to the user device (keyboard, touchscreen, or other input method). In other embodiments, the user may be prompted to enter a search query withinalerts page3200 or other area of the graphical user interface without navigating away from the alerts page or obscuring the graphical user interface with a pop-up window. For example, upon selecting theadd keyword button3215, a user may be prompted to enter a keyword intag box3216. The user may then enter a keyword using an input to the user device (e.g., keyboard, touchscreen) to add that term to selectedkeyword list3218. In other embodiments, the user may be provided with a list or drop down menu of recent searches and/or substantially similar searches, and may select a search query from that list to add it to selectedkeyword list3218.
When a user enters a new search query (for example, viapage2400 or2500 ofFIGS. 24-25), the search query may be communicated to alertmodule324 via thenetwork250.Alert module324 may utilize searchquery analysis module434 to compare that search query with selected keywords stored inclient account module316 or in followed keyword module432 (e.g., process3112). Searchquery analysis module434 may then determine whether any user has selected that search query to be contacted about. If so,user notification module436 may generate a list of users who selected that keyword or substantially similar search query.User notification module436 may be coupled withsearch engine module310 andsearch results module408 to present information on the users device from the list of relevant users on the graphical user interface of the page displaying the search results. For example, referring toFIG. 25, a user from the list of relevant users may be identified as an expert in the field underuser list2533 or under some other designation/classification.User notification module436 may also present the relevant users to the searcher via a pop-up window or any other notification or indication on the graphical user interface. An option to chat with or otherwise interact with the users from the list of relevant users may be provided. The interactive chat session may be configured like the interactive chat session described herein.
Referring now to32B, a graphical depiction of allowing an initiating user to follow (e.g., process3102) or to be contacted about a keyword (e.g., process3104) is shown according to one embodiment. In this regard,FIG. 32B represents and depicts an example graphical user interface for facilitating and using at least certain aspects ofprocess3100. In the example ofFIG. 32B, the graphical depiction is shown as aprompt window3220. Theprompt window3220 may be generated on the user interface via thealert module324 and the followedkeyword module432 after a user selects an alerts button or link on a different page. For example,alert button2642 inFIG. 26 may take a user to promptwindow3220.Prompt window3220 includes a keyword name3221 associated with the previous page in the graphical user interface: for example, selectingalert button2642 onchat page2600 may take a user to aprompt window3220 displaying the name of the chat page in keyword name3221.
Prompt window3220 may includecheckbox3223 for a user to choose to follow the keyword name3221. Selectingcheckbox3223 and pressing the submit button3224 causes the alert module to store the keyword in followedkeyword module432 in a same or similar manner as discussed above.Prompt window3220 may includecheckbox3222 for selecting whether a user wants other users to be able to contact that user regarding the keyword name3221. If a user selectscheckbox3222 and presses submit button3224, the keyword name3221 is stored as a selected keyword inclient account module316 and/or followedkeyword module432 as described above. Prompt window may include cancelbutton3225. Clicking or otherwise selecting cancelbutton3225 causes the computer system to take the user back to the previous page on the graphical user interface.
According to another embodiment, the followedkeywords panel3201 anduser contact page3211 may be combined into one page. In a variation, thealert module324 may generate a single page (e.g., window, panel, etc.) that allows an initiating user to follow one or more predefined keywords (e.g., search terms, chat names, etc.). Beneficially, this may facilitate additional user usage due to not having to navigate through multiple windows, which in turn may increase the likeability of the feature. Further, this may streamline the alert process and ability to monitor keywords by an initiating user. As an example, thealert module324 may generate an alert window comprising a list feature that enables a user to input one or more keywords. The followedkeywords module432 of thealert module324 transmits the one or more inputted keywords to the searchquery analysis module434. Upon receipt of a search query from another user, the searchquery analysis module434 performs a comparative analysis on the search query. If the search query matches or substantially matches the provided keyword(s) based on one more predefined match criteria, the searchquery analysis module434 provides a notification to thealert module324, which generates and provides an alert to a graphical user interface of an initiating user. In this example, alerts are provided in regard to one or more keywords of interest to an initiating user. Beneficially, the initiating user may examine the search activity or general internet activity surrounding the one or more keywords. As in the examples above, the alert may be provided in the form of an e-mail message, text message, and/or indicator on the graphical user interface.
In one embodiment and in regard to the single alert page configuration, the alert page may be provided, via the graphical user interface, from thealert module324 upon an initiating user providing a search query (e.g., via homepage2400 ofFIG. 24). In connection with providing the search results, thealert module324 may provide a prompt to the initiating user asking whether he/she would like to track the keywords used in the search query. In another embodiment, an initiating user may provide the keywords of interest when he/she looks at their profile (e.g., via profile button2405), where one of the options is to provide keywords for following.
Furthermore, as mentioned above in regard toFIG. 24, the home page2400 provided on a user device (i.e., the graphical user interface) may include apublic search toggle2419. As mentioned above, when the public search setting is toggled on, search queries submitted by a user are visible to other users (e.g., visible in therecent searches field2420 of their homepages2400, visible in theuser list2533 of users searching related keywords insearch results pages2500 of other users, etc.). When the public search setting is toggled off, the computer system does not provide user information to other user devices when generating elements of the graphical user interface including information or identification of other users based on searches (e.g.,recent searches field2420 of their homepages2400,user list2533 of users searching related keywords insearch results pages2500, etc.). In regard to the single window alert example, if other users toggle the public search setting off (i.e., initiate a private search setting), the computer system via thealert module324 may not use their queries to determine whether i) the search query is similar or substantially similar to a keyword, or consequently ii) to generate and provide a notification to an initiating user based on the determination. However, if the public search setting is on, then the other user search queries may serve as the basis of providing a notification, via thealert module324, to an initiating user. Further, due to the public search mode, an indication of an identity and/or contact means (e.g., e-mail with an accompanying e-mail address, phone with an accompanying phone number, etc.) may be included in the alert generated and provided by thealert module324. In one embodiment, the contact means may include an interactive chat session established by theinteractive chat module312, such that upon the initiating user receiving the alert he/she can click or otherwise select the an indicator representing the other user who made the search, which in turn facilitates thechat module312 to generate a chat session between the users. The chat session may then be provided to the graphical user interface of each user's device. The chat session may have the same or similar functionality and features as described herein. In one embodiment, to facilitate chat sessions and person-to-person(s) interaction, the default mode may be the public search mode, such that alerts are provided based on the searches of others. However, as described above, via the public search toggle, the users may control which of their searches may serve as the basis of an alert.
As with the other two-panel embodiment, via one or more search settings, users may designate anonymous searching (e.g., private search mode), which may remove an ability of an initiating user to contact that person. However, the setting may still allow the searches of the anonymous searchers to serve as the basis for an alert. In this regard, while an identity of the other user is removed and an ability to contact the other user, the initiating user may still monitor search activity surrounding the one or more keywords. It should be understood that the present disclosure contemplates a wide variety of configurability surrounding the alert feature, with all such features intended to fall within the spirit and scope of the present disclosure.
Referring now toFIGS. 33-35, an audio-video player3401 for use with the graphical user interface provided by themarketplace server102 is shown, according to one embodiment.FIG. 33 shows chatpage2600 with avideo link3301 posted to the chat board by a user represented by profile picture icon2605 (e.g., interactive chat session, etc.). Clicking (or otherwise activating/retrieving the audio-visual content from)video link3301 may open audio-video player3401, generated by the media module322 (see, e.g.,FIG. 3), in the foreground of the graphical user interface as shown inFIG. 34. Audio-video player3401 may then appear in the foreground ofchat page2600, and audio-video player3401 may be moved around the screen using a click-and-drag control feature3403 or a similar input command, which is provided to the user graphical user interface by themedia module322. Audio-video player3401 may be placed anywhere on the graphical user interface. Audio-video player3401 may be resized usingresizing tool3405, which is also provided by themedia module322.
Advantageously, via themedia module322, the audio-video player3401 may continuously play the video (or, more generally, the media content) and be moved about the graphical user interface as a user navigates to different pages on the graphical user interface. For example, if a user watching a video onchat page2600 usessearch button2407 to conduct a new search query that generates a newsearch results page2500, themedia module322 is structured to provide and keep the audio-video player3401 in the foreground of the graphical user interface throughout the entire process. This feature is shown inFIG. 35, where the media content selected by the user is continuously played on thesearch results page2600, relative to the source page that provided the media content inFIG. 33. That is to say, as the user navigates through multiple web-pages supported by the marketplace server, themedia module322 still allows the media content to play via the audio-video player3401. Beneficially, a user may now engage in multi-tasking with respect to participating in an interactive chat session as described herein, searching through multiple webpages, and watching the media content provided by themedia module322.
More particularly, via themedia module322 and in regard to this example, the audio-video player3401 may be opened from a list of search results, group chat, private message, or any other location on the graphical user interface where an option to view an audiovisual work or sound recording may be posted (or any other type of media content). The audio-video player3401 may then display an audiovisual work or audio player in the foreground of the graphical user interface as the user navigates to any page within the graphical user interface including, but not exclusively, the pages shown inFIGS. 23-30 and32A-39. The audio-video player3401 may be moved to any position on the graphical user interface on any page using click-and-drag control3403 or a similar input command. Click-and-drag control3403 may be configured to only appear when a user mouses over or otherwise engages a border of audio-video player3401. Audio-video player3401 may be resized usingresizing tool3405, which may involve stretching the window to any preferred size or choosing from a list of size options.Resizing tool3405 may be configured to only appear when a user mouses over or otherwise engages a border of audio-video player3401. Audio-video player3401 may thereby be placed in any location on the graphical user interface in any size desired by the user. Audio-video player3401 may include audio-video control bar3402 allowing the user to play or pause the audiovisual content, change the volume, play the video in full screen, follow a link to the source of the content, or select another option. Audio-video player3401 may also includeclose button3404 that may be selected by the user to end the operation of a particular instance of audio-video player3401.
In one embodiment, selecting a new video to play while audio-video player3401 is already activated may cause the audio-video player3401 to play the latter selected video. In another embodiment, selecting a new video to play while audio-video player3401 is already activated may open another instance of audio-video player3401 such that more than one audio-video player3401 may be displayed simultaneously. Each of these capabilities are provided by themedia module322.
With that said, additional structure and function ofmedia module322 may be more readily explained with reference toFIG. 3. As shown, themedia module322 is included with themarketplace server102, such that themedia module322 may be communicably coupled to one or more modules also included with themarketplace server102. Themedia module322 may be configured to facilitate the operation of audio-video player3401, may monitor content throughout themarketplace server102 to identify content that involves audio or video, and may generally mange media content activated on and provided on the graphical user provided by themarketplace server102. For example,media module322 may find audio-video content anywhere in the system and reconfigure that content to be compatible with audio-video player3401 and any user device. In another embodiment,media module322 may wait until a user requests audio-video player3401 before configuring a particular video to be compatible with the particular user device. In yet another embodiment,media module322 may rely on a web-based video platform (e.g., YouTube®) to ensure compatibility with a wide range of user devices or to facilitate access to media content.
Media module322 may be configured to receive an indication that a user selected an audio-video work somewhere on the graphical user interface.Media module322 may then launch audio-video player3401 on the user device. Audio-visual content may be downloaded to the user device or streamed online.Media module322 may cause video content to be displayed on the graphical user interface while audio may be output through speakers, headphones orother output devices216 of a user device202 (seeFIG. 2).Media module322 may then continue to operate audio-video player3401 independently of user input to the remainder of the graphical user interface. As mentioned above,media module322 may further be configured to allow a user to manipulate the audio-video player3401 using at least audio-video control bar3402, click-and-drag control3403, resizingtool3405, andclose button3404.Media module322 may thereby give a user significant control over each instance of audio-video player3401.
Referring now toFIG. 26 andFIGS. 36-38, achat window3600 may be provided in the foreground and in any location of any page on the graphical user interface running on the user device. Thechat window3600 may be provided and managed by theinteractive chat module312. As shown, thechat page2600 may include a minimize button2641 (e.g., feature, mechanism, etc.). Selecting the minimize button2641 (e.g., clicking, touching) allows theinteractive chat module312 of the computer system to transfer or translate an interactive chat session into thechat window3600. Selecting the minimizebutton2641 may also cause thechat module312 to allow thechat window3600 to be switched, moved, translated, etc. to a different page, like home page2400. This is shown in regard toFIG. 36, which depicts achat window3600 that appears in the foreground of home page2400.Chat window3600 displays the chat session that was open onchat page2600.Chat window3600 may include all of the content available onchat page2600, or may include less content to fit into a smaller space, and/or additional content (e.g., indicative that thechat window3600 is now on a different home page). As shown, thechat window3600 may include a variety of content, including, but not limited to achat title3602, aprofile picture icon3605, amessage3601, a message times, and/or any other content fromchat page2600 or otherwise prescribed by a user. In this example, the user name(s)2603 are not depicted. However, in other embodiments, theuser names2603 may be included in the content of thechat window3600. As shown,chat window3600 includes amessage field3611 so that a user can send a chat message using thechat window3600 to one or more other participants of the interactive chat session.
As shown inFIG. 38,chat window3600 may remain in the foreground of the graphical user interface as a user navigates to different pages. In an exemplary embodiment,chat window3600 is not a new browser window, but is loaded as part of the graphical user interface as the other pages. More than onechat window3600 may be opened simultaneously to monitor multiple chat sessions.
Via theinteractive chat module312, thechat window3600 may include several options for manipulating thechat window3600.Chat window3600 may include click-and-drag device3629 to allowchat window3600 to be moved around the screen and positioned anywhere the user desires. Click-and-drag device3629 may be hidden until a user mouses over or otherwise engages a border ofchat window3600.Chat window3600 may include aresizing tool3627 to allowchat window3600 to be stretched or compacted to any desired size, changing height, width, or both.Resizing tool3627 may be hidden until a user mouses over or otherwise engages a border ofchat window3600.Chat window3600 may includeoptions button3623. Selectingoptions button3623 may cause several options to be presented to a user. For example,options button3623 may allow a user to see options to return to full-screen chat page2600, view a list of members of the chat session, or other desired options.Chat window3600 may further includeclose button3625 to allow a user to closechat window3600.
Chat window3600 may includecollapse button3621. Selectingcollapse button3621 causes chatwindow3600 to be reduced in size and some of the content to be hidden to create collapsedchat window3700. For example,FIG. 37 shows an exemplary embodiment of acollapsed chat window3700. In this example, thecollapsed chat window3700 only depicts thechat title3602. In other embodiments, additional, different, or less content may be depicted via the collapsed chat window. Further, thecollapsed chat window3700 may includecollapse button3621 that can be selected to re-open thefull chat window3600.Collapsed chat window3700 may also includeclose button3625 andoptions button3623. Likechat window3600, collapsedchat window3700 may include click-and-drag device3629 for repositioning the window anywhere on the graphical user interface.
FIG. 39 is an illustration of asearch window3900 generated on a user device according to instructions from a computer according to one embodiment. The user may be prompted to enter a search query atsearch field3901. The user may selectclose button3903 to return to a previous screen.
In certain embodiments, themarketplace server102 may provide a direct chat feature. The direct chat feature may be provided by theinteractive chat module312. The direct chat feature is configured to allow a user to proceed to an interactive chat session directly from the search query bar via use of one or more search bypass codes. For example, the search bypass code may be “t-[search topic].” When a user enters “t-[search topic],” the marketplace server takes the user directly to the corresponding [search topic] chat session or related [search topic] session. If the corresponding [search topic] session does not exist, themarketplace server102 may provide a prompt to the user asking the user if he/she would like to create a chat session regarding the topic. Advantageously, this permits users to view content and participate in a particular chat readily post engaging with the computer system.
In certain embodiments, themarketplace server102 may also perform the search regarding the provided search topic in addition to bypassing the search results to the interactive chat session. For example, themarketplace server102 may bypass the search results page to the corresponding interactive chat session and, responsive to an input to return to the search results page, themarketplace server102 may take the user to the search results page on the graphical user interface. Beneficially, computing power is used at the outset of the request, such that navigation between the interactive chat session and search results page may require relatively less computing power and thereby increase navigation speed experienced by the user.
It should be understood that “t-” is but one of a multitude of possible search bypass codes that could be used by the marketplace server. All other variations are intended to fall within the spirit and scope of the present disclosure.
Referring now toFIG. 40, a structural arrangement for an interactive chat module, particularly interactive chat module312 (e.g., fromFIG. 3 and reference in regard to other figures herein) is shown according to one embodiment. In the embodiment depicted, theinteractive chat module312, in addition to aforementioned function and structured described herein above, may be configured to display to a user options to either join a previously generated chat session or generate a new interactive chat session between one or more users based on their location. Prior to establishment of the interactive chat session, the initiating user may be directed to a waiting room where he/she may be provided with the option of joining the existing location-based interactive chat session, creating a location-based interactive chat session, or choosing to continue searching in lieu of the creation/joining of the interactive chat session. To accomplish these and other functions, theinteractive chat module312 includeslocation module4000,pooling module4002 communicably coupled tolocation module4000, and location-basedchat module4004 communicably coupled to thepooling module4002. While communication among the modules are described above, it should be understood that the disclosure contemplates other communication exchanges including and in addition to that listed above (e.g.,pooling module4002 communicably coupled to each of the location basedchat module4004 and thelocation module4000, etc.), such that the aforementioned description is not meant to be limiting.
Thelocation module4000 is configured to receive location data provided (e.g., sent, transmitted, etc.) by a user device indicative of a location of a user. The location data may be based on a location positioning system of the user device (e.g., a global positioning system or geolocator that transmits latitude and longitude data), network data such as the IP address of the device, an explicit user input (e.g., “I am in this location” received via a graphical user interface of the device), and the like. The location data pertaining to the user and other users may be stored and categorized in thelocation module4000 and further provided to thepooling module4002. Categorization may organize these users into subsets of user groups based on a variety of characteristics, such as a relevant location (e.g., users within a predefined distance of a particular location), users with similar interests, and other categorical factors for the users.
While in some embodiments location data may be automatically or semi-automatically received from the user device, as briefly mentioned above, in other embodiments, an initiating user may define and explain their location (e.g., via an input on the graphical user interface of the user device). Accordingly, users may be to provide a relatively more accurate description than otherwise provided from location data, such as latitude and longitude. For example, the location data may indicate that the initiating user is at or near Building X, while the user may explicitly define that he/she is in Office A on Floor B of Building X. Thus, while another user may be three feet away from the initiating user, the other user may be in another office or a floor above/below the initiating user. While this other user may geographically be close to the initiating user, this geographic proximity is still impeded (e.g., by the separating floor or wall separating the office) such that the initiating user and other user may not readily (e.g., with little to no effort) physically meet up and talk. Or, as described below, the generated interactive chat session may highly relevant to each user if each user is in the same location, such as the same office of the same building. Accordingly, by describing an initiating user's location and then having that user create an interactive chat session with that description (if one does not exist), theinteractive chat module312 may facilitate invites to other users from the waiting room (described below) into chat session.
Thepooling module4002 is configured to pool (e.g., cluster, group, assemble, etc.) other users based on location for each particular user. In this regard, thepooling module4002 may identify users within a predefined distance of one another. In another embodiment, the pooling may be based on other users that are within a predefined distance of the initiating user. The predefined distance is intended to be a highly configurable term that may vary from application-to-application. As mentioned above, in one embodiment, the predefined distance may refer to the same actual location, where the same actual location may be interpreted to mean having the ability to generate an actual conversation with little to no effort, such as two users in the same office of the same building as compared to two users who are in the same city where they may not readily initiate a physical conversation even though the chat session is interactive. This may be based on each user of the computer system providing explanations and descriptions of where they are physically located. In this regard and in one embodiment, thepooling module4002 may identify other users in the described location and readily exclude users not in the described location. This may be implemented as follows: thelocation module4000 receives a description and/or explanation of the user's location and provides this description and/or explanation to thepooling module4002; and in response, this explanation causes thepooling module4002 to identify other users in the same location and exclude others not in the same location.
In other instances, the initiating user may provide an absolute predefined distance (e.g., within X miles, etc.). In still other instances, there may be a default predefined distance that may be configurable by the initiating user. In still another instance, the predefined distance may be based on topological region lines or a geographic region of interest (e.g., within a particular suburb, within a particular city such that the surrounding suburbs may be excluded, etc.). In this regard, thepooling module4002 may permit an initiating user to draw or otherwise define a region of interest with which thepooling module4002 uses to identify other users within that predefined region. In yet another instance, the predefined distance may be on a population density threshold (e.g., to include the nearest area from which to identify other users from that has a population density above a certain threshold, etc.). In this example, by predefining a population density threshold above a certain threshold, thepooling module4002 may substantially ensure that a relatively large amount of users may be potentially identified in order to increase the richness of the identification. In still another instance, the region defining characteristic may be based on the number of other users itself, which may or may not be location-dependent. For example, a predefined threshold may be to identify the ten (10) closest users (based on geographical proximity) from the initiating user. Accordingly, the identified ten closest users may be within the same region (e.g., city, area code, etc.) or not within the same region of the initiating user. This configurability may be employed to substantially ensure the likelihood of identifying other users if other location-based filters yield an insufficient of identified other users for the initiating user. It should be understood that the present disclosure contemplates other “predefined distance” logic such that the aforementioned list is not meant to be limiting. Further, any of the above definitions may be used independent of or in combination with each other. All such variations are intended to fall within the spirit and scope of the present disclosure.
In one embodiment, thepooling module4002 may use the location data of other users, received by alocation module4000, to identify and determine at least one other user that falls within a predefined distance relative to the initiating user's location. In another embodiment, thepooling module4002 may use profile information for other users logged onto or otherwise using the computer system (or previously logged onto and stored within the computer system) to identify and determine each user's particular location or location(s) relative to the initiating user's location. For example, a particular user may transmit that he/she is in Manhattan while his/her profile indicates that his/her home is in Los Angeles. If a first initiating user is in Manhattan and a second initiating user is in Los Angeles, the other user may be identified for each initiating user. In other embodiments, thepooling module4002 may limit the identification to the real time or substantial real time locations of each user of the computer system (in regard to the above example, the other user would then be limited to Manhattan). In this instance, thepooling module4002 facilitates interactive chat sessions for users in substantially the same location.
As briefly mentioned above, thepooling module4002 may further identify other users who have created a profile with the computer system but are currently offline of the computer system. In this regard, thepooling module4002 may utilize profile data indicative of a location of the other user in order to determine his/her location relative to the initiating user. In this regard, an offline message may be provided to the other user if the initiating user chooses to initiate an interactive chat session with the offline user. The offline message may include a notification (e.g., provided to their profile page or otherwise provided to them next time he/she logs onto the computer system), a text message, an e-mail message, etc.
Thepooling module4002 may also identify previously generated location-based chat sessions (e.g., stored in the memory308) that fall within or substantially within a predefined distance relative to the initiating user's location. In this regard and as described above, by prompting, from thelocation module4000, the users of the computer system to provide a relatively fully explanation and description of their location, thelocation module4000 may readily determine if another user is in, at, or near that other user's location. Accordingly and as also described above, the “predefined distance” may include/be based on a variety of different parameters with the same parameters (as well as any others) being applicable here as well. A “location-based chat session” refers to an interactive chat session that, in one embodiment, relates to a particular geographical location. For example, “luxury cars-San Francisco” refers to an interactive chat session regarding “luxury cars” relevant to San Francisco, where relevant to San Francisco (or, more generally, “relevant to location X”) may refer to the notion that the participants of the “luxury cars-San Francisco” chat session are within the San Francisco region, have identified a region of interest of San Francisco, or some combination therewith. In this regard, the chat session is user-based (e.g., the participants have a tie to the relevant region). In other embodiments, relevant to a location may be based on the topic itself. In regard to the above example, the chat session may be directed to luxury cars in and/or around the San Francisco area independent of the location of the user. In still other embodiments, relevant to a location may refer to some combination of user-based and topic-based logic. All such variations are intended to fall within the spirit and scope of the present disclosure.
Based on the above, thepooling module4002 may identify i) other users within a predefined distance of the initiating user and ii) location-based chat sessions within a predefined distance of the initiating user. Thepooling module4002 may filter and/or otherwise organize and manage the aforementioned identifications in a variety of manners.
In one embodiment, thepooling module4002 is configured to generate a waiting room indicative of at least one of the identified other users with a predefined distance of the initiating and/or the identified location-based chat sessions within a predefined distance of the initiating user. The waiting room generally refers to a graphical indicator comprising at least one of graphical and textual indicators. Accordingly, the waiting room may include one or more lists indicative of the other users and/or the location-based chat sessions (e.g., such as that shown inlist interface4204 inFIG. 42). The waiting room may also include one or more graphical indicators of the other users (e.g., a representative profile picture of a user) and/or location-based chat sessions (e.g., a picture of the chat session topic). In certain embodiments, the waiting room may include any combination of graphical indicators and lists (e.g., text-based indicators) of at least one of the other users and the location-based chat sessions within a predefined distance of the initiating user (as shown ingraph interface4202 inFIG. 42). Additional and other features relevant to the waiting room are described more fully herein below.
Thepooling module4002 is further configured to provide the generated waiting room to a graphical user interface of a user device of the initiating user, wherein the waiting room facilitates receiving a selection to at least one of join the at least one existing interactive chat session and create a new interactive chat session.
Technically and advantageously, because in one embodiment users provide explanation and description information regarding their actual physical location, the waiting room may be an interactive representation of the users in the same or substantially same the location (e.g., as described above, within a distance that could facilitate an actual physical location with little to no effort on the users) who are currently using and/or have used the computer system. As a result, the generated interactive chat session may not only serve to interactively connect users in the same location but also serve to facilitate actual physical interactions between users. Because a username or other indicator representative of the user may be a pseudonym for the particular user, each user may still have the option of substantially remaining unknown despite choosing to join an interactive chat session (e.g., have the ability to forego physically meeting another user). As those of ordinary skill in the art will appreciate, theinteractive chat module312 facilitates richer interactions between users because at least i) each participant in the chat session is connected by their physical location, and ii), that physical location can facilitate a physical interaction to foster and grow relationships between users (if desired).
The location basedchat module4004 may be configured to establish a location-based interactive chat session by providing a chat interface to the graphical user interface in response to thepooling module4002 receiving the selection. The interactive chat session may have the same or similar structure and function to that described herein above (e.g., allow for the exchange of text-based communications). In response to the selection of creating the new interactive chat session, the location basedchat module4004 is configured to provide a prompt to the initiating user (e.g., at the graphical user interface of the user device) requesting bibliographic information regarding the new interactive chat session. The bibliographic information refers to data relating to the new interactive chat session and may include, but is not limited to, a title of the new interactive chat session, a creation date, how long the session is to remain active also known as a lifetime of the session (e.g., three weeks and then the session terminates unless an input to extend its life is received by a designated participant such as the creator of the session, etc.), etc. The prompt may further provide an ability for the initiating user to invite other users to the new interactive chat session. In one embodiment, the invited other users pool come from the identified other users. In another embodiment, the invited other users pool come from any source provided by the initiating user (e.g., via social media, etc.).
In response to a selection to join at least one of the at least one existing interactive chat session (and/or create a new chat session), the location basedchat module4004 may provide a chat interface to the graphical user interface of the user device. The location basedchat module4004 may further be configured to determine at least one of the participant in the existing interactive chat session are currently offline and, in response, provide a notification alerting the offline user(s) that the initiating user has joined the existing interactive chat session. The notification may also include data relating to the initiating user who has just joined the chat session, such as when the initiating user joined the computer (e.g., a member since 20XX visible profile information as designated by the initiating user, etc. Accordingly, the notification may include, but is not limited to, at least one of an e-mail message, a text message, and an alert provided to the offline user when the offline user re-enters the at least one of the at least existing interactive chat session and the computer system itself (e.g., re-logs on, etc.).
Accordingly, as described above in regard to theinteractive chat module312 generally, the location basedchat module4004 may establish and maintain a chat session between two or more users. Additionally, the location basedchat module4004 may establish a chat session for an initiating user wishing to create a chat session, such that the initiating user is the only participant in the chat session until other users also join.
Based on the above, additional features of the waiting room that may provide or facilitate at least some of the aforementioned features can include any of the following. For example, the waiting room may include an indication of a number of participants in each of the at least one existing interactive chat sessions. Furthermore, the waiting room may include at least one of graphical and textual indicators indicative of at least one of: a distance of each identified other user relative to the location of the initiating user; a distance corresponding to a creation location of each identified at least one existing interactive chat session relative to the location of the initiating user; a number of other participants in each identified at least one existing interactive chat session; and an indicator indicative of recent activity in each identified at least one existing interactive chat session. In this regard, the waiting room may include a variety of user-operated functions including, but not limited to (in addition to an ability to create and/or join an existing chat session), an ability to sort through the other users (e.g., based on a criteria of interest to the initiating user, such as currently online users, within a relatively smaller predefined distance relative to the initial predefined distance, etc.), view the identified location-based chat sessions (e.g., the title of the chat session, number of other participants, etc.), and so on.
Referring now toFIG. 41, an example flowchart of a method of displaying to a user options to either join a previously generated chat session or generate a new interactive chat session between one or more users based on their location is shown, according to one embodiment. The operations ofprocess4100 may be implemented using a computer system, such as that shown inFIGS. 1A-4C. More particularly, according to an example embodiment,process4100 may be implemented using theinteractive chat module312 and one or more modules shown therewith. In this regard, reference may be made to the components ofFIG. 40 to aid description ofprocess4100.
Among other purposes,process4100 facilitates the displaying to a user a waiting room where he/she may be provided with the option of joining an existing location-based interactive chat session, creating a location-based interactive chat session, or choosing to continue searching in lieu of the creation/joining of the interactive chat session. This waiting room includes a window, such that the at least one other user and the at least one existing interactive chat session is provided alongside each other (e.g., horizontally or vertically) on the window without requiring the initiating user to browse off of the window (as shown inFIG. 42 andFIG. 43). In this regard,process4100 may facilitate the assimilation of users who are in a shared location to discuss topic(s) of their liking.
Atprocess4102, location data indicative of a location of a user is received. In this regard, the location data may be received by thelocation module4000. Accordingly and as mentioned above, the location data may be based on a location positioning system of the user device (e.g., a global positioning system or geolocator that transmits latitude and longitude data), network data such as the IP address of the device, an explicit user input (e.g., “I am in this location” received via a graphical user interface of the device), and the like. In regard to the explicit input, this input may include a description and/or explanation of the user's location, which may serve to filter users at or near this location or not at or near this location in order to identify the relevant users (and existing interactive chat sessions).
Similar to process4102, atprocess4104, location data indicative of a location of other users is received4000. The location data may be include any of (or other) the location data examples provided above and the like. In one embodiment, the location data pertaining to other users may be stored and categorized in thelocation module4000 and further provided to thepooling module4002. Categorization may organize these users into subsets of user groups based on a variety of characteristics, such as a relevant location (e.g., users within a predefined distance of a particular location), users with similar interests, and other categorical factors for the users.
Atprocess4106, based on the location data for the users and chat sessions, other users within a predefined distance relative to the location of the user are identified (e.g., by pooling module4002). As described above, the “predefined distance” may include/be based on a variety of different parameters with the same parameters being applicable here as well. In one embodiment, a list of other users falling within a predefined distance relative to the initiating user's location is generated by poolingmodule4002. In another embodiment, profile information for other users logged onto or otherwise using the computer system may be used by poolingmodule4002 to identify and determine each user's particular location or location(s). All combinations are intended to fall within the spirit and scope of the present disclosure.
Further atprocess4106, previously generated location-based chat sessions (e.g., stored in the memory308) may be identified (e.g., by pooling module4002) in order to generate another list (or other indicator) of the chat sessions that fall within a predefined distance relative to the initiating user's location. As described above, the “predefined distance” may include/be based on a variety of different parameters with the same parameters being applicable here as well. Also, the “predefined distance”, as described above, may include/be based on a variety of different parameters with the same parameters being applicable here as well.
Based on the above, other users and location-based chat sessions, both of which are located within a predefined distance of the initiating user, may be identified viaprocess4106. These identifications may be filtered and/or otherwise organized and managed atprocess4106 as well. They may be sorted by characteristics including, but not limited to, distance relative to the initiating user, name of users or title of chats, number of messages sent, etc. The lists may be restricted to a predefined number of elements (e.g., users or chat sessions) in order to keep the list from becoming overwhelmingly long. The lists or other identification cluster may be stored by thememory308 for quick retrieval in order to facilitate relatively fast and efficient functionality duringprocess4106.
Atprocess4108, a waiting room indicative of the identified users and the at least one existing interactive chat session is generated. Atprocess4110, the waiting room is provided to a graphical user interface of a user device of the initiating user. This waiting room may facilitate receiving a selection to at least one of join or create an interactive chat session.
Atprocess4112, a user selection indicating a request to join or a request to create an interactive chat session is received (e.g., by a location based chat module4004). Responsive to receiving a user's selection to generate a new location-based chat session, atprocess4114, a prompt is provided by the location basedchat module4004 to the graphical user interface of the user device. The prompt may include a request for the user to submit information regarding the new chat session, such as a chat session title. This prompt may further include the list provided by the earlier generated waiting room, requesting the user to select at least one user from said list, and so on. The requested information may then be submitted to the location basedchat module4004.
Atprocess4116, a new location-based chat session is generated (e.g., by the location based chat module4004) using the provided information. Accordingly, the new location-based chat session may include a title and a list of other users selected by the initiating user to join the new chat session.
Atprocess4118, responsive to receiving a user selection indicating a request to join a previously generated interactive chat session atprocess4112 or responsive to generating a new location-based chat session atprocess4116, the indicated chat session is provided to the assigned users (e.g., the participants) of the chat session by the location-basedchat module4004. In order to provide the chat session to users, the number of offline users may be determined and, in response, may be provided a notification (e.g., an e-mail message, a text-message, etc.) that the initiating user has either joined the existing interactive chat session or created a new interactive chat session by the location-basedchat module4004.
Withprocess4100 described above, example graphical user interfaces that may be used in conjunction with one or more processes ofprocess4100 are shown inFIGS. 42-44. InFIG. 42, awaiting room4200 is shown according to one embodiment. Thewaiting room4200 may include anavigation bar2402 for scrolling through the lists or other graphical indicators of the other users and/or existing chat sessions within a predefined distance of the initiating user. Thewaiting room4200 may be provided to a user device of the initiating user prior to establishment of a chat session. In one embodiment, the initiating user may only view the information shown in the waiting room4200 (e.g., chatting is prohibited).
As shown, thewaiting room4200 includes agraphical interface4202, which displays numerous user profile buttons indicative of a list of nearby users provided byinteractive chat module312. In various embodiments, thegraphical interface4202 may display user profile buttons in various arrangements on thegraphical user interface4202. The user display buttons may be further be accompanied by an indication of the location of the associated user. In one embodiment, this indication may be represented by a user's distance relative to the initiating user. In another embodiment, this indication may be represented by the associated user's description of their location fromlocation module4000.
Thewaiting room4200 may further include a list interface (or other indicator) of existing generated location-basedchat sessions4204. In some embodiments, each assorted location-based chat session may be listed with various indications of session characteristics including the title of thechat session4210, an indication ofdistance4212 relative to the initiating user, an indication of the total number of messages or comments posted in the chat session4214 (or recent activity such as a flashing indicator if a message was just posted within a predefined time period), an indication of the total number of users which have posted in thechat session4216, and/or an indication of the total number of expert users participating in thechat session4218. Each chat session listed may also be listed alongside achat icon4220 which, when selected, sends a request to join the chat session.
Referring now toFIG. 43, awaiting room4300 is shown according to another embodiment. Thewaiting room4300 may include the same or similar functions as thewaiting room4200. However, as shown, thewaiting room4300 has a relatively different arrangement or layout of various features. Similar reference numerals may be used to refer to similar items betweenFIGS. 42-43 (and44). Thegraphical interface4202 showing nearby users may also be arranged in a slightly different way to fit on a graphical user interface of a mobile device. In the example ofFIG. 43, the list interface of previously generated location-based chat session4203 may be displayed belowgraph interface4202, such that, by a user's request via the graphical user interface of the user device (e.g., scrolling down), relatively more of thewaiting room4300 may be revealed/shown. Thewaiting room4300 may further include a menu button4302. In some embodiments, menu button4302 may reveal, when selected, one or more options for the user (e.g., access to their profile and various other settings).
In some embodiments, thewaiting room4300 may further include a createnew location button4304. In some embodiments, createnew location button4304 causes, when selected, the user device to transmit a user's selection to the location basedchat module4004, preparing the location based chat module for receiving information and creating a new location-basedchat interface4400 on the user device (e.g., illustrated inFIG. 44).
Referring now toFIG. 44, createnew location interface4400 is shown to include alocation entry4402 button in this exemplary embodiment.Location entry4402 may allow the initiating user to enter, via the graphical user interface, a location description for the new chat session. A create new location basedchat interface4400 may further include auser list4404 indicative of a list of nearby users.User list4404 may contain a location description associated with each nearby user, as well as a selection box, allowing the user to select which nearby users may be invited to the new location-based chat session. In some embodiments,user list4404 may further contain asearch button4406. Thesearch button4406 may facilitate user searches through the list of identified other users (e.g., based one or more characters of interest such as by user name, rating of the user, etc.).
Createnew location interface4400 further includes a createbutton4408 which, when selected, causes the user device to transmit the location description oflocation entry4402 and the list of selected users back tosession module4004. Location basedchat module4004 may generate a personalized location-based chat session, causing a location-based chat module to provide access to the participants and maintain the chat session for the participants.
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. 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.