Skip to end of metadata
Go to start of metadata

ATutor OpenSocial Development

The ATutor Social Networking features are intended as a way for ATutor users to network with each other, share information about themselves, their activities, and their interests, and interact with others with shared interests.

This project will be part of the Lights Camera Access Project (LCA!). The goal of this project is to provide a means for those in the entertainment industry, and particularly those in the industry with disabilities, to make themselves known and to develop a network of contacts with similar interests and goals. The ATutor Social Networking features will extend the e-learning environment to be implemented as part of the LCA! project, which delivers courses to help members of the entertainment community expand their skills, and put those skills into practice through the network of contacts they develop through social networking.

OpenSocial Standards

ATutor will be extended with the Google OpenSocial specifications. OpenSocial is made up of a collection of open source social networking libraries that perform a variety of social networking functions, on top of which social networking environments and social networking tools can be built. These specifications define standards way of creating social networking features. And, currently, is the first, and only standard for social networks. It is made up of two sub standards: the Container specification, which defines how host systems, like ATutor, should handle OpenSocial applications, and the Gadget specification, which describes how the applications themselves should be created to interact with a container system.

OpenSocial Specification
Example Gadget: OpenSocial Directory
Example Gadget: SlideShare

There are a number of advantages of adopting OpenSocial specifications. First, its standard so there are many other systems also using the standard, and gadgets created for those systems will work with the ATutor system, allowing ATutor administrators to choose from hundreds of existing social tools to build a social networking environment specifically tailored to the needs of a particular community. For LCA!, it also means that new gadgets can be created with relative ease to add tools specific to the needs of a particular community. So for instance, creating a gadget that gets a list of shows or events from a central ticket agency, then allows users to purchase tickets, would be a relatively easy feature to create just for LCA!. To create new gadgets requires only knowledge of HTML and Javascript, skills Webmaster generally already have.

Gadget Specification

Another advantage of adopting the OpenSocial specifications is the ability to link different social networks together through a central location based on the Apache Shindig server. Though a social network does not require a Shindig server, and can operate as a standalone social network service, with the Shindig server it is possible to link different social networks together. So for instance, the social network for the Canadian entertainment industry could be linked to a network in the U.S. or in Europe. Or, other networks such as MySpace, or Hi5, or LinkedIn (but not yet Facebook) could be linked into the LCA! network, so users who happen to be members of other social networks, can link their networks together. A list of systems that have adopted OpenSocial can be found at:

Who's Using OpenSocial

Development Activities

Five areas of development will occur:

  1. Implement OpenSocial Container Specification in ATutor
  2. Assemble existing gadgets to include in the system useful for LCA!
  3. Create LCA specific Gadgets
  4. Create Network server adapter to connect to external networks
  5. Redevelop ATutor installer features, to create optional social network during installation

Implement OpenSocial Container Specification in ATutor

This part of the project involves integrating the OpenSocial libraries with the ATutor source code, and separating some on the current standard modules in ATutor from the core source code, so they are more easily implementable as OpenSocial tools. For example, the Forums in ATutor are currently buried in places throughout the ATutor core source code. The pieces of the forum will be consolidated in a single "forum" module directory, where OpenSocial features can be added, or the entire forum can be replaced with another forum application.

Once the current modules are consolidated, the OpenSocial Libraries will be integrated into ATutor where they will be added to the ATutor API (Application Programming Interface) to allow ATutor feature developers to use OpenSocial features in their development. The OpenSocial libraries will extend the ATutor Module API, so that modules as they are currently created can continue to be created as they always have been, but with the ability to add social networking capabilities. Modules in ATutor are essentially a set of method for linking new features into the interface, so developers can create functionality as they please, then use the ATutor module API to make that functionality operate as a part of the ATutor system.

The complexities with implementing Container specification will be hidden away from most users.

Central Networking Service

A central networking service will be setup as a hub through which ATutor systems can connect and link to each other. This will involve creating a Social Network Server module, which essentially keeps track of ATutor systems that link their Social Network Client features into a central community hub. An installation of the Social Network Server will be setup, using Shindig, as the primary public network hub, though others may also install there own version to create private networks, which can be limited to connections from specific private ATutor installations. Or, an ATutor installation can run on its own, with all social networking occurring from a single location.

ATutor administrators can submit the URL of their Social Network Client module to connect into the network, after which they may select which local Web services they will link into the central hub, and which ones from the larger network to link back into their local system.

Some Existing OpenSocial Tools

The following are examples of the broad variety of OpenSocial gadgets available, some of which may be included with the LCA! social network. Many of the gadget applications found through these sites, can be added to ATutors OpenSocial implementation in hour or less, by simple copying the code for a gadget into an ATutor module panel or sidemenu block. (Have a look through some of the gadgets available through these sites and put together a list of those that might be included with LCA! ATutor. )

#http://opensocialdirectory.org/wiki/List_of_Applications

  1. http://opensocialdirectory.org/wiki/Main_Page#List_of_OpenSocial_Applications
  2. http://www.imeem.com/developers/downloads#Applications
  3. http://code.google.com/apis/igoogle/
  4. http://developer.yahoo.com/ypatterns/
  5. http://www.hyves.nl/gadgetgallery/#searchhyver=&tabFilterType=featured&__state__=1
  6. http://developer.ning.com/opensocial/application/list
  7. http://opensocial-examples.googlemashups.com/
  8. http://www.tripit.com/
  9. http://www.slideshare.net/
  10. http://www.box.net/
  11. http://www.huddle.net/
  12. http://www.techcrunch.com/2008/10/28/linkedin-means-business-with-new-application-platform/
  13. http://opensocialfactory.com/portfolio_opensocial_myspace_bebo_hi5_friendster_plaxo_orkut.html
  14. http://www.iwiddit.com/apps/archive
  15. http://code.google.com/apis/gadgets/docs/legacy/gs.html#GGE
  16. http://www.google.com/ig/directory?hl=en&type=gadgets
  17. http://www.schulz.dk/pacman.xml
  18. http://www.google.com/ig/modules/calendar3.xml
  19. http://throttled.org/googlegadgets/youtubesearch.xml
  20. http://www.google.com/ig/modules/builtin_gmail.xml
  21. http://www.pixelmedia.nl/gmodules/ucc.xml
  22. http://ralph.feedback.googlepages.com/googlecalendarviewer.xml
  23. http://www.zytu.com/Gadgets/smiley.xml
  24. http://aruljohn.com/gadget/ip.xml
  25. http://www.labpixies.com/campaigns/converter/converter.xml
  26. http://www.labpixies.com/campaigns/dates/dates.xml
  27. http://www.openinventions.com/spellcheck/openinventions_spellcheck.xml
  28. http://sakunkoo.googlepages.com/grewordoftheday.xml
  29. http://andrewgadget.googlepages.com/mapquest.xml
  30. http://www.seebeforeyoudie.net/google_content.xml
  31. http://gwidgets.com/lig/gpa/po/peoplefinder.xml
  32. http://financemyidea.com/coin-flipper.xml
  33. http://gwidgets.com/lig/gpa/charles447/craigslist.xml
  34. http://nuzs.com/sign.xml
  35. http://www.google.com/ig/modules/builtin_bookmarks.xml
  36. http://hosting.gmodules.com/ig/gadgets/file/109162539679639397174/imeem.xml
  37. http://www.nuzs.com/shortcuts.xml
  38. http://www.atlas-labs.net/gadgets/widget/wallpaper/wallpaper.xml
  39. http://sathishsara.googlepages.com/myfirstGadget1.xml
  40. http://gwidgets.com/lig/gpa/charles447/leadership.xml
  41. http://mediawebmonster.com/Smiles/animalsmile.xml
  42. http://artpaintingsphotography.com/Animals/Puppy/happypuppies.xml
  43. http://mainpagegadgets.googlepages.com/basketball.xml
  44. http://www.atlas-labs.net/gadgets/widget2/arix/arix.xml
  45. http://games.fungadgets.org/bike/stuntdirtbike.xml
  46. http://fun-pics.com/pics.xml
  47. http://www.google.com/ig/modules/builtin_news_business.xml
  48. http://hosting.gmodules.com/ig/gadgets/file/111311123200664007084/Body-Mass-Index-Calculator.xml
  49. http://www.google.com/ig/modules/builtin_news_sports.xml
  50. http://brainden.com/gadgets/puzzles-gadget.xml
  51. http://www.google.com/ig/modules/builtin_movies.xml
  52. http://aruljohn.com/gadget/zip.xml
  53. http://hosting.gmodules.com/ig/gadgets/file/103187267043252412584/iPhoneU_070906.xml
  54. http://hosting.gmodules.com/ig/gadgets/file/108505781431419892290/espnvideosgadget.xml
  55. http://www.readthequran.org/googlegadget/ReadTheQuran.xml
  56. http://hosting.gmodules.com/ig/gadgets/file/108810348889111247842/widget.xml
  57. http://www.transparent.com/widgets/igoogle-dutch.xml
  58. http://translateg.googlecode.com/svn/trunk/translateg.xml
  59. http://www.labpixies.com/campaigns/babylon/babylon.xml
  60. http://gadgets.presse-papiers.fr/clock/clock.xml
  61. http://www.myipage.com/XML/Google_Links.xml
  62. http://hosting.gmodules.com/ig/gadgets/file/110301441235730775478/bigtranslator3.xml
  63. http://upspring.co.uk/google/gadget/wordlearner.xml.php
  64. http://saccharinesara.googlepages.com/ItalianEnglishDictionary.xml
  65. http://123teachme.com/gadgets/vod.xml
  66. http://joppy.info/gadjets/google_translate1.xml
  67. http://www.transparent.com/widgets/igoogle-english.xml
  68. http://hosting.gmodules.com/ig/gadgets/file/107654619660605951333/deafbraille.xml
  69. http://www.transparent.com/widgets/igoogle-portuguese.xml
  70. http://www.transparent.com/widgets/igoogle-latin.xml
  71. http://www.transparent.com/widgets/igoogle-french.xml
  72. http://www.transparent.com/widgets/igoogle-chinese.xml
  73. http://m.hochumillion.com/300.xml
  74. http://www.transparent.com/widgets/igoogle-german.xml
  75. http://hosting.gmodules.com/ig/gadgets/file/115080802449407757759/chinese.xml
  76. http://www.transparent.com/widgets/igoogle-italian.xml
  77. http://saccharinesara.googlepages.com/SpanishEnglishDictionary.xml
  78. http://www.transparent.com/widgets/igoogle-russian.xml
  79. http://saccharinesara.googlepages.com/RussianEnglishDictionary.xml
  80. http://hosting.gmodules.com/ig/gadgets/file/104190191449177106016/gtran.xml
  81. http://www.transparent.com/widgets/igoogle-arabic.xml
  82. http://saccharinesara.googlepages.com/GermanEnglishDictionary.xml

ATutor Default OpenSocial Features

In the first implementation of OpenSocial in ATutor the focus will be on primary aspects of a social network used to connect people. The following screenshot, taken from the LinkedIn social networks, is an example of features that might be available. A broad range of personalized features can be made available to each user, that can be added to the environment as they choose. Five primary features are described below;

1. Open Social Tool Bar

An ATutor module consisting of a side menu block, will be created into which all other social networking tools can be plugged in. The screen shot to the left resembles what the OpenSocial Toolbar might look like, taken from the LinkedIn network. Initial tools linked from the toolbar will include: Groups, Profile, Contacts. Messaging, and Add Connections tool.

To turn ATutor from a Learning Management System into a social learning environment, the OpenSocial side menu module is turned on.

The OpenSocial Tool bar will be available throughout ATutor both within courses, and outside courses, accessed through a standard ATutor module sidemenu block. The screenshot below shows the ATutor MyCourses page, with the social networking tools positioned to the left.

2. My Network's Activity

In the first screenshot above, the center section lists activity in the person's network, describing what occurred in groups the person belongs to, as well as activities by contacts in the person's network, and other changes that have recently occurred. Tools for gathering and presenting network activity will be created, to track ongoing change in a person's network.

3. Profile:

This tool will expand on the current ATutor profile to include areas for describing education and employment background, for creating a resume, company profile, a description of personal interests, and a listing of groups the person is associated with. A user's Profile will also include contact settings to allow members to control who can contact them. A typical Profile Edit screen might look like the following.

Accepting Contacts

Accept any introductions y/n
Accept introductions made by friends

Opportunity Contact Preferences

Career Opportunities
Job Inquiries
Request for Expertise
Business Deals
Personal Reference Request
Reconnect Requests

Profile Photo

Upload an avatar

Public Profile

Choose which parts of your profile to make public

Visibility

Set visibility to My Friends, My Network, Everyone

4. Groups

This networking tool will be made up of three part:

MyGroups: A listing of the groups a person is a member of.
Groups Directory: A listing of all groups on the network, to which users can request membership.
Create Groups: User can create their own interest groups and invite contacts to join.

MyGroups:

A list of groups to which one is a member, or a manager. A collection of tools for groups will include:

Share: Send information about the group to your contacts
Discussion: Forum related to the group topics, to which group members can post.
News: Post news items to the group, to be dispersed to all members.
Updates: A listing of all changes in the group: this week, last week, last two weeks
Members: A listing of all groups members
Settings: User settings for visibility in ones profile, how updates should be received, instant, daily digest, weekly digest.
Manage: Manager setting for Group, users, blocking, pre-approving new members

5. Contacts

The Contacts tool will be a central feature of the OpenSocial network. User can search through people on the network to invite them to become a connection. If a connection invitation is accepted, that person is added to the invitees contacts list.

LCA! Feature Requirements

The above features represent an implementation of basic social networking tools. Many other tools are available to choose from, from those listed in the Existing Tools links above. And, new tools can be created to produce specific functionality for the LCA! project. One such tool mentioned is a tool for accessing and displaying ticket information. Another might be a google ads gadget to help generate revenues for the site.

Buy Tickets Now: TicketMaster's Tickets Now service encourages Web site managers to direct traffic from their sites to the Ticketmaster site, and pays 7% of sales to the site owner. An OpenSocial "Buy Tickets Now" gadget could be created specifically for the LCA! project so its community has quick access to ticket sales, and a tool that helps generate revenues for the site. The gadget might allow visitors to the LCA! site to search for tickets by event title, browse tickets by category, or date, and when tickets are found, purchase them directly through the Ticket Master site.

Ticket Master Affiliates Program http://www.ticketsnow.com/affiliates/Affiliates.aspx

Google Entertainment: Google also runs an affiliates program that allows Web site owners to display advertisements geared toward the community viewing the advertisements. Sites displaying google ads are paid a small amount each time an add is displayed, and a little more when an ad is clicked, and receive monthly commission cheques.

Google AdSense https://www.google.com/adsense/login/en_US/

Other suggestions for Open Social Gadgets for the LCA! site might include

Work Opportunities
Portfolio
My Videos
Photo Gallery
My News Feeds
Documents
Blog
My Other Networks
Chat
Recommendations

Resources

Open Social
Open Social Overview

FOAF: Friend of a Friend software

Social Networking Services

Open Social API

OpenSocial

Social Design Best Practices

Apache Shindig

RESTful/PHP

PHPRestFulSQL

Tonic Restful PHP Library

Konstrukt RestFul for PHP5

WSO2