Design : Social Network

Lead: Guillaume Lerouge
Status: Active
JIRA:
Contents

Warning: This is a draft document.

Objective : define how the Social Network should work in XWiki Workspaces

The aim of the social network features would be to help people create relationships with each other within the company. The social network part encompasses a broad number of potential features. I'll list the most prominent here.

Thoughts on Social Networking

What makes a great social network is interaction between people :

  • facebook -> friends, pokes, wall posts, messages, friends feed
  • twitter -> tweets, direct messages
Interaction is twofold by its very definition. It's about going out to people and experience having them getting back to you.

There's a number of reasons why people may want to interact with you :

  • Shared interests (you're both Java developers or Mario Kart addicts)
  • Reputation (the person you're interacting with can push up yours)
  • Problem solving (interacting with you will help someone achieve its aim)
The aim of social network features is to provide you as an user with a way to :
  • Identify the people you're likely to be willing to interact with
  • Provide you with the tools that will make this interaction easy
So the 2 steps we'll be trying to address really are :
  • Find the people I need / want to interact with and build a contacts list out of them.
  • Create the tools that will make interaction easy between my contacts and me.
In doing so we need to acutely aware of the needs of companies and target them specifically :
  • Work together effectively
  • Make the right information available to the right people at the right time
  • Interact with external data sources
Here are a bunch of practical examples of where this way of thinking might lead :
  • Data about sales volume is extracted from a business database and displayed on each salesman profile. They can engage into a weekly sales contest and comment on each other latest's deals thru a Salespipe Application.
  • The number of SVN commits for the latest week / month is extracted and displayed on developer's profile pages. Developers can assess the quality and strengths / weaknesses of each other patches thru comments & a SVN Application.
The important point here is to see how the automatic extraction of data (that requires no effort from the user side) can be leveraged to trigger enriching social interaction (that does require a conscious effort). Basically, by making already available info easier to access, we can trigger valuable social interaction within the company.

Creating my personal contacts list

Improving the User Profile

This is the first step required to be able to provide easy contact list creation.

The current user profile is a direct rip from XE and as such holds little information. It would be cool to add additional information to it, such as :

  • Ability to add a résumé
  • Skills (could be checkboxes for items from a list of competencies set in the Global Admin)
  • Fields of interest (sports, hobbies, other kind of activities)
  • Tags
Specifically, freeform tags (with an autosuggest) could provide a quick and easy way for the current user to identify himself with generic attributes ("Football", "Java", "Coffee-lover"...). Then a tag-based search could be implemented to help people find related minds. Another cool possibility opened by the use of tags is that of creating virtual mailing lists -> theoretically an user could email all of his contacts who declared an interest in that topic thru tagging themselves with it ("I'm organizing a football game on Tuesday, wanna come ?" sent immediately to all football lovers for instance).

Interacting with my contacts

The first thing to do is a roundup of existing enterprise interaction tools :

  • Face-to-face meetings
  • Phone Calls
  • E-mail
  • Instant Messenging
  • Web Conferencing
  • Document Sharing
  • Mail
  • Internet / Extranet / Intranet
Our aim in building a social network is to leverage all those tools (not to replace them as of now) and to help centralize user notifications in one central location. Here are two examples of potential integration between tools :
  • E-mail, RSS & IM notifications
    • Send a summary of the differences between the 2 latest versions of a page
    • Notify when a new file has been uploaded / deleted and by who
  • E-mail / IM / Document to wiki page import tool
Specifically, the messenging interface should not conflict with existing e-mail accounts. There is a fundamental difference between a wiki and e-mail : e-mail is built for notification purposes while a wiki is built for asynchronous collaborative work on a set of shared & interlinked documents. E-mails are not supposed to store content, only notifications. So we need to make it easy to share links to content thru emails :
  • "Tell someone about this page" button (located on any wiki, blog, file, picture page) -> sends an email with a short message and a link to that page to someone who's already registered as a member on the XWS Instance and has the rights to view that page.
  • "Send a message to this user" button (located on any profile page) -> sends an e-mail message to the user. The message can be typed right from within the wiki interface. It will appear to have been sent by email address registered in the profile of the current user.
  • "Subscribe to this user updates" button (located next to each contact on the "My Contacts" page) -> let the current user decide whether or not he wants to receive notifications of the latest blog posts published by that contact in his dashboard's notification stream.
Actually, we could even go so far as to implement a presence mechanism (a little green dot showing up next to someone's name when she's currently connected to the XWS instance) coupled with a chat system :
  • You can click on someone's Status indicator. You're sent to his profile page.
  • On the user's page, when she's connected, a "start a chat" button is available
  • Clicking on it creates and opens a specific one-to-one chatroom.
  • The contents of the chatroom can be archived in a wiki page of the user's choice.
Version 11.1 last modified by GuillaumeLerouge on 24/04/2008 at 02:15

Comments 0

No comments for this document

Attachments 0

No attachments for this document

Creator: GuillaumeLerouge on 2008/04/24 01:16
This wiki is licensed under a Creative Commons license
1.5.2.12758