US20190005592A1 - Extendible user profiles - Google Patents
Extendible user profiles Download PDFInfo
- Publication number
- US20190005592A1 US20190005592A1 US15/637,749 US201715637749A US2019005592A1 US 20190005592 A1 US20190005592 A1 US 20190005592A1 US 201715637749 A US201715637749 A US 201715637749A US 2019005592 A1 US2019005592 A1 US 2019005592A1
- Authority
- US
- United States
- Prior art keywords
- group
- user
- fields
- administrator
- specific fields
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 22
- 230000006855 networking Effects 0.000 claims description 27
- 238000000034 method Methods 0.000 claims description 22
- 238000005304 joining Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 4
- 241000282472 Canis lupus familiaris Species 0.000 description 55
- 238000004891 communication Methods 0.000 description 11
- 241000282326 Felis catus Species 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 240000000220 Panda oleosa Species 0.000 description 2
- 235000016496 Panda oleosa Nutrition 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/435—Filtering based on additional data, e.g. user or group profiles
- G06F16/437—Administration of user profiles, e.g. generation, initialisation, adaptation, distribution
-
- G06F17/30035—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
- H04W4/08—User group management
Definitions
- ⁇ Advances in computing and mobile technologies have resulted in people using a large number of applications to participate in various activities.
- Many of these applications such as social networking applications, texting applications, photo sharing applications, dating applications require users to create user profiles including various information about the users.
- some of these applications also allow users to create groups where members of the group may share information among the group members.
- a social networking application may allow a group administrator to form a group of members that live in a particular neighborhood.
- Implementations described herein disclose a system for providing extendible user profiles for user groups by providing a group formation user interface to a group administrator, wherein the group formation user interface allows the group administrator to add group specific fields, creating a group table including the group specific fields, and linking the group table to the user profile tables.
- FIG. 1 illustrates an example implementation of a system for providing extendible user profiles.
- FIG. 2 provides an example visual representation of user profile provided by the extendible user profile system disclosed herein.
- FIG. 3 illustrates example operations of the system for providing extendible user profiles.
- FIG. 4 illustrates alternative example operations of the system for providing extendible user profiles.
- FIG. 5 illustrates alternative example operations of the system for providing extendible user profiles.
- FIG. 6 illustrates an example system that may be useful in implementing the described technology for providing extendible user profiles.
- FIG. 7 illustrates an example mobile device that may be useful in implementing the described technology for providing extendible user profiles.
- Users of computing devices use a large number of applications to get information and to interact with other users.
- social networking applications are widely used by consumers to interact with other members of such social network.
- Many of these applications require users to create user profiles including various information about the users.
- a photo sharing application may require users to provide their name, email address, data of birth, city and state of residence, and a profile picture.
- some of these applications also allow users to create groups where members of the group may share information among the group members.
- a user creating a group is referred to as the group administrator.
- Common user profiles are used for different purposes, however, they contain the same set of information about the users.
- a group administrator creates a group of selected members, the group administrator does not have the flexibility to add group specific information in the member profiles. For example, if a social networking application requires its users to provide name, email, and birthdate for creating a profile on the social networking application, a group administrator that wants to create a group of members having dogs is not able to request that each group member profile have information about the name of the member's dogs, the breed of the dog, and a photograph of the dog.
- An extendible user profile (EUP) system disclosed herein allows users to provide extendible profiles including additional information about the group members in the member profile.
- a messaging application may require its users to provide a name, phone number, and email address for its users' profiles.
- group members may want more information about the member users of the group (referred to hereinafter as “group members”).
- a user Alice wants to make a group for the users that have cats called “cat lovers of Herzliya” so the members who live in Herzliya and who like cats can share stories and information about cats
- Alice may want each member of the cat lovers of Herzliya to have the name(s) of their cat(s) and the cats' pictures as part of their profile.
- the EUP disclosed herein allows Alice to do so as the group administrator for the cat lovers of Herzliya.
- FIG. 1 illustrates an example implementation of an EUP system 100 for providing extendible user profiles for such members of groups.
- the EUP system 100 is show to be used by users Mina 102 and Tamir 106 using their computing devices such as smartphone 104 and 108 .
- Mina 102 and Tamir 106 may be users of a social network app 110 that they use via smartphones 104 and 108 .
- the social network app 110 may be installed as a client application on the smartphones 104 and 108 and supported by a social network application server 120 .
- the social network application server 120 may be implemented on a cloud server with various components located on various disparate servers, but connected to each other by a network 180 , such as the Internet. As illustrated, the social network application server 120 includes a social networking application 122 and a social networking datastore 126 .
- the social networking application 122 may be implemented by computer instructions stored in a computer readable memory where the instructions are executable on a computer processor.
- the social networking application 122 also includes a user profile manager module 124 and an EUP module 112 .
- the user profile manager module 124 may be configured to manage the profiles of various users of the social networking application 122 .
- the user profile manager module 124 may manage the user profiles 128 stored in the social networking datastore 126 .
- the user profiles 128 are stored in a schema with extendible records.
- the user profile table may include fields for each user as required by the social networking application 122 .
- each user profile includes at least a user identification (uID), a user name (uName), and user email (uEmail).
- the user profile records are extendible to include additional information about the users.
- the user profiles 128 are extendible based on the context of member groups that the users are members of. For example, if a user is a member of a group, a field identifying the name of the group may be added to the user record.
- the EUP module 112 may be working with local EUP modules 112 a , 112 b located on client devices to enable users such as Mina 102 and Tamir 106 to create member groups, extend the member profiles with additional fields and to populate such extendible user profiles.
- Tamir 106 may be interested in creating a new member group called Dog Lovers for the users that love dogs.
- Tamir 106 may select an option to create a new group and in response to it, the EUP module 112 b presents an EUP group formation user interface (UI) 140 to Tamir 106 .
- UI EUP group formation user interface
- the EUP group formation UI 140 includes an option for Tamir 106 to add the name of the group where Tamir 106 may type in the name of the group Dog Lovers.
- the EUP group formation UI 140 also provides an option for Tamir 106 to add fields to the user profiles of group members of Dog Lovers. For example, Tamir 106 can add a field for “Dog Name,” and field for “Dog Breed.” Once Tamir 106 has provided all the fields for the group Dog Lovers, Tamir 106 may select the option to add participants to the group Dog Lovers. For example, Tamir 106 may add Mina Goldstein from the contact list of the smartphone 108 . Once the participants are added, Tamir 106 may select the invite option 142 to invite the participants, including Mina Goldstein, to join the Dog Lovers group.
- the EUP module 112 b may send a message to the social networking application 122 about the creation of the new group, Dog Lovers, by Tamir 106 . Specifically, the EUP module 112 b may also communicate to the social networking application 122 the list of new fields that Tamir, “Dog Name,” and “Dog Breed,” that Tamir would like to add to the profiles of Dog Lovers group members. Additionally, the EUP module 112 b may also send the list of participants, including Mina Goldstein, to the social networking application 122 .
- the user profile manager module 124 may add group name as a field to the profile record for the user. Furthermore, the user profile manager module 124 also includes a Dog Lovers group table 130 for the group Dog Lovers including fields of user identification (uID), user's dog's name (uDog), and the breed of the user's dog (uBreed). As the user profile manager module 124 receives additional information from each participant in the group Dog Lovers, the user profile manager module 124 may add records for each such group member in the Dog Lovers group table 130 .
- uID user identification
- uDog user's dog's name
- uBreed breed of the user's dog
- the user profile manager module 124 is configured to add one field to the profile record for each group that is joined by a user.
- a profile record 128 a is shown to have a field for a first group (uGroup1)
- a profile record 128 b is shown to have fields for a Dog Lovers group (uGrDL) and Car Lovers group (uGrCL)
- profile record 128 c is shown to have a field for the Dog Lovers group (uGrDL).
- the social networking datastore 126 includes the Dog Lovers group table 130 and a Car Lovers table 132 .
- the EUP module 112 Upon receiving the list of participants, such as Mina Goldstein, from the EUP group formation UI 140 on the smartphone 108 , the EUP module 112 communicates with the client EUP modules of the participants' devices. For example, the EUP module 112 sends a message to the EUP module 112 a on Mina 102 's smartphone 104 indicating to Mina that she has been invited to join the Dog Lover's group. If Mina accepts the invitation, the EUP module 112 a presents a EUP group join UN 150 to Mina.
- the EUP join UI 150 may present Mina 102 with options to provide values for the group fields for the Dog Lovers group, namely dog name Betty and dog breed Hound.
- the EUP join UI 150 also gives Mina 102 the option to invite other users, such as Kana, to the Dog Lovers group.
- additional participants such as Kana
- the EUP join UI 150 also gives Mina 102 the option to invite other users, such as Kana, to the Dog Lovers group.
- addition of such additional participants, such as Kana, to the Dog Lovers group may have to be approved by the group administrator Tamir 106 .
- Mina 102 selects a join button 152 to join the group, the values Betty and Hound for the group fields are communicated to the EUP module 112 and to the user profile manager module 124 .
- the user profile manager module 124 adds these values to the Dog Lovers group table 130 .
- Mina 102 provided the name of the dog and its breed while joining the Dog Lover's group.
- Mina 102 may join the group without providing such information.
- the group administrator Tamir 106 may identify one of more of the group fields (dog name and dog breed) as mandatory for a participant to join the Dog Lover's group, in which case, Mina 102 is able to join the Dog Lovers group after she provides such information.
- Mina may also be given the option to let the Dog Lovers group share the values of the dog name and dog breed with users of other group or users that are not members of the Dog Lovers group.
- the social networking application 122 also allows a specific group field to override a field from the user profile.
- the Dog Lovers group may also include a field for the user's photograph with a dog (u&dPhoto) while the user profile for the social networking application may include a field for user's photograph (uPhoto).
- a user that is also a member of the Dog Lovers group may specify that in specific context, the value of u&dPhoto is displayed in the user's profile in place of the uPhoto. For example, if Mina 102 has provided her picture with Betty, she can specify that when a member of the Dog Lover's group views her profile, her photograph with Betty is shown in her profile.
- FIG. 2 provides an example visual representation of user profile fields 200 provided by the extendible user profile system disclosed herein.
- the user profile fields 200 may include application user profile fields 202 required by an application, such as a social networking application.
- the user profile fields 200 also includes group fields for a pet owners group 210 , group fields for a dog owners group 220 , and group fields for a professional networking group 230 .
- the extendible user profile system disclosed herein allows group administrators for each of the groups 210 , 220 , 230 specify group fields for its members.
- the user may provide values of the group specific fields.
- the user may provide values of the dog name, the dog breed, and the photo with dog.
- the user may also specify that they would like to override one of the application user profile fields 202 when viewed by other members of such group.
- a member of the dog owner's group 220 may specify that when other members of the dog owners group 220 view the profile, the photo with dog is shown.
- the user may also specify to adopt a field from another group for use in a selected group.
- the user may specify that when a member of the dog owners group 220 views the profile, the photo with pet is shown to such member.
- a user may provide a value of an application user profile field 202 that is generally opaque to other users of the application but it may be used as a group field.
- the email address may be part of the application user profile fields 202 but not disclosed to other users.
- the user may specify that the members of the professional networking group 220 should be able to see the email address from the application user profile fields 202 .
- this option to adopt a field from another group may also be available to a group administrator.
- the group administrator of the groups cat lovers of Herzliya and of pet lovers of Herzliya may indicate that the “picture with a pet” field that he defined in each of these two groups is the same one. This way if a user joins one of these two groups and sets his photo with his cat, later when that user joins the second group, this field is already pre-populated with his picture from the first group and is just awaiting his confirmation.
- FIG. 3 illustrates example operations 300 of the system for providing extendible user profiles.
- an operation 302 receives a request from a user of an application to create a group.
- the operation 302 may receive a request from a user to create a parent-teacher association (PTA) group.
- An operation 304 presents a group formation UI (such as the group formation UI 140 ) of FIG. 1 .
- An operation 306 receives a list of group fields. For example, in the case of the user (group administrator) creating the PTA group, the group administrator may specify the child name, child school year, and child sport as the fields for users joining the PTA group.
- An operation 308 may receive group field types or list of drop down values that a user can select from.
- the group administrator may specify that the type of child school year is numeric. Alternatively, other fields can be specified to be text, image, etc.
- the PTA group administrator may limit the size of the field to specific number of characters, or specify the field to be of a specific type, such as a numeric field, a field that can be selected from a set of values (e.g.: male, female), or a field that contains a specific type of file (jpg, pdf), etc.
- the PTA group administrator may provide a list of sports that a user can select from when populating the child sport.
- An operation 310 receives group field conditions.
- the PTA group administrator may specify that the child school year is no less than 5 and no greater than 12.
- An operation 312 receives a list of participants that the group administrator would like to invite to join the group.
- An operation 314 saves various information received at operations 306 to 314 and communicates with a user profile manager module (such as the user profile manager module 124 of FIG. 1 ).
- FIG. 4 illustrates alternative example operations 400 of the system for providing extendible user profiles.
- An operation 402 receives the group information from the group administrator including the list of group fields, various characteristics of the group fields, and the list of participants invited to join the group. For example, for the group administrator creating the PTA group, the operation 402 receives the name of the PTA group, the list of fields child name, child school year, and child sport and their types, restrictions, etc., and the list of users invited by the PTA group administrator to join the PTA group.
- An operation 404 creates a PTA group table for the PTA group including the PTA group fields child name, child school year, and child sport. Each record of the PTA group table also includes a user ID that identifies the group member.
- An operation 406 sends invites to the participants provided by the PTA group administrator. For example, such an invite may be a text message on a mobile device, an email, a message within the application, etc. In response to the invite, the user may elect to join the group an operation 408 determines if the invited participant has accepted the invite.
- an operation 410 presents the EUP group join UI (such as the EUP group join UI 150 of FIG. 1 ).
- the invited participant may provide various information such as values of the group fields using the EUP group join UI.
- An operation 412 determines if the participant has joined the group. If the invited participant has joined the group, an operation 414 creates a participant record in the group table. For example, if a participant Joe fills out the information including values of the PTA group fields using the EUP group join UI and selects the join option to of the EUP group join UI, the operation 414 creates a record for Joe in the PTA group table.
- An operation 416 adds a group field values with the ID of the user to the group table. For example, in the example where Joe is joining the PTA group, the values of the PTA group fields as provided by Joe are used to create a new record for Joe in the PTA group table.
- An operation 418 adds an extendible group ID field to the user profile record for Joe so as to link Joe's PTA group field values from the PTA group table to other field values of Joe's user profile record.
- FIG. 5 illustrates alternative example operations 500 of the system for displaying extendible user profiles.
- An operation 502 receives a request to view a profile of a group member. For example, such request may result from a search by another user, or simply a user clicking on an icon of the group member.
- An operation 504 determines if the request from a group member or from another user. For example, in the case of Joe being a member of the PTA group, if Rachel has requested to view Joe's profile, the operation 504 determines if Rachel is part of the PTA group or not. Note that if Joe is part of more than one group, the operation 504 determines if George is part of any of such groups that Joe is a member of.
- an operation 506 shows a generic user profile of Joe. However, if Rachel is a member of a group such as the PTA group that Joe is also a member, an operation 508 fetches Joe's user record from the PTA group table.
- the Joe's record from the PTA group table may include values of the fields child name, child school year, and child sport.
- An operation 508 determines if Joe has specified any field overrides. For example, Joe may have specified that the value of the child name as provided in the PTA group table is displayed to members of the PTA group instead of a child name value given in the generic profile of Joe. If there is such an override, an operation 512 replaces the value of the overridden field with the value from the PTA group table. An operation 514 merges the group field values with the profile field values and an operation 516 displays such merged field values as part of the profile presented to Rachel.
- FIG. 6 illustrates an example system 600 that may be useful in implementing the image rendition system disclosed herein.
- the example hardware and operating environment of FIG. 6 for implementing the described technology includes a computing device, such as a general-purpose computing device in the form of a computer 20 , a mobile telephone, a personal data assistant (PDA), a tablet, smart watch, gaming remote, or other type of computing device.
- the computer 20 includes a processing unit 21 , a system memory 22 , and a system bus 23 that operatively couples various system components including the system memory to the processing unit 21 .
- the processor of a computer 20 may be a single central-processing unit (CPU), or a plurality of processing units, commonly referred to as a parallel processing environment.
- the computer 20 may be a conventional computer, a distributed computer, or any other type of computer; the implementations are not so limited.
- the computer 20 also includes a EUP module 650 providing one or more functions of the EUP system disclosed herein.
- the system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, a switched fabric, point-to-point connections, and a local bus using any of a variety of bus architectures.
- the system memory may also be referred to as simply the memory, and includes read-only memory (ROM) 24 and random access memory (RAM) 25 .
- ROM read-only memory
- RAM random access memory
- a basic input/output system (BIOS) 26 containing the basic routines that help to transfer information between elements within the computer 20 , such as during start-up, is stored in ROM 24 .
- the computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29 , and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM, DVD, or other optical media.
- the computer 20 may be used to implement an EUP module such as the EUP module 112 of FIG. 1 .
- instructions stored on the memory of the computer 20 may be used by an EUP system. Similarly, instructions stored on the memory of the computer 20 may also be used to implement one or more operations of a EUP system disclosed herein.
- the hard disk drive 27 , magnetic disk drive 28 , and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32 , a magnetic disk drive interface 33 , and an optical disk drive interface 34 , respectively.
- the drives and their associated tangible computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20 . It should be appreciated by those skilled in the art that any type of tangible computer-readable media may be used in the example operating environment.
- a number of program modules may be stored on the hard disk, magnetic disk 29 , optical disk 31 , ROM 24 , or RAM 25 , including an operating system 35 , one or more application programs 36 , other program modules 37 , and program data 38 .
- a user may generate reminders on the personal computer 20 through input devices such as a keyboard 40 and pointing device 42 .
- Other input devices may include a microphone (e.g., for voice input), a camera (e.g., for a natural user interface (NUI)), a joystick, a game pad, a satellite dish, a scanner, or the like.
- NUI natural user interface
- serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).
- a monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48 .
- computers typically include other peripheral output devices (not shown), such as speakers and printers.
- the computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 49 . These logical connections are achieved by a communication device coupled to or a part of the computer 20 ; the implementations are not limited to a particular type of communications device.
- the remote computer 49 may be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 20 .
- the logical connections depicted in FIG. 6 include a local-area network (LAN) 51 and a wide-area network (WAN) 52 .
- LAN local-area network
- WAN wide-area network
- Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet, which are all types of networks.
- the computer 20 When used in a LAN-networking environment, the computer 20 is connected to the local area network 51 through a network interface or adapter 53 , which is one type of communications device.
- the computer 20 When used in a WAN-networking environment, the computer 20 typically includes a modem 54 , a network adapter, a type of communications device, or any other type of communications device for establishing communications over the wide area network 52 .
- the modem 54 which may be internal or external, is connected to the system bus 23 via the serial port interface 46 .
- program engines depicted relative to the personal computer 20 may be stored in the remote memory storage device. It is appreciated that the network connections shown are example and other means of communications devices for establishing a communications link between the computers may be used.
- software or firmware instructions for the EUP system disclosed herein may be stored in system memory 22 and/or storage devices 29 or 31 and processed by the processing unit 21 .
- User profile data may be stored in system memory 22 and/or storage devices 29 or 31 as persistent data-stores.
- An EUP module 650 communicatively connected with the processing unit 21 and the memory 22 may enable one or more of the capabilities of the EUP system disclosed herein.
- intangible computer-readable communication signals may embody computer readable instructions, data structures, program modules or other data resident in a modulated data signal, such as a carrier wave or other signal transport mechanism.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- intangible communication signals include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
- FIG. 7 illustrates another example system (labeled as a mobile device 700 ) that may be useful in implementing the described technology.
- the mobile device 700 includes a processor 702 , a memory 704 , a display 706 (e.g., a touchscreen display), and other interfaces 708 (e.g., a keyboard).
- the memory 704 generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., flash memory).
- An operating system 710 such as the Microsoft Windows® Phone operating system, resides in the memory 704 and is executed by the processor 702 , although it should be understood that other operating systems may be employed.
- One or more application programs 712 are loaded in the memory 704 and executed on the operating system 710 by the processor 702 .
- applications 712 include without limitation email programs, scheduling programs, personal information managers, Internet browsing programs, multimedia player applications, etc.
- a notification manager 714 is also loaded in the memory 704 and is executed by the processor 702 to present notifications to the user. For example, when a promotion is triggered and presented to the shopper, the notification manager 714 can cause the mobile device 700 to beep or vibrate (via the vibration device 718 ) and display the promotion on the display 706 .
- the mobile device 700 includes a power supply 716 , which is powered by one or more batteries or other power sources and which provides power to other components of the mobile device 700 .
- the power supply 716 may also be connected to an external power source that overrides or recharges the built-in batteries or other power sources.
- the mobile device 700 includes one or more communication transceivers 730 to provide network connectivity (e.g., mobile phone network, Wi-Fi®, BlueTooth®, etc.).
- the mobile device 700 also includes various other components, such as a positioning system 720 (e.g., a global positioning satellite transceiver), one or more accelerometers 722 , one or more cameras 724 , an audio interface 726 (e.g., a microphone, an audio amplifier and speaker and/or audio jack), and additional storage 728 . Other configurations may also be employed.
- a mobile operating system, various applications, and other modules and services may be embodied by instructions stored in memory 704 and/or storage devices 728 and processed by the processing unit 702 .
- User preferences, service options, and other data may be stored in memory 704 and/or storage devices 728 as persistent datastores.
- An EUP module 750 communicatively connected with the processor 702 and the memory 704 may enable one or more of the capabilities of the personalized user experience delivery system disclosed herein.
- the EUP system disclosed herein provides solution to a technological problem necessitated by user's desire to participate in a large number of groups and to have selected and customized profiles for the different groups. Specifically, the EUP system disclosed herein provides an unconventional technical solution to this technological problem by allowing group administrators to create group specific fields for the users participating in the group and the user's desire to override displaying of certain fields in their profile with other fields as appropriate for a specific group.
- a method for providing extendible user profiles includes receiving a request from a group administrator to create a new group for a group of users of an application, providing a group formation user interface to the group administrator, wherein the group formation user interface allows the group administrator to add group specific fields, creating a group table including the group specific fields, and linking the group table to user profile tables of the group of users.
- the method further includes presenting a group join user interface to a user joining the group, wherein the group join user interface presents the group specific fields.
- the method further includes receiving values of one or more of the group specific fields from the user joining the group and displaying the values of the group specific fields to other members of the group.
- At least one of the group specific field overrides a field in the user profile table.
- the user profile table includes one or more group joined fields for the one of more groups joined by a user and the method further comprises adding the group to the group joined fields.
- the method further includes linking the group table to the user profile table using based on the group join field.
- a group specific field is shared between at least two or more groups.
- one or more of the group specific fields are exposed to one or more other groups as specified by the user.
- one or more of the group specific fields are exposed to one or more other groups as specified by the group administrator.
- a physical article of manufacture including one or more tangible computer-readable storage media, encoding computer-executable instructions for executing on a computer system a computer process, wherein the computer process includes receiving a request from a group administrator to create a new group for a group of users of a social networking application, providing a group formation user interface to the group administrator, wherein the group formation user interface allows the group administrator to add group specific fields, creating a group table including the group specific fields, linking the group table to user profile tables of the group of users, and presenting a group join user interface to a user joining the group, wherein the group join user interface presents the group specific fields.
- the computer-executable instructions further includes receiving values of one or more of the group specific fields from the user joining the group. In another implementation, the computer-executable instructions further includes displaying the values of the group specific fields to other members of the group. In yet another implementation, at least one of the group specific field overrides a field in the user profile table.
- the user profile table includes a group joined field including listing of one of more groups joined by a user and the method further comprises adding the group to the group joined field.
- the computer-executable instructions further includes linking the group table to the user profile table using based on the group join field. Alternatively, one or more of the group specific fields are exposed to one or more other groups as specified by at least one of the user and the group administrator.
- a system for providing extendible user profiles includes a memory; one or more processor units; an extendible user profiles (EUP) module stored in the memory and executable by the one or more processor units, the EUP module configured to provide a group formation user interface to the group administrator, wherein the group formation user interface allows the group administrator to add group specific fields for a group of users of a social networking application and receive a plurality of group specific fields from the group administrator; and a user profile manager application stored in the memory and executable by the one or more processor units, the user profile manager application configured to create a group table including the group specific fields and link the group table to a user profile table.
- EUP extendible user profiles
- the EUP module is further configured to present a group join user interface to a user joining the group, wherein the group join user interface presents the group specific fields.
- the user profile manager application is further configured to add one or more groups to the group joined fields of the user profile table.
- at least one of the group specific field overrides a field in the user profile table.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Primary Health Care (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- Advances in computing and mobile technologies have resulted in people using a large number of applications to participate in various activities. Many of these applications, such as social networking applications, texting applications, photo sharing applications, dating applications require users to create user profiles including various information about the users. Furthermore, some of these applications also allow users to create groups where members of the group may share information among the group members. For example, a social networking application may allow a group administrator to form a group of members that live in a particular neighborhood.
- Implementations described herein disclose a system for providing extendible user profiles for user groups by providing a group formation user interface to a group administrator, wherein the group formation user interface allows the group administrator to add group specific fields, creating a group table including the group specific fields, and linking the group table to the user profile tables.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
- Other implementations are also described and recited herein.
- A further understanding of the nature and advantages of the present technology may be realized by reference to the figures, which are described in the remaining portion of the specification. In the figures, like reference numerals are used throughout several figures to refer to similar components.
-
FIG. 1 illustrates an example implementation of a system for providing extendible user profiles. -
FIG. 2 provides an example visual representation of user profile provided by the extendible user profile system disclosed herein. -
FIG. 3 illustrates example operations of the system for providing extendible user profiles. -
FIG. 4 illustrates alternative example operations of the system for providing extendible user profiles. -
FIG. 5 illustrates alternative example operations of the system for providing extendible user profiles. -
FIG. 6 illustrates an example system that may be useful in implementing the described technology for providing extendible user profiles. -
FIG. 7 illustrates an example mobile device that may be useful in implementing the described technology for providing extendible user profiles. - Users of computing devices use a large number of applications to get information and to interact with other users. For example, social networking applications are widely used by consumers to interact with other members of such social network. Many of these applications require users to create user profiles including various information about the users. For example, a photo sharing application may require users to provide their name, email address, data of birth, city and state of residence, and a profile picture. Furthermore, some of these applications also allow users to create groups where members of the group may share information among the group members. A user creating a group is referred to as the group administrator.
- Common user profiles are used for different purposes, however, they contain the same set of information about the users. However, when a group administrator creates a group of selected members, the group administrator does not have the flexibility to add group specific information in the member profiles. For example, if a social networking application requires its users to provide name, email, and birthdate for creating a profile on the social networking application, a group administrator that wants to create a group of members having dogs is not able to request that each group member profile have information about the name of the member's dogs, the breed of the dog, and a photograph of the dog.
- An extendible user profile (EUP) system disclosed herein allows users to provide extendible profiles including additional information about the group members in the member profile. For example, a messaging application may require its users to provide a name, phone number, and email address for its users' profiles. However, when a user decides to create a group (and thus become the group administrator of the created group) of users that share a particular characteristic, such group administrator may want more information about the member users of the group (referred to hereinafter as “group members”). For example, if a user Alice wants to make a group for the users that have cats called “cat lovers of Herzliya” so the members who live in Herzliya and who like cats can share stories and information about cats, Alice may want each member of the cat lovers of Herzliya to have the name(s) of their cat(s) and the cats' pictures as part of their profile. The EUP disclosed herein allows Alice to do so as the group administrator for the cat lovers of Herzliya.
-
FIG. 1 illustrates an example implementation of anEUP system 100 for providing extendible user profiles for such members of groups. Specifically, the EUPsystem 100 is show to be used by users Mina 102 and Tamir 106 using their computing devices such assmartphone social network app 110 that they use viasmartphones social network app 110 may be installed as a client application on thesmartphones network application server 120. - In one implementation of the EUP
system 100, the socialnetwork application server 120 may be implemented on a cloud server with various components located on various disparate servers, but connected to each other by anetwork 180, such as the Internet. As illustrated, the socialnetwork application server 120 includes asocial networking application 122 and asocial networking datastore 126. Thesocial networking application 122 may be implemented by computer instructions stored in a computer readable memory where the instructions are executable on a computer processor. - The
social networking application 122 also includes a user profile manager module 124 and anEUP module 112. The user profile manager module 124 may be configured to manage the profiles of various users of thesocial networking application 122. For example, the user profile manager module 124 may manage theuser profiles 128 stored in thesocial networking datastore 126. Specifically, theuser profiles 128 are stored in a schema with extendible records. Specifically, the user profile table may include fields for each user as required by thesocial networking application 122. In the example implementation, each user profile includes at least a user identification (uID), a user name (uName), and user email (uEmail). - However, for the EUP
system 100, the user profile records are extendible to include additional information about the users. Specifically, theuser profiles 128 are extendible based on the context of member groups that the users are members of. For example, if a user is a member of a group, a field identifying the name of the group may be added to the user record. - Furthermore, the EUP
module 112 may be working withlocal EUP modules EUP module 112 b presents an EUP group formation user interface (UI) 140 to Tamir 106. - The EUP group formation UI 140 includes an option for Tamir 106 to add the name of the group where Tamir 106 may type in the name of the group Dog Lovers. The EUP
group formation UI 140 also provides an option for Tamir 106 to add fields to the user profiles of group members of Dog Lovers. For example, Tamir 106 can add a field for “Dog Name,” and field for “Dog Breed.” Once Tamir 106 has provided all the fields for the group Dog Lovers, Tamir 106 may select the option to add participants to the group Dog Lovers. For example, Tamir 106 may add Mina Goldstein from the contact list of thesmartphone 108. Once the participants are added, Tamir 106 may select theinvite option 142 to invite the participants, including Mina Goldstein, to join the Dog Lovers group. - Once Tamir 106 selects the
invite option 142, the EUPmodule 112 b may send a message to thesocial networking application 122 about the creation of the new group, Dog Lovers, by Tamir 106. Specifically, the EUPmodule 112 b may also communicate to thesocial networking application 122 the list of new fields that Tamir, “Dog Name,” and “Dog Breed,” that Tamir would like to add to the profiles of Dog Lovers group members. Additionally, the EUPmodule 112 b may also send the list of participants, including Mina Goldstein, to thesocial networking application 122. - Upon receiving the list of field names to be added to the user profiles, the user profile manager module 124 may add group name as a field to the profile record for the user. Furthermore, the user profile manager module 124 also includes a Dog Lovers group table 130 for the group Dog Lovers including fields of user identification (uID), user's dog's name (uDog), and the breed of the user's dog (uBreed). As the user profile manager module 124 receives additional information from each participant in the group Dog Lovers, the user profile manager module 124 may add records for each such group member in the Dog Lovers group table 130.
- In one implementation, the user profile manager module 124 is configured to add one field to the profile record for each group that is joined by a user. Thus, for example, a
profile record 128 a is shown to have a field for a first group (uGroup1), aprofile record 128 b is shown to have fields for a Dog Lovers group (uGrDL) and Car Lovers group (uGrCL), andprofile record 128 c is shown to have a field for the Dog Lovers group (uGrDL). Additionally, thesocial networking datastore 126 includes the Dog Lovers group table 130 and a Car Lovers table 132. - Upon receiving the list of participants, such as Mina Goldstein, from the EUP
group formation UI 140 on thesmartphone 108, theEUP module 112 communicates with the client EUP modules of the participants' devices. For example, theEUP module 112 sends a message to theEUP module 112 a onMina 102'ssmartphone 104 indicating to Mina that she has been invited to join the Dog Lover's group. If Mina accepts the invitation, theEUP module 112 a presents a EUP group joinUN 150 to Mina. TheEUP join UI 150 may presentMina 102 with options to provide values for the group fields for the Dog Lovers group, namely dog name Betty and dog breed Hound. - In one implementation, the
EUP join UI 150 also givesMina 102 the option to invite other users, such as Kana, to the Dog Lovers group. However, in an alternative implementation, addition of such additional participants, such as Kana, to the Dog Lovers group may have to be approved by thegroup administrator Tamir 106. OnceMina 102 selects ajoin button 152 to join the group, the values Betty and Hound for the group fields are communicated to theEUP module 112 and to the user profile manager module 124. The user profile manager module 124 adds these values to the Dog Lovers group table 130. - Once the group fields for a given group member to a particular group are added to the group table, if another group member of that group views the profile of the given group member, they will be see all values of all the fields in the profile. Thus, once
Mina 102 has joined the Dog Lovers group and given the values of dog name and dog breed, ifTamir 106views Mina 102's profile,Tamir 106 will see Mina's name, email, dog name, and dog breed in her profile view. - Note that in the illustrated implementation,
Mina 102 provided the name of the dog and its breed while joining the Dog Lover's group. In an alternative implementation,Mina 102 may join the group without providing such information. In yet another implementation, thegroup administrator Tamir 106 may identify one of more of the group fields (dog name and dog breed) as mandatory for a participant to join the Dog Lover's group, in which case,Mina 102 is able to join the Dog Lovers group after she provides such information. Yet alternatively, Mina may also be given the option to let the Dog Lovers group share the values of the dog name and dog breed with users of other group or users that are not members of the Dog Lovers group. - In the implementation of the
EUP system 100, thesocial networking application 122 also allows a specific group field to override a field from the user profile. For example, the Dog Lovers group may also include a field for the user's photograph with a dog (u&dPhoto) while the user profile for the social networking application may include a field for user's photograph (uPhoto). In such an implementation, a user that is also a member of the Dog Lovers group may specify that in specific context, the value of u&dPhoto is displayed in the user's profile in place of the uPhoto. For example, ifMina 102 has provided her picture with Betty, she can specify that when a member of the Dog Lover's group views her profile, her photograph with Betty is shown in her profile. -
FIG. 2 provides an example visual representation of user profile fields 200 provided by the extendible user profile system disclosed herein. Specifically, the user profile fields 200 may include application user profile fields 202 required by an application, such as a social networking application. The user profile fields 200 also includes group fields for apet owners group 210, group fields for adog owners group 220, and group fields for aprofessional networking group 230. - As shown, the extendible user profile system disclosed herein allows group administrators for each of the
groups groups dog owners group 220, the user may provide values of the dog name, the dog breed, and the photo with dog. The user may also specify that they would like to override one of the application user profile fields 202 when viewed by other members of such group. Thus, a member of the dog owner'sgroup 220 may specify that when other members of thedog owners group 220 view the profile, the photo with dog is shown. - Yet alternatively, the user may also specify to adopt a field from another group for use in a selected group. Thus, if a user has already joined the
pet owners group 210 and provided a photo with pet, the user may specify that when a member of thedog owners group 220 views the profile, the photo with pet is shown to such member. Yet alternatively, a user may provide a value of an applicationuser profile field 202 that is generally opaque to other users of the application but it may be used as a group field. For example, the email address may be part of the application user profile fields 202 but not disclosed to other users. However, upon joining theprofessional networking group 220, the user may specify that the members of theprofessional networking group 220 should be able to see the email address from the application user profile fields 202. In an alternative implementation, this option to adopt a field from another group may also be available to a group administrator. For example, the group administrator of the groups cat lovers of Herzliya and of pet lovers of Herzliya may indicate that the “picture with a pet” field that he defined in each of these two groups is the same one. This way if a user joins one of these two groups and sets his photo with his cat, later when that user joins the second group, this field is already pre-populated with his picture from the first group and is just awaiting his confirmation. -
FIG. 3 illustratesexample operations 300 of the system for providing extendible user profiles. Specifically, anoperation 302 receives a request from a user of an application to create a group. For example, theoperation 302 may receive a request from a user to create a parent-teacher association (PTA) group. Anoperation 304 presents a group formation UI (such as the group formation UI 140) ofFIG. 1 . Anoperation 306 receives a list of group fields. For example, in the case of the user (group administrator) creating the PTA group, the group administrator may specify the child name, child school year, and child sport as the fields for users joining the PTA group. - An
operation 308 may receive group field types or list of drop down values that a user can select from. For example, for the PTA group, the group administrator may specify that the type of child school year is numeric. Alternatively, other fields can be specified to be text, image, etc. Optionally, the PTA group administrator may limit the size of the field to specific number of characters, or specify the field to be of a specific type, such as a numeric field, a field that can be selected from a set of values (e.g.: male, female), or a field that contains a specific type of file (jpg, pdf), etc. Alternatively, the PTA group administrator may provide a list of sports that a user can select from when populating the child sport. Anoperation 310 receives group field conditions. For example, the PTA group administrator may specify that the child school year is no less than 5 and no greater than 12. Anoperation 312 receives a list of participants that the group administrator would like to invite to join the group. Anoperation 314 saves various information received atoperations 306 to 314 and communicates with a user profile manager module (such as the user profile manager module 124 ofFIG. 1 ). -
FIG. 4 illustratesalternative example operations 400 of the system for providing extendible user profiles. Anoperation 402 receives the group information from the group administrator including the list of group fields, various characteristics of the group fields, and the list of participants invited to join the group. For example, for the group administrator creating the PTA group, theoperation 402 receives the name of the PTA group, the list of fields child name, child school year, and child sport and their types, restrictions, etc., and the list of users invited by the PTA group administrator to join the PTA group. - An
operation 404 creates a PTA group table for the PTA group including the PTA group fields child name, child school year, and child sport. Each record of the PTA group table also includes a user ID that identifies the group member. Anoperation 406 sends invites to the participants provided by the PTA group administrator. For example, such an invite may be a text message on a mobile device, an email, a message within the application, etc. In response to the invite, the user may elect to join the group anoperation 408 determines if the invited participant has accepted the invite. - If the invited participant has accepted the invite, an
operation 410 presents the EUP group join UI (such as the EUP group joinUI 150 ofFIG. 1 ). The invited participant may provide various information such as values of the group fields using the EUP group join UI. Anoperation 412 determines if the participant has joined the group. If the invited participant has joined the group, anoperation 414 creates a participant record in the group table. For example, if a participant Joe fills out the information including values of the PTA group fields using the EUP group join UI and selects the join option to of the EUP group join UI, theoperation 414 creates a record for Joe in the PTA group table. - An
operation 416 adds a group field values with the ID of the user to the group table. For example, in the example where Joe is joining the PTA group, the values of the PTA group fields as provided by Joe are used to create a new record for Joe in the PTA group table. Anoperation 418 adds an extendible group ID field to the user profile record for Joe so as to link Joe's PTA group field values from the PTA group table to other field values of Joe's user profile record. -
FIG. 5 illustratesalternative example operations 500 of the system for displaying extendible user profiles. Anoperation 502 receives a request to view a profile of a group member. For example, such request may result from a search by another user, or simply a user clicking on an icon of the group member. Anoperation 504 determines if the request from a group member or from another user. For example, in the case of Joe being a member of the PTA group, if Rachel has requested to view Joe's profile, theoperation 504 determines if Rachel is part of the PTA group or not. Note that if Joe is part of more than one group, theoperation 504 determines if Rachel is part of any of such groups that Joe is a member of. - If the
operation 504 determines that Rachel is not member of any group that Joe is a member of, anoperation 506 shows a generic user profile of Joe. However, if Rachel is a member of a group such as the PTA group that Joe is also a member, anoperation 508 fetches Joe's user record from the PTA group table. For example, the Joe's record from the PTA group table may include values of the fields child name, child school year, and child sport. - An
operation 508 determines if Joe has specified any field overrides. For example, Joe may have specified that the value of the child name as provided in the PTA group table is displayed to members of the PTA group instead of a child name value given in the generic profile of Joe. If there is such an override, anoperation 512 replaces the value of the overridden field with the value from the PTA group table. Anoperation 514 merges the group field values with the profile field values and anoperation 516 displays such merged field values as part of the profile presented to Rachel. -
FIG. 6 illustrates anexample system 600 that may be useful in implementing the image rendition system disclosed herein. The example hardware and operating environment ofFIG. 6 for implementing the described technology includes a computing device, such as a general-purpose computing device in the form of acomputer 20, a mobile telephone, a personal data assistant (PDA), a tablet, smart watch, gaming remote, or other type of computing device. In the implementation ofFIG. 6 , for example, thecomputer 20 includes aprocessing unit 21, asystem memory 22, and asystem bus 23 that operatively couples various system components including the system memory to theprocessing unit 21. There may be only one or there may be more than oneprocessing unit 21, such that the processor of acomputer 20 comprises a single central-processing unit (CPU), or a plurality of processing units, commonly referred to as a parallel processing environment. Thecomputer 20 may be a conventional computer, a distributed computer, or any other type of computer; the implementations are not so limited. - In the example implementation of the
computing system 600, thecomputer 20 also includes aEUP module 650 providing one or more functions of the EUP system disclosed herein. Thesystem bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, a switched fabric, point-to-point connections, and a local bus using any of a variety of bus architectures. The system memory may also be referred to as simply the memory, and includes read-only memory (ROM) 24 and random access memory (RAM) 25. A basic input/output system (BIOS) 26, containing the basic routines that help to transfer information between elements within thecomputer 20, such as during start-up, is stored inROM 24. Thecomputer 20 further includes ahard disk drive 27 for reading from and writing to a hard disk, not shown, amagnetic disk drive 28 for reading from or writing to a removablemagnetic disk 29, and anoptical disk drive 30 for reading from or writing to a removableoptical disk 31 such as a CD ROM, DVD, or other optical media. Thecomputer 20 may be used to implement an EUP module such as theEUP module 112 ofFIG. 1 . - Furthermore, instructions stored on the memory of the
computer 20 may be used by an EUP system. Similarly, instructions stored on the memory of thecomputer 20 may also be used to implement one or more operations of a EUP system disclosed herein. - The
hard disk drive 27,magnetic disk drive 28, andoptical disk drive 30 are connected to thesystem bus 23 by a harddisk drive interface 32, a magneticdisk drive interface 33, and an opticaldisk drive interface 34, respectively. The drives and their associated tangible computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for thecomputer 20. It should be appreciated by those skilled in the art that any type of tangible computer-readable media may be used in the example operating environment. - A number of program modules may be stored on the hard disk,
magnetic disk 29,optical disk 31,ROM 24, orRAM 25, including anoperating system 35, one ormore application programs 36,other program modules 37, andprogram data 38. A user may generate reminders on thepersonal computer 20 through input devices such as akeyboard 40 andpointing device 42. Other input devices (not shown) may include a microphone (e.g., for voice input), a camera (e.g., for a natural user interface (NUI)), a joystick, a game pad, a satellite dish, a scanner, or the like. These and other input devices are often connected to theprocessing unit 21 through aserial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB). Amonitor 47 or other type of display device is also connected to thesystem bus 23 via an interface, such as avideo adapter 48. In addition to the monitor, computers typically include other peripheral output devices (not shown), such as speakers and printers. - The
computer 20 may operate in a networked environment using logical connections to one or more remote computers, such asremote computer 49. These logical connections are achieved by a communication device coupled to or a part of thecomputer 20; the implementations are not limited to a particular type of communications device. Theremote computer 49 may be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to thecomputer 20. The logical connections depicted inFIG. 6 include a local-area network (LAN) 51 and a wide-area network (WAN) 52. Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet, which are all types of networks. - When used in a LAN-networking environment, the
computer 20 is connected to thelocal area network 51 through a network interface oradapter 53, which is one type of communications device. When used in a WAN-networking environment, thecomputer 20 typically includes a modem 54, a network adapter, a type of communications device, or any other type of communications device for establishing communications over thewide area network 52. The modem 54, which may be internal or external, is connected to thesystem bus 23 via theserial port interface 46. In a networked environment, program engines depicted relative to thepersonal computer 20, or portions thereof, may be stored in the remote memory storage device. It is appreciated that the network connections shown are example and other means of communications devices for establishing a communications link between the computers may be used. - In an example implementation, software or firmware instructions for the EUP system disclosed herein may be stored in
system memory 22 and/orstorage devices processing unit 21. User profile data may be stored insystem memory 22 and/orstorage devices EUP module 650 communicatively connected with theprocessing unit 21 and thememory 22 may enable one or more of the capabilities of the EUP system disclosed herein. - In contrast to tangible computer-readable storage media, intangible computer-readable communication signals may embody computer readable instructions, data structures, program modules or other data resident in a modulated data signal, such as a carrier wave or other signal transport mechanism. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, intangible communication signals include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
-
FIG. 7 illustrates another example system (labeled as a mobile device 700) that may be useful in implementing the described technology. Themobile device 700 includes aprocessor 702, amemory 704, a display 706 (e.g., a touchscreen display), and other interfaces 708 (e.g., a keyboard). Thememory 704 generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., flash memory). Anoperating system 710, such as the Microsoft Windows® Phone operating system, resides in thememory 704 and is executed by theprocessor 702, although it should be understood that other operating systems may be employed. - One or
more application programs 712 are loaded in thememory 704 and executed on theoperating system 710 by theprocessor 702. Examples ofapplications 712 include without limitation email programs, scheduling programs, personal information managers, Internet browsing programs, multimedia player applications, etc. Anotification manager 714 is also loaded in thememory 704 and is executed by theprocessor 702 to present notifications to the user. For example, when a promotion is triggered and presented to the shopper, thenotification manager 714 can cause themobile device 700 to beep or vibrate (via the vibration device 718) and display the promotion on thedisplay 706. - The
mobile device 700 includes apower supply 716, which is powered by one or more batteries or other power sources and which provides power to other components of themobile device 700. Thepower supply 716 may also be connected to an external power source that overrides or recharges the built-in batteries or other power sources. - The
mobile device 700 includes one ormore communication transceivers 730 to provide network connectivity (e.g., mobile phone network, Wi-Fi®, BlueTooth®, etc.). Themobile device 700 also includes various other components, such as a positioning system 720 (e.g., a global positioning satellite transceiver), one ormore accelerometers 722, one ormore cameras 724, an audio interface 726 (e.g., a microphone, an audio amplifier and speaker and/or audio jack), andadditional storage 728. Other configurations may also be employed. - In an example implementation, a mobile operating system, various applications, and other modules and services may be embodied by instructions stored in
memory 704 and/orstorage devices 728 and processed by theprocessing unit 702. User preferences, service options, and other data may be stored inmemory 704 and/orstorage devices 728 as persistent datastores. AnEUP module 750 communicatively connected with theprocessor 702 and thememory 704 may enable one or more of the capabilities of the personalized user experience delivery system disclosed herein. - The EUP system disclosed herein provides solution to a technological problem necessitated by user's desire to participate in a large number of groups and to have selected and customized profiles for the different groups. Specifically, the EUP system disclosed herein provides an unconventional technical solution to this technological problem by allowing group administrators to create group specific fields for the users participating in the group and the user's desire to override displaying of certain fields in their profile with other fields as appropriate for a specific group.
- A method for providing extendible user profiles includes receiving a request from a group administrator to create a new group for a group of users of an application, providing a group formation user interface to the group administrator, wherein the group formation user interface allows the group administrator to add group specific fields, creating a group table including the group specific fields, and linking the group table to user profile tables of the group of users. In one implementation, the method further includes presenting a group join user interface to a user joining the group, wherein the group join user interface presents the group specific fields. In an alternative implementation, the method further includes receiving values of one or more of the group specific fields from the user joining the group and displaying the values of the group specific fields to other members of the group.
- In one implementation of the method, at least one of the group specific field overrides a field in the user profile table. Alternatively, the user profile table includes one or more group joined fields for the one of more groups joined by a user and the method further comprises adding the group to the group joined fields. Yet alternatively, the method further includes linking the group table to the user profile table using based on the group join field. In one implementation, a group specific field is shared between at least two or more groups. In another implementation, one or more of the group specific fields are exposed to one or more other groups as specified by the user. Alternatively, one or more of the group specific fields are exposed to one or more other groups as specified by the group administrator.
- A physical article of manufacture including one or more tangible computer-readable storage media, encoding computer-executable instructions for executing on a computer system a computer process, wherein the computer process includes receiving a request from a group administrator to create a new group for a group of users of a social networking application, providing a group formation user interface to the group administrator, wherein the group formation user interface allows the group administrator to add group specific fields, creating a group table including the group specific fields, linking the group table to user profile tables of the group of users, and presenting a group join user interface to a user joining the group, wherein the group join user interface presents the group specific fields.
- In one implementation, the computer-executable instructions further includes receiving values of one or more of the group specific fields from the user joining the group. In another implementation, the computer-executable instructions further includes displaying the values of the group specific fields to other members of the group. In yet another implementation, at least one of the group specific field overrides a field in the user profile table. Alternatively, the user profile table includes a group joined field including listing of one of more groups joined by a user and the method further comprises adding the group to the group joined field. Yet alternatively, the computer-executable instructions further includes linking the group table to the user profile table using based on the group join field. Alternatively, one or more of the group specific fields are exposed to one or more other groups as specified by at least one of the user and the group administrator.
- A system for providing extendible user profiles includes a memory; one or more processor units; an extendible user profiles (EUP) module stored in the memory and executable by the one or more processor units, the EUP module configured to provide a group formation user interface to the group administrator, wherein the group formation user interface allows the group administrator to add group specific fields for a group of users of a social networking application and receive a plurality of group specific fields from the group administrator; and a user profile manager application stored in the memory and executable by the one or more processor units, the user profile manager application configured to create a group table including the group specific fields and link the group table to a user profile table.
- In one implementation, the EUP module is further configured to present a group join user interface to a user joining the group, wherein the group join user interface presents the group specific fields. Alternatively, the user profile manager application is further configured to add one or more groups to the group joined fields of the user profile table. Yet alternatively, at least one of the group specific field overrides a field in the user profile table.
- The above specification, examples, and data provide a complete description of the structure and use of exemplary embodiments of the invention. Since many implementations of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. Furthermore, structural features of the different embodiments may be combined in yet another implementation without departing from the recited claims.
Claims (20)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/637,749 US20190005592A1 (en) | 2017-06-29 | 2017-06-29 | Extendible user profiles |
PCT/US2018/034268 WO2019005350A1 (en) | 2017-06-29 | 2018-05-24 | Extendible user profiles |
CN201880043651.5A CN110869970B (en) | 2017-06-29 | 2018-05-24 | Extensible user profile |
EP18733975.9A EP3646274A1 (en) | 2017-06-29 | 2018-05-24 | Extendible user profiles |
US17/155,989 US11704746B2 (en) | 2017-06-29 | 2021-01-22 | Extendible user profiles |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/637,749 US20190005592A1 (en) | 2017-06-29 | 2017-06-29 | Extendible user profiles |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/155,989 Continuation US11704746B2 (en) | 2017-06-29 | 2021-01-22 | Extendible user profiles |
Publications (1)
Publication Number | Publication Date |
---|---|
US20190005592A1 true US20190005592A1 (en) | 2019-01-03 |
Family
ID=62716124
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/637,749 Abandoned US20190005592A1 (en) | 2017-06-29 | 2017-06-29 | Extendible user profiles |
US17/155,989 Active US11704746B2 (en) | 2017-06-29 | 2021-01-22 | Extendible user profiles |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/155,989 Active US11704746B2 (en) | 2017-06-29 | 2021-01-22 | Extendible user profiles |
Country Status (4)
Country | Link |
---|---|
US (2) | US20190005592A1 (en) |
EP (1) | EP3646274A1 (en) |
CN (1) | CN110869970B (en) |
WO (1) | WO2019005350A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10447624B2 (en) * | 2016-05-09 | 2019-10-15 | Quazi Shamim Islam | Method for streamlining communications between groups of primary and secondary users, wherein communication capabilities between primary and secondary users are based on whether the user is a primary or secondary user |
US11632364B1 (en) * | 2018-12-28 | 2023-04-18 | Juniper Networks, Inc. | Dynamic provisioning of user groups within computer networks based on user attributes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024912A1 (en) * | 2002-05-22 | 2004-02-05 | Akihito Fukao | Device-sharing system, device administration terminal, gateway terminal, device, terminal program and device program, and method for providing a device-sharing service |
US6944677B1 (en) * | 2000-05-09 | 2005-09-13 | Aspect Communications Corporation | Common user profile server and method |
US20090198666A1 (en) * | 2008-02-01 | 2009-08-06 | Winston Ronald H | Affinity matching system and method |
US20140082073A1 (en) * | 2012-09-17 | 2014-03-20 | Dropbox, Inc. | System and method of creating unique profiles on a social networking site |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949899B2 (en) * | 2005-03-04 | 2015-02-03 | Sharp Laboratories Of America, Inc. | Collaborative recommendation system |
US20050210409A1 (en) * | 2004-03-19 | 2005-09-22 | Kenny Jou | Systems and methods for class designation in a computerized social network application |
US8514842B1 (en) * | 2007-09-28 | 2013-08-20 | Adobe Systems Incorporated | Systems and methods for enabling communication between users of common virtual spaces |
US8832552B2 (en) * | 2008-04-03 | 2014-09-09 | Nokia Corporation | Automated selection of avatar characteristics for groups |
US8225213B2 (en) * | 2008-10-07 | 2012-07-17 | Siegal Bess L M | User interface (UI) control for attestation process |
US8868651B2 (en) * | 2010-08-16 | 2014-10-21 | Avon Products, Inc. | Web community pre-population method and system |
US20130185285A1 (en) * | 2011-07-22 | 2013-07-18 | Qualcomm Incorporated | Method and apparatus for multiple personality support and dynamic personality selection |
US9832156B2 (en) * | 2012-03-23 | 2017-11-28 | Salesforce.Com, Inc. | Social networking system communities and associated user privileges implemented using a database system |
US20160063650A1 (en) * | 2014-09-01 | 2016-03-03 | Microsoft Corporation | Augmenting corporate identity with data from public social networks |
KR102452387B1 (en) * | 2015-09-23 | 2022-10-07 | 삼성전자주식회사 | Device and method for generating group profile |
US10437832B2 (en) * | 2016-05-19 | 2019-10-08 | Microsoft Technology Licensing, Llc | Reconciling foreign key references and table security policies |
-
2017
- 2017-06-29 US US15/637,749 patent/US20190005592A1/en not_active Abandoned
-
2018
- 2018-05-24 EP EP18733975.9A patent/EP3646274A1/en not_active Withdrawn
- 2018-05-24 CN CN201880043651.5A patent/CN110869970B/en active Active
- 2018-05-24 WO PCT/US2018/034268 patent/WO2019005350A1/en unknown
-
2021
- 2021-01-22 US US17/155,989 patent/US11704746B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944677B1 (en) * | 2000-05-09 | 2005-09-13 | Aspect Communications Corporation | Common user profile server and method |
US20040024912A1 (en) * | 2002-05-22 | 2004-02-05 | Akihito Fukao | Device-sharing system, device administration terminal, gateway terminal, device, terminal program and device program, and method for providing a device-sharing service |
US20090198666A1 (en) * | 2008-02-01 | 2009-08-06 | Winston Ronald H | Affinity matching system and method |
US20140082073A1 (en) * | 2012-09-17 | 2014-03-20 | Dropbox, Inc. | System and method of creating unique profiles on a social networking site |
US20160050290A1 (en) * | 2012-09-17 | 2016-02-18 | Dropbox, Inc. | System and method of creating unique profiles on a social networking site |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10447624B2 (en) * | 2016-05-09 | 2019-10-15 | Quazi Shamim Islam | Method for streamlining communications between groups of primary and secondary users, wherein communication capabilities between primary and secondary users are based on whether the user is a primary or secondary user |
US11632364B1 (en) * | 2018-12-28 | 2023-04-18 | Juniper Networks, Inc. | Dynamic provisioning of user groups within computer networks based on user attributes |
Also Published As
Publication number | Publication date |
---|---|
EP3646274A1 (en) | 2020-05-06 |
WO2019005350A1 (en) | 2019-01-03 |
CN110869970A (en) | 2020-03-06 |
CN110869970B (en) | 2024-01-09 |
US20210150635A1 (en) | 2021-05-20 |
US11704746B2 (en) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9253196B2 (en) | Content access control in a social network | |
US8990329B1 (en) | Access control list for a multi-user communication session | |
US10637931B2 (en) | Image session identifier techniques | |
US20170118165A1 (en) | System and method for controlled sharing and synchronizing information across a plurality of mobile client application computers | |
KR101679449B1 (en) | Information aggregation service | |
US20060048059A1 (en) | System and method for dynamically generating, maintaining, and growing an online social network | |
US20120276883A1 (en) | Implicit group formation around feed content for mobile devices | |
US11704746B2 (en) | Extendible user profiles | |
WO2016192113A1 (en) | Method and system for online seat selection for social interaction | |
US10356021B2 (en) | Social platform for event creation and communication and method therefor | |
US20140129505A1 (en) | Social event recommendation system | |
CN113597626B (en) | Real-time meeting information in calendar view | |
US20130326362A1 (en) | Electronic communicating | |
CN113597625B (en) | Live meeting objects in calendar view | |
US9832162B2 (en) | Viral invitations for social networks | |
TW201631543A (en) | System and method of an enterprise mobile message | |
US20140245179A1 (en) | Method and apparatus for determining group decision points during a group communication session | |
US9569451B1 (en) | Folder creation application | |
CN113763192A (en) | Information processing apparatus, information processing method, and computer readable medium | |
US20230196479A1 (en) | Collaborative stories | |
US20140344350A1 (en) | Image Session Invitation and Management Techniques | |
US20190043140A1 (en) | Method and System of Socially Networking Night-life Services | |
US20240195847A1 (en) | Real-time updates for document collaboration sessions in a group-based communication system | |
US20240259384A1 (en) | Contextual message forwarding in a group-based communication system | |
US20200387559A1 (en) | Method and system for an app to make friends and find housing when moving to a new city |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHLESINGER, BENNY;WEINBERG, SHIRA;REEL/FRAME:042868/0134 Effective date: 20170629 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |