Graphical user interface for managing discussion topics

One embodiment of the present invention sets forth a technique for managing discussion topics between two users. The technique involves generating a first graphical user interface (GUI) that displays a listing of one or more users with whom a first user is associated, receiving from a first user a selection of a second user from the listing of one or more users, generating a second GUI that displays a listing of topics that corresponds to both the first user and the second user, receiving from the first user data associated with a first topic to be discussed with the second user, and adding the first topic to the listing of topics.

BACKGROUND

1. Field of the Invention

The present invention generally relates to graphical user interfaces and, more specifically, to a graphical user interface for managing discussion topics.

2. Description of the Related Art

In business and personal relationships, two or more individuals can meet to discuss topics and/or manage projects. Meeting discussions typically include current projects/topics and/or future projects/topics. The discussions can be quite complex and involve several different issues.

Oftentimes, an individual makes reminders to himself or herself of issues or topics to discuss with one or more other individuals at the next opportunity. The issues or topics for future discussion are often realized by the individual at a time when he or she is not presently meeting with the other individual(s) with which the issue or topic is to be discussed. Therefore, the individual needs to document his or her thoughts as a “reminder” to discuss the issue or topic at the next occasion. Examples of forms for making reminders include sending emails-to-self, writing sticky notes, creating calendar entries, and the like. Unfortunately, it can become cumbersome for the individual to manage various reminders, especially when the number of reminders is larger or when the reminders are made in various forms (email, sticky note, calendar entries, etc.). As a result, issues are often overlooked at the next meeting between an individual and the other individual(s) with which the issue should have been discussed.

As the foregoing illustrates, what is needed in the art is a more effective way to manage discussion topics.

SUMMARY

One embodiment of the present invention sets forth a method for managing discussion topics between two users. The method involves generating a first graphical user interface (GUI) that displays a listing of one or more users with whom a first user is associated, receiving from a first user a selection of a second user from the listing of one or more users, generating a second GUI that displays a listing of topics that corresponds to both the first user and the second user, receiving from the first user data associated with a first topic to be discussed with the second user, and adding the first topic to the listing of topics.

Further embodiments provide a non-transitory computer-readable medium and a computer system to carry out the method set forth above.

DETAILED DESCRIPTION

FIG. 1illustrates a networked computer environment in which embodiments of the invention may be practiced. As shown, the networked computer environment includes client computers110(only two of which are shown), web servers120, and databases125. The client computers110, the web servers120, and databases125are connected to one another over a computer network150, e.g., the Internet.

Each client computer110includes conventional components of a computing device, e.g., a processor112, system memory114, a persistent storage device, input devices such as a mouse and a keyboard, touch screen inputs, along with output devices such as a monitor. Each web server120includes a processor122and a system memory124. In one embodiment, each web server120is associated with a corresponding database and manages the contents stored in the corresponding database125. Each web server120is programmed to communicate with the client computers110and other web servers120via the computer network150using a network protocol, e.g., the TCP/IP and/or the HTTP protocol. The client computers110are programmed to execute web browser programs and other software applications (illustrated inFIG. 1as application(s)116) and access the web pages and/or applications managed by the web servers.

In the embodiments described below, users are manipulating and/or operating the client computers110that are connected to the web servers120over the computer network150. In one embodiment, user interfaces in the form of web pages are transmitted from the web servers120to a user's client computer110. The web pages are processed by a web browser program stored in that user's client computer110for display through the monitor of that user's client computer110. In another embodiment, user interfaces are generated by an application executing locally on that user's client computer110, e.g., an application116, and the application116transmits data to and receives data from the web server(s)120.

Each client computer110may be a personal computer, smart phone, tablet computer, or any other device suitable for practicing one or more embodiments of the present invention. It should be noted that embodiments of the present invention can be implemented in hardware, software, or in a combination of hardware and software, e.g., using application specific integrated circuits (ASIC), a general purpose computer, or any other hardware equivalents.

FIG. 2depicts a conceptual diagram200of a user interface for managing a list of individuals with whom a user has topics to discuss, according to one embodiment of the present invention. In the example illustrated inFIG. 2, a GUI202includes a list of individuals201with whom a first user has established topics to discuss, e.g., three topics with Allen Hwang, six topics with Deepshikha Jha, one topic with Richard Maxx, five topics with Steven Thomas, and three topics with Alex Thompson. In one embodiment, the GUI202may further include a list of individuals with whom the user is most likely to have topics to discuss, such as the user's managers and subordinates, which can be determined, for example, by parsing data that defines an organizational hierarchy of the company for which the first user works.

In the example shown inFIG. 2, the topics associated with Allen Hwang, Deepshikha Ja and Richard Max are created by either the first user or the other individuals according to the techniques described below in conjunction withFIGS. 3A-5. The GUI202and the other GUIs described herein are rendered by the application116executing on the user's client computer110. The GUI202also includes a search field203that enables the first user to search for specific individuals with whom he or she is associated, e.g., individuals listed in a company directory to which the application116has access, or personal contacts included in a contacts list to which the application116has access.

To search for an individual, the first user establishes a selection input204within the boundaries of the search field203and enters one or more characters that are included in the individual's name. The selection input204represents a selection made by the first user, e.g., a touch of the first user's finger or a stylus to a touch sensitive display device that is included in the client computer110, or a click of a mouse input device that is attached to the client computer110. When the first user accesses the search field203using any of the foregoing techniques, the application116in turn generates GUI206and searches for individuals based on text input submitted by the first user via the search field203. In the example illustrated inFIG. 2, the first user submits the text “AL” via a virtual keyboard208included in the GUI206, whereupon the application116correspondingly updates the list of individuals201to include only Allen Hwang and Alex Thompson since these the individuals whose names include the text “AL”.

Next, the first user selects one individual from GUI206in order to manage one or more topics to discuss with that individual. Managing topics includes adding, editing, and removing topics. An added topic is initially marked with an “open” status, and can subsequently be marked with a “completed,” “postponed” or “removed” status, the details of which are described in detail below in conjunction withFIGS. 3A-3C. As shown in the GUI206, each of the entries in the list of individuals201includes an edit button210that, when selected by the first user, causes the application116to display a GUI that includes a list of current topics associated with the corresponding individual. In the example illustrated inFIG. 2, the user establishes a selection input212at the edit button associated with Allen Hwang. In turn, the application116displays a GUI302, as shown inFIG. 3A, that includes a list of current topics301associated with the selected individual (e.g., Allen Hwang), the details of which are described in detail below in conjunction withFIGS. 3A-3B.

FIGS. 3A-3Cdepict conceptual diagrams300of user interfaces for managing a list of topics to discuss with a particular individual, according to embodiments of the present invention. As described above, the GUI302is displayed by application116in response to the first user selecting the edit button210associated with selected particular individual (e.g., Allen Hwang). As shown inFIG. 3A, the GUI302includes an add topic section303that enables the first user to submit to the application116text data, video data, picture data, and/or audio data for a new topic that the first user desires to discuss with the particular individual. The application116obtains the text, video, picture, and audio data from various hardware and software resources included in the client computer110being operated by the user, e.g., through a virtual keyboard, a microphone, a camera, and a video camera, and may do so by selecting the media icon352included in GUI302. The GUI302also includes an action button307that enables the first user to perform various operations using the current task list301, the details of which are described in detail below in conjunction withFIG. 4.

The list of current topics301includes topics that have been created by either the first user or the particular individual (e.g., Allen Wang). The example inFIG. 3Ashows a voice memo titled “V. Memo—11/4/2011” created by the first user, a voice memo titled “V. Memo—11/3/2011” created by the first user, and a text memo titled “New topic test” created by the other individual, e.g., Allen Hwang. The first user is able to view video, picture, or audio data of a topic by selecting the play icon350included in each topic entry. The first user is also able to modify the title of a topic by establishing a selection input over the title text included in each topic entry, e.g., “V. Memo—11/3/2011”. The first user is further able to initiate the recording of audio data for a new topic with the other individual by establishing a prolonged selection input (i.e., a press-and-hold on a touch sensitive display device that is included in the client computer110, or a click-and-hold of a mouse input device that is attached to the client computer110) within the boundaries of an entry for that individual included in GUI202or GUI206.

As described herein, the first user is able to mark a topic as open, completed, postponed, or removed. Accordingly, the GUI302includes a context menu305, shown in GUI302inFIG. 3A, that enables the first user to view the list of current topics301, a list of postponed topics309, and a list of completed topics315(illustrated inFIG. 3B).

As shown inFIG. 3A, the first user selects the voice memo titled “V. Memo—11/4/2011” by establishing a selection input304in the respective marker306, which in turn causes application116to display a GUI308. The GUI308includes a modified context menu305′ that displays marking options based on the current view through which the first user is viewing the topics, i.e., the list of current topics301, the list of postponed topics309, and the list of completed topics315. Thus, the modified context menu305′ enables the first user to mark the voice memo titled “V. Memo—11/4/2011” as either a completed topic or a postponed topic, since the topic is presently included in the list of current topics301. A checkbox380is displayed within the marker306of any topic that will be marked as completed or postponed according to input made by the user within the context menu305′. The GUI308enables the user to select additional topics to be marked, e.g., the voice memo titled “V. Memo—11/3/2011,” such that the first user may simultaneously mark two or more topics as completed or postponed. In one embodiment, the application116is configured to display the list of topics associated with the selection that is made by the first user, e.g., the completed list of topics315when the user selects the “Complete” option in the modified context menu305′, or the list of postponed topics309when the first user selects the “Postpone” option in the modified context menu305′. In another embodiment, the application116is configured to display the list of topics that was displayed prior to the user selecting one or more of the markers306, i.e., the list of current topics301.

As described above, context menu305enables the first user to view the list of current topics301, the list of postponed topics309, or the list of completed topics315.FIG. 3Billustrates GUI310, which includes an exemplary list of postponed topics309that is displayed to the first user by application116when the first user selects the “Postponed” option included in the context menu305. As shown, the list of postponed topics309includes a voice memo titled “V. Memo—11/5/2011”, a voice memo titled “V. Memo—11/5/2011”, and a text memo titled “New topic test #2”. As described above, selection of a marker306causes application116to modify the context menu305based on the list of topics that is being displayed to the first user. For example, when the user establishes a selection input311in the marker306for the topic titled “V. Memo—11/5/2011,” the application116in turn displays modified context menu305″ within GUI312, which enables the first user to mark the topic titled “V. Memo—11/5/2011” and any additional topics included in the list of postponed topics309as current or completed.

In addition, the first user may desire to set one or more completed topics back to a current or postponed state.FIG. 3Cillustrates a GUI314that is displayed by application116in response to the first user selecting the “Completed” option included in the context menu305. As shown, a list of completed topics315includes a voice memo titled “V. Memo—11/6/2011,” a voice memo titled “V. Memo—11/7/2011,” and a text memo titled “New topic test 123.” Again, selection of a marker306causes application116to modify the context menu305based on the list of topics that is being displayed to the first user. For example, when the first user establishes a selection input316in the marker306for the topic titled “V. Memo—11/6/2011,” the application116in turn displays modified context menu305,″ which enables the user to mark the topic titled “V. Memo—11/6/2011” and any additional topics included in the list of completed topics310as current or postponed.

Additionally, the first user may desire to remove one or more topics from a list of current topics, e.g., the list of current topics301. In one embodiment, topics included in the list of current topics301can be removed by way of common delete functionality that is particular to the operating system being executed on client computer110. For example, if the client computer110executes the iOS operating system developed by Apple™, then the first user may be permitted to swipe his or her finger in a left-to-right direction across one of the topics included in the list of current topics301, in response a “Delete” button appears within the boundaries of the topic and can be selected by the user to cause the topic to be marked as removed. In turn, the topic is removed from the list of current topics301, but the data thereof may be archived in database125. In this way, archived topics can be reviewed at a later time, e.g., to assist in a performance review of the first user by identifying his or her level of involvement with other coworkers.

FIG. 4is a conceptual diagram400of a first user creating a calendar event for a meeting with an individual or emailing the topics directly to the individual, according to various embodiments of the present invention. As shown, the first user establishes a selection input422at an action button307, which in turn causes the application116to display a context menu423that includes options for the first user to select one of several actions.

In one example, the user selects, via a selection input424, an option to create a meeting based on the list of current topics301. In response, the application116displays GUI426. As shown in GUI426, the application116generates a new calendar event that is automatically configured to include the first user and the other individual associated with the list of current topics301included in the GUI302as participants in the new calendar event. In addition, the list of current topics301may be included in the “Notes” section for the new calendar event. When the first user supplements the information included in the calendar event (e.g., by inputting a meeting title) and/or selecting the “Done” button included in the GUI426, the application116automatically issues an invite to the other individual (e.g., Allen Hwang). The other individual can then response to or modify properties of the meeting (e.g., request a different meeting time/location). If the list of current topics301includes entries that are created using media items (e.g., photo, video, or audio data), then the application116includes the media items as objects that are embedded into the calendar event such that the first user and/or the other individual (e.g., Allen Hwang) may easily locate the media items when they conduct the scheduled meeting. Additionally, the application116may be configured to automatically set a reminder to pop-up on the client computer110for the calendar event. The reminder is set to pop-up according to either a pre-defined time value or according to a preferred time value of the user, e.g., one hour prior to the time of the calendar event.

In another example, the application116displays a GUI430in response to the first user selecting, via a selection input428, an option to email the list of current topics301directly to the other individual (e.g., Allen Hwang). In particular, the application116generates a draft email that is addressed to the other individual's email address, which the application116obtains from local data stored on the client computer110on which the application116is executing or from data stored in database(s)125and provided to the application116by web server(s)120. As shown, the application116may include the list of current topics301in the body of the draft email. If the list of current topics301includes entries that are created using media items (e.g., photo, video, or audio data), then the application116may include the media items as attachments to the email.

Additionally, the first user may select the “Sync with Calendar” option included in the context menu423. When the first user selects this option, the application116updates the “Notes” section of any existing calendar events that include both the first user and the other individual (e.g., Allen Hwang) as participants. In this manner, the first user is not required to repeatedly cancel and recreate meetings each time the first user modifies the list of topics to discuss with the other individual. In some embodiments, the application116updates only the next three calendar events that include both the first user and the other individual as participants when the application116identifies four or more calendar events that include both the first user and the other individual as participants. In one embodiment, the application116determines, prior to displaying the context menu403, whether there are any existing calendar events that include both the first user and the other individual as participants. In this way, the application116can disable the “Sync with Calendar” option within the context menu403when there are no calendar events that include both the first user and the other individual as participants.

FIG. 5is a flow diagram of method steps500for managing a list of discussion topics between two people, according to one embodiment of the present invention. Although the method steps are described in conjunction withFIGS. 1-4, persons skilled in the art will understand that any system configured to perform the method steps, in any order, is within the scope of embodiments of the present invention.

As shown, the method500begins at step502, where an application116executing on a client computer110receives, via input made by a first user, a selection of a second user. As described above in conjunction withFIG. 2, the first user is able to select the second user via a selection input made within the boundaries of a UI entry for the second user included in the GUI202or the GUI206.

At step504, the application116receives, via input made by the first user, data for a new topic to be discussed with the second user. As described above in conjunction withFIGS. 3A-3C, the first user is able to submit the data via add topic section303included in, for example, the GUI302.

At step506, the application116adds the new topic to a list of current topics that corresponds to both the first user and the second user. In one embodiment, application116executes step506by first transmitting the new topic to one or more web servers120, whereupon both the application116that corresponds to the first user and an application116that corresponds to the second user poll the one or more web servers120to refresh the list of current topics. Alternatively, each of the application116that corresponds to the first user and the application116that corresponds to the second user receive a push notification from the web server120that includes the new topic. Subsequently, at step508, the application116that corresponds to the first user displays the list of current topics to the first user, and the application116that corresponds to the second user displays the list of current topics to the second user, where the list of current topics includes the new topic.

Additional techniques for adding new topics to the list of current topics and displaying the list of current topics to the first user and the second user may be implemented. In one embodiment, the application116on the client device110being operated by the first user may directly send the new topic to the application116on the client device110being operated by the second user, whereupon the application116that corresponds to the first user displays the new topic to the first user, and the application116that corresponds to the second user displays the new topic to the second user.

At step510, the application116receives input from the first user and determines whether the first user is selecting to mark one or more topics, i.e., via selecting one or more markers306, or is selecting to perform an action on the current list of topics, i.e., via selecting an option in the context menu423. If, at step510, the application116determines that the first user selects to mark one or more topics, then the method500proceeds to step512, where the application116marks the one or more topics as open, completed, postponed or removed, according to the techniques described above in conjunction withFIGS. 3A-3C.

Conversely, if the application116at step510determines that the first user selects to perform an action, then the application116creates a calendar event for a meeting that includes both the first user and the second user, synchronizes the list of current topics with one or more upcoming meetings in which the first user and the second user are listed as participants, or emails the list of current topics directly to the second user, according to the techniques described above in conjunction withFIG. 4.

In sum, embodiments of the invention enable a user to manage a list of discussion topics for one or more individuals with whom the user is associated. The user selects an individual from a list of individuals and submits one or more discussion topics to discuss with the individual. The discussion topics may be in the form of text data, video data, picture data, and audio data. The list of discussion topics is automatically updated on the individual's computing device so that the individual is able to view the one or more discussion topics submitted by the user. The individual may also submit or modify topics in the list of discussion topics via the second computing device, which in turn causes an updated list of discussion topics to be available the user. Each topic in the list of discussion topics may be marked as open, completed, postponed or removed. Moreover, the user is able to create a calendar event for a meeting with the individual, synchronize the list of discussion topics with one or more upcoming calendar events in which the user and the individual are listed as participants, or email the list of discussion topics directly to the individual. In some embodiments, the list of current topics can be between three or more individuals, and not just between two individuals.