Your user profile wishlist

Events happening in the community are now at Drupal community events on www.drupal.org.
michelle's picture

Advanced Profile Kit is now in active development for D6. I have a lot of ideas of where I want to take it but I also have a lot of people wanting it to stabalize. So I've decided I'm going to go the same route as I did with Advanced Forum and cut off 1.x with a minimum set of features and then go wild in a 2.x branch.

So I'm looking for some feedback. What features do you consider to be essential before you'd even consider using APK? And then what is your wishlist? Feel free to name anything you like. I won't necessarily code it all but I will go through all the ideas and come up with a plan of what I am able to implement.

Though I do have a lot of my own ideas, I'm going to hold off on posting them. I'd like to hear what other people think first.

Thanks,

Michelle

Comments

Comment mockup

portait's picture

This Mockup (http://drupal.org/node/358623) shows how I would love to see comments. :)
Screenshot: http://i40.tinypic.com/2lj6xb8.png

profile view

portait's picture

And this is a whole Profile view mockup.
Screenshot: http://i42.tinypic.com/2csjwab.png

Nice

michelle's picture

APK can already do quite a bit of that but there's some things there that gives me ideas. Thanks for the mockup.

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

Your are welcome. :) I think

portait's picture

Your are welcome. :) I think that the profile is a very important part of drupal which was pretty unnoted and I hope that this will change with your APK module. The problem with lots of modules which don't make it into core is that after a while development gets discontinued.

The main thing that Social

icecreamyou's picture

The main thing that Social Networks have that Drupal doesn't by default is a synthesis of all the information from the entire site on the profile page. Take Facebook: there are AJAXified tabs across the top that let users prioritize what content they want others to see from their applications. The first tab shows essentially a Guestbook, with the avatar and limited information on the left; the second tab shows information (name, birthday, etc.); the third tab usually shows photos; the fourth other applications. In Drupal it is not enough to add tabs to the user page because tabs (especially non-AJAX ones) are clunky, so we use Panels to arrange information as we want it. The problem, until APK, was that if you didn't know PHP and SQL, there was no way to collect information from different sources and put them together in one panel. But since you (Michelle) have graciously taken it upon yourself to provide the mashup, let's look at the different kinds of content we want to synthesize.

The two most popular types of content for social network profile pages, I would imagine, are Guestbook and Activity. Most people will also want to have some kind of View or other arrangement of users' recent posts. Then there are other modules--Facebook-style Statuses, User Deco, User Badges, User Titles, Organic Groups, User Relationships/Friendlist, Flag, Bio/Nodeprofile/Content Profile... just to list a handful of the ones I run on one of my sites.

Another major issue--the largest one, in my opinion--is that it's obnoxiously difficult for users to edit their information. They have to go to an Edit tab and scroll down until they find what they want, or possibly go to other subtabs if they're using the Profile module. What sites like Facebook get right is that they allow users to simply click on the information on the page where they see it, and they can edit it right there and then without any page-loads or hassle. That would be a great feature in my opinion, although I imagine that that would be difficult to do.

You should get an idea of some of the nice additional things I coded myself for profiles on BabelUp from the attachments (warning: they're big).

Edit: the attachments didn't stick for some reason. Here they are:

Admin on Own Profile
Authenticated User on Another User's Profile

Specific profiles/setups

gusaus's picture

This is a suggestion I left in this somewhat related post - http://groups.drupal.org/node/4013

Specific profiles/setups that would cater to a specific user type and/or purpose. For instance, there could be a custom set of default user profiles and content creation/recommendation tools for a band, event producer, editor/tastemaker, tv/radio station, etc. Somewhat similar to creating an install profile, but in a modular-profile-centric fashion (now there's some good terminology!). If user profiles were broken down this way, it should make it easier to create custom themes and layouts for each specific purpose.

Gus Austin
PepperAlley Productions

Gus Austin

Wishing and dreaming :)

Rosamunda's picture

It would be great if could be implemented a sort of "guestbook-wall" module, with limited characters that shows up when you write, facebook´s wall. That´s very cool as a new feature. +1 for that.

Now, there would be geat if there could be some customization inside the about me block, showing something like:
Current viewing profile (and NOT current logged in user´s):
Nº of User´s Posts and link to it list
Nº of User´s friends (and separate a block of his friend´s list, that is already possible)
User´s last active
Now: online visiting/voting/commenting on...
User´s Birthday
User´s Gender
A link the current profile´s owner, to be ready to copy and paste it somewhere else.

And the possibility to turn off whetever stuff you just don´t want in there.

A list of current profile´s owner´s groups he is involved would be nice too.

Some of that stuff probably is already there, but I think one of the hardest issues to get, is to show not the current logged in user´s stuff, but to show the profile´s owner stuff. It is usually with some modules a bit confusing. Happily Views2 is helping with all that...

I think a good and nice example are the profiles in the drupalsn.com site...

BTW, Thanks for creating this discussion!

Rosamunda

.

icecreamyou's picture

Almost everything you're asking for already exists...

Thanks

michelle's picture

Thanks for the feedback guys. I'm trying to take everyone's ideas and come up with some kind of plan. It won't be quick because I only do this part time, but we'll get there. Anyone else have ideas? Keep 'em coming. :)

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

Is this a solo effort or could others get involved?

gusaus's picture

Is this a solo effort or could others get involved? The profile kit will be a way to build all sorts of profiles? Is the intent to have recipes and/or presets for different profiles? Probably will have a better idea of what this could do if I try it out - http://drupal.org/project/advanced_profile

If there's a way to get others involved, possibly we could create some tasks and use the Drupal Dojo and Dimdim to collaborate. What do you think?

Gus Austin
PepperAlley Productions

Gus Austin

.

michelle's picture

Well, APK itself is a solo effort but APK is just a gathering point for mostly other peoples' work. Most of the stuff that goes into a profile is provided by other contrib modules. What I'm doing is researching, making bridges and glue, providing some defaults for better profiles out of the box, and likely tutorials for more advanced ones. There's still plenty of work for people to create / improve the modules that APK is assembling.

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

Better Privacy and Apps on Profile

minesotaa's picture
  • I know some features are already there but trying to make a list
  • We should have mock up screenshots (already some in above) as well as study/s-shots of fbook, orkut
  • How nodes are set private is becoming increasingly important as they are getting tied to profile
  • Apps or Gadgets are fast becoming part of social profile in almost all social nets

Privacy

  • User can choose to hide online or show status like "will be right back"
  • User can hide profile with just "Add friend" link on ( or even that off )
  • User can choose what "Activity" to show on the profile (#comment-62794 above )
  • User A can block user B from B's profile - true full blocks ( contents, comment, pms as in social net)
  • User can choose not to give her / his rss feeds

There is probably no way so far for user to put rss feeds off, pm blocks are full blocks ( all or none)
and "ignore/content blocker" instead of completely "vanishing" the ignored user shows clickable links.

Profile comments

Basic :
- Ajax commenting, A replies to B without leaving her/his profile ( see orkut for a demo )
- User can delete own comment in any profile and others' comment in her/his profile
- Userpoints of B dont get deducted when A deletes B's comment to clean profile
- Header area or the tab shows total no. of comments
- Get Notification of Profile Comment like PM Notification on top of page or live ajax alert (php script alycia / live site orkut has this feature) plus minus email notification

Advanced :
- Two way comment or 1:1 comment or "Wall" feature
- Users can attach inline images to comment ( this is getting popular in actual social nets )
- Administrative choice to show comments in-profile or as tabbed page
- Administrative choice to determine how many comments in each of above case before "more" appears

Admin currently cannot determine n number of comments on profile where n =5 or less than 10
Wall seems to be not possible with existing modules

Friend list

  • Show nice grids or linear albums with "more" link
  • Show common friends

Advanced
- Probably different level of friendships
- Getting Friends feeds on my profile ( eg thumbs of friends' latest photos)
- Bulletin to freinds ( that is : one bulletin post : goes to all friend )
- Administrative choice to determine how x by y ( how many in a ) grid and how many chars to show if its a long name

Groups

  • Show icons of Groups in nice grids or linear album with more link
  • Show / Mark which groups I founded

General

User can choose theme for her profile ( already module is there )
Profile tags or keywords ( already module is there )
Profile balloon or header ( already module is there )
Profile visits ( already there )
Latest posts differnetiated into new posts and comments ( currently tracker tracks all collectively)
Latest 'n' number of thumbs from album ( already there )
Show my feeds ( n items of n feeds ) on profile ( a tabbed or linked page - see orkut for a demo)
Descriptive facts line bday, asl etc ( already there )
Tabs show no. of comments, no. of photos etc
Profile page show if album is locked/private
Probably user choice to upload a big profile photo and thumb/avtaar for nodes ( probably possible )
fancy stuffs : nudges, badges , testimonials

------------------

Tabs or long, long scroll?
Adminstrative choice to determine how the profile page looks, long scrolls, blocks, tabs -
which to go where ...

Ajaxification
A nice example is invision blog
User is presented with the basic blocks ( admin determines what is basic for their site) which
they can turn off or on and add more "widgets" from drop down lists. These widgets can be simple things like their latest blog posts or image thubnails or really advanec ones like Apps or Gadgets.
Users can also drag and drop to make a top block bottom one or a right block left one, provided admin has enabled such a theme.
Users get "live" notification or audio alerts when there is some profile comment or nudges
The currently absent friend module had some ajax features but now the module page shows "access denied" ......

Nice list!

michelle's picture

Thanks for all that. That gives us a good starting point. I'm not going to do a line by line comment at this point but I wanted to mention that friend has been abandoned and unpublished because it has a security hole that went unfixed.

Lots of good stuff on this post. I'm hoping to take some time this weekend to write up a plan of attack, but I already have some ideas of how to do the various parts.

Thanks,

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

First stab at a spec document

michelle's picture

Please forgive the horrid HTML. I made an outline in Word and exported it. Here's my first stab at taking what's been said here as well as my own thoughts and putting it all together. If someone has time to clean the HTML, it would be a good start of a wiki. I need to get back to development, now, though, so this is it from me for a bit.

Public profile


The public profile page is the space where the user tells others about himself. This is meant as a landing page for people wanting to know more about the user rather than a page that the user himself uses.



  1. Privacy states (note: it is assumed that admins can view all)


    1. Completely private. Only user can view.

    2. Friends only. Entire page is only visible to friends and user.

    3. Partially visible. Each section has an option to display to all, friends only, user only.

    4. Detailed control: Each item has an option to display to all, friends only, user only.

    5. Completely visible. No sections / items set private.

  2. Theming


    1. User can select from existing profile themes (not implmented)

    2. User can upload custom CSS (not implements) that is cleaned before using (cTools)

    3. Users can move sections around or add/remove sections (not implemented; would be panels based)

  3. Sections (in no particular order)


    1. Author pane (from Author Pane module)


      1. The Author Pane is a block of user information gathered from various sources. What information it contains depends on what contrib modules are installed. This block is customizable via the template file and template preprocess functions.

      2. User name (core)

      3. Status (facebook-style statuses)

      4. Avatar image (core)

      5. Joined date (core)

      6. Post count (user stats)

      7. Posts per day (not implemented)

      8. Points (userpoints)

      9. Badges (user badges)

      10. Title (user titles)

      11. Selected role display (not implemented)

      12. Location (location or content profile)

      13. Groups (organic groups)

      14. Online / offline / last active (core)


        1. More statuses such as "busy" and "brb" (not implemented)

      15. What the user is currently doing on the site (not implemented)

      16. Add friend (user relationships / flag friend)

      17. Private message (privatemsg)

      18. Email (core - contact)

      19. IP (user stats)

      20. Block/unblock (fast toggle)

      21. Jump link to user's posts (not implemented)

    2. Contact – Profile node fieldgroup


      1. User provided links to outside contact methods such as IM

    3. Stats – Profile node fieldgroup


      1. User provided information such as gender, education, martial status

    4. About – Profile node field


      1. Open text area description of user

    5. Interests – Profile node field


      1. Open text area for description of user’s interests (non tagged)

    6. Links – Profile node fieldgroup


      1. User provided links of interest to user such as other SN sites they are on or their homepage

    7. Profile visitors (APK or profile visits module)


      1. Linked username and time ago

      2. Tiny avatars (not implemented)

    8. Friend gallery (APK included view)


      1. Count of friends (not implemented)

      2. First N friends with avatars

      3. Link to more

    9. Guestbook / comment wall (guestbook module; partially implmented)


      1. Ajaxified form at the top for visitors to leave a comment


        1. Should be able to add images and formatting

      2. Show total number of comments

      3. List of comments below with user avatar (ajax paged)

      4. Ability to comment back and automatically have it show up on the other user’s wall

      5. Wall to Wall showing conversations in a more readable form than flipping back and forth

    10. Share page


      1. Profile link – Aliased link to the page for others to copy / bookmark (not implemented)

      2. Other social bookmarking links. (addthis module?)

    11. Activity (activity module; partially implemented)


      1. Show just user, just friends, user and friends

      2. User avatars

      3. Activity type avatars

      4. Comments

      5. Ability to delete any of your own

    12. Blog (core)


      1. Excerpt from latest post and titles of a few more (APK but not implemented yet)

    13. Microblog (not implemented)


      1. Twitter like functionality

    14. User tracker


      1. Views to show latest posts by user, broken up into type.

      2. Separate topics started by user from topics commented on

    15. Media gallery


      1. View showing thumbnails of media uploaded by user

      2. Site specific; can’t really be included in APK

  4. Tags - Interests, books, movies, etc. (taxonomy)

Homepage


The homepage is the landing page for the user’s use. This page needs to be highly configurable, showing the user just what they want. This should be a summary of all their and their friends’ activity on the system as well as anything else they want to track. In D5, this is covered by the MySite module. There is no D6 solution at this time.

Account


This page allows editing of basic account information. Ideally would be split up into core functionality and that provided by contrib modules. In practice, this may only be possible when customizing per site.



  1. Core


    1. User name

    2. Email

    3. Password

    4. Avatar photo (Consider moving this to profile section)

    5. Site theme

    6. Blocks enabled

    7. Signature

    8. Contact form preference

  2. Contributed (examples… this section is unlimited)

    1. Guestbook options

    2. Private message settings

    3. Notifications

    Michelle


    See my Drupal articles and tutorials or come check out the Coulee Region

    me like

    likewhoa's picture

    I got a few ideas and suggestion to your post. p.s great job on APK it's the start to something great. Suggestions will be in bold


    Privacy states (note: it is assumed that admins can view all)

    1. Completely private. Only user can view.
    2. Friends only. Entire page is only visible to friends and user.
    3. Partially visible. Each section has an option to display to all, friends only, user only.
    4. Detailed control: Each item has an option to display to all, friends only, user only.
    5. Completely visible. No sections / items set private.


    Theming

    1. User can select from existing profile themes (not implmented)
    2. User can upload custom CSS (not implements) that is cleaned before using (cTools)
    3. Users can move sections around or add/remove sections (not implemented; would be panels based)


    Sections (in no particular order)

    Author pane (from Author Pane module)

    The Author Pane is a block of user information gathered from various sources. What information it contains depends on what contrib modules are installed. This block is customizable via the template file and template preprocess functions.

    1. User name (core)
    2. Status (facebook-style statuses)
    3. Avatar image (core)
    4. Joined date (core)
    5. Last Login
    6. Post count (user stats)
    7. Posts per day (not implemented)
    8. Points (userpoints)
    9. Karma
    10. from user_karma but I don't know what will be the state of that module and others from mercmobily since he quit drupal development but should still fix bugs as he says.

    11. Badges (user badges)
    12. Title (user titles)
    13. Selected role display (not implemented)
    14. Location (location or content profile)
    15. Groups (organic groups)
    16. Online / offline / last active (core)
      More statuses such as "busy" and "brb" (not implemented)
    17. Online Status
    18. take a look at onlinestatus which would be a great addition to authorpane, the 6.x port is located at [180826]

    19. What the user is currently doing on the site (not implemented)
    20. This maybe can be taken from activity logs

    21. Add friend (user relationships / flag friend)
    22. Private message (privatemsg)
    23. Email (core - contact)
    24. IP (user stats)
    25. Block/unblock (fast toggle)
    26. Show Password from aes

    27. Jump link to user's posts (not implemented)

    Contact – Profile node fieldgroup

    1. User provided links to outside contact methods such as IM

    Stats – Profile node fieldgroup

    1. User provided information such as gender, education, martial status

    About – Profile node field

    1. Open text area description of user

    Interests – Profile node field

    1. Open text area for description of user’s interests (non tagged)

    Links – Profile node fieldgroup

    1. User provided links of interest to user such as other SN sites they are on or their homepage

    Profile visitors (APK or profile visits module)

    1. Linked username and time ago
    2. Tiny avatars (not implemented)
    3. Friend gallery (APK included view)
    4. Count of friends (not implemented)
    5. First N friends with avatars
    6. Link to more

    Guestbook / comment wall (guestbook module; partially implmented)

    1. Ajaxified form at the top for visitors to leave a comment
    2. Should be able to add images and formatting
    3. Show total number of comments
    4. List of comments below with user avatar (ajax paged)
    5. Ability to comment back and automatically have it show up on the other user’s wall
    6. Wall to Wall showing conversations in a more readable form than flipping back and forth

    Share page

    1. Profile link – Aliased link to the page for others to copy / bookmark (not implemented)
    2. Other social bookmarking links. (addthis module?)
    3. addthis good choice.

    Activity (activity module; partially implemented)

    1. Show just user, just friends, user and friends
    2. User avatars
    3. Activity type avatars
    4. Comments
    5. Ability to delete any of your own

    Blog (core)

    1. Excerpt from latest post and titles of a few more (APK but not implemented yet)

    Microblog (not implemented)

    1. Twitter like functionality

    User tracker

    1. Views to show latest posts by user, broken up into type.
    2. Separate topics started by user from topics commented on

    Media gallery

    1. View showing thumbnails of media uploaded by user
    2. Site specific; can’t really be included in APK

    Tags - Interests, books, movies, etc. (taxonomy)

    Homepage

    The homepage is the landing page for the user’s use. This page needs to be highly configurable, showing the user just what they want. This should be a summary of all their and their friends’ activity on the system as well as anything else they want to track. In D5, this is covered by the MySite module. There is no D6 solution at this time.

    Account

    This page allows editing of basic account information. Ideally would be split up into core functionality and that provided by contrib modules. In practice, this may only be possible when customizing per site.

    Core

    1. User name
    2. Email
    3. Password
    4. Avatar photo (Consider moving this to profile section)
    5. Site theme
    6. Blocks enabled
    7. Signature
    8. Contact form preference

    Contributed (examples… this section is unlimited)

    1. Guestbook options
    2. Private message settings
    3. Notifications

    That's my suggestions, I will have added more but I have to run now..

    bending technology to fit businesses.

    Social Networking Sites

    Group notifications

    This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: