/social_stream

Social Stream is a core for building social network websites.

Primary LanguageRubyMIT LicenseMIT

Social Stream: core for building social network websites

Social Stream is an engine for Ruby on Rails. It provides a robust and flexible core with social networking features and activity streams for building websites.

<img src=“https://secure.travis-ci.org/ging/social_stream.png” /> <img src=“https://gemnasium.com/ging/social_stream.png” />

Social networking

Social networks are a new paradigm on web application design. Social networking platforms stand among the most popular websites, while many content oriented applications are supporting social networking features in order to improve engagement, enhance user awareness and stimulate communities around the website.

Social Stream is based on social network analysis (SNA) concepts and methods, including social entities (actors), ties and relations. Social Stream is so flexible that you can define custom actors (groups, organizations, institutions, social events) and relationships (friends, collegues, members, administrators, contributors, attendants, speakers).

It also provides a new tie-based access control model, which grants rights at the relation level, allowing you to share activities with friends, administrators, members or everybody.

Activity Streams

Activity Streams is a format for syndicating social activities around the web. It has already been adopted by some of the major social networking platforms.

Social Stream provides a database schema based on the Activity Streams specification, leading your application towards a well-known compatible data model design. It is extensible so you can add your own activities easily.

Installation

Add the following to the Gemfile of the your Rails application:

gem 'social_stream', '>= 0.19.0'

and run:

bundle

Then:

rails generate social_stream:install

Do not forget to migrate your database

rake db:migrate

Since Social Stream depends on Devise, make sure you follow its setup instructions. Specifically, make sure you set the default URL options for your environments at config/environments/*.rb with something like:

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

Social Stream is not compatible with default mass attributes protection shipped with Rails 3.2.3 weblog.rubyonrails.org/2012/3/30/ann-rails-3-2-3-has-been-released/

You must set

config.active_record.whitelist_attributes = false in config/application.rb

Social Stream components

Social Stream is divided into components. Developers can customize their social network with the functionalities they need for each case. For instance, the Gemfile in an application using documents and links only would contain the following:

gem 'social_stream-documents'
gem 'social_stream-linkser'

Current Social Stream distribution include the following components:

  • Base, basic functionalities of contacts, streams and walls, along with users, group, post and comments

  • Documents, support for activities on files: pictures, audio and video with a HTML5 player

  • Events, sheduled events with calendar

  • Linkser, advanced management of links to other webpages

  • Presence, XMPP based chat support

Documentation

Social Stream documentation is available at rdoc.info

However, most of the documentation is in the base gem.

Discussion

We are reaching beta phase of development. Feel free to add an issue or send a message at github.