Thanks for the presentation. We at http://www.buuuz.com Find this very helpful. By the way, http://www.buuuz.com is a website for Artist who aims to getting the youth of the world to listen to what they have to offer. Pretty Clever.
Simple Social Networking with Ruby on Rails - Presentation Transcript
Simple Social Networking With Ruby on Rails
Justin Henry
[email_address]
http://greengaloshes.cc
Look, Ma! I’m on the Internets!
delicious/kapowee
vimeo.com/bootstraps
flickr.com/zappowbang
twitter.com/jhenry
upcoming.org/jhenry
goodreads.com
yelp.com
linkedin.com
brightkite.com
friendfeed.com/puddlestomping
Simple Social Networking With Rails
What is a social network?
Why build a social network?
How might one build a social network?
Hey, look, an example!
What is a social network?
Context of web applications
Wikipedia has more on the broader, sociological concepts:
http://en.wikipedia.org/wiki/Social_network
What is a social network?
Provides a Utility/Function (Content)
Content is still king
Content tends to be user-generated, controlled, and owned *
Content interaction patterns (generating new content, sharing/republishing, modifying/remixing)
What is a social network? http://www.flickr.com/photos/vj_pdx/144902289/
What is a social network?
It's People!
user relationships are many-to-many
a blog is one-to-many
User interaction patterns (friendships, fans, friends-of-friends)
Why build a social network?
What are you selling?
Idea, product, theology, movement, etc.
Why will your users come here?
Why build a social network?
What channels do you currently reach with your customers?
How are you interacting with your customers?
How do your customers interact with each other?
How do your customers interact with their customers and others around them?
Why build a social network?
The evolution of the newsletter
newsletters -> email lists -> blogs -> social networks?
Why build a social network?
It's fun!
Crowdsourcing
Think small - it doesn't have to be the next Facebook.
Put The Service and The Community back in community service
Scratch that itch
How do you build a social network?
Join as many as you can!
Get a feel for what others are doing
Consider this an education in UX/UI
Reading blogs or books will help you become a better writer, so...
Using these applications will inform your development process
How do you build a social network?
What will our data look like?
Users
Relationships (friends/fans)
Content
Pre-Fab vs. Home Cookin'
Building from Scratch
It's not too far off from the build-a-blog in 5 minutes example
Just need a few more models, right?
Add in a few plugins....
Home Cookin' - Example Relationship Text create_table :connections do | t | t.integer :person_id t.integer :contact_id t.integer :status t.timestamp :accepted_at t.timestamps end Insoshi's connections migrations:
Home Cookin' - Example Relationship create_table :friendships do | t | t.integer "user_id" , :null => false t.integer "friend_id" , :null => false t.datetime "created_at" t.datetime "updated_at" t.timestamps end Daniel Fischer’s “Fischy friends” example:
Home Cookin'
A few plugins and tools for consideration:
Paperclip
acts_as_commentable
acts_as_taggable_on
Pre-Fabricated
Refactoring other people's code is a great way to learn
Leaves you with the time to focus on implementing features, etc
Example App - MyEventCarbon create_table "communications" , :force => true do | t | t.string "subject" t.text "content" t.integer "parent_id" t.integer "sender_id" t.integer "recipient_id" t.datetime "sender_deleted_at" t.datetime "sender_read_at" t.datetime "recipient_deleted_at" t.datetime "recipient_read_at" t.datetime "replied_at" t.string "type" t.datetime "created_at" t.datetime "updated_at" t.integer "conversation_id" end You could modify an existing model: ... but that could impact other parts of the system.
Example App - MyEventCarbon class CreateCarpools < ActiveRecord::Migration def self.up create_table :carpools do | t | t.integer :person_id t.integer :contact_id t.integer :event_id t.integer :status t.timestamp :accepted_at t.timestamps end A new table might be more appropriate: Duplicate the connections table, add an event_id and whatever other fields as needed.
Example App - MyEventCarbon
Next steps
Carpooling offering/accepting/tracking
“Live” carbon calculations
Pull events from other services (upcoming, eventful)
Import ical files, RSS, microformats (hcal)
Adding to activity feed
backchannel integration
Moving forward
Your homework: Join some more social networks and start using them.
They work best when people you know (that's us) are using them with you
Join me! Some of my networks are listed at http://friendfeed.com/puddlestomping
Sourced/Resourced
Wikipedia article on "Social Network" http://en.wikipedia.org/wiki/Social_network
Jim Neath > Building a Social Network Site in Rails: http://jimneath.org/2008/04/25/building-a-social-network-site-in-rails/
MissingMethod > How To Build a Social Network with Ruby on Rails: http://www.missingmethod.com/2007/01/08/how-to-build-a-social-network-with-ruby-on-rails/
Friendship model examples & self referential models:
Dan Fischer > Fischyfriends: http://github.com/dfischer/fischyfriends/tree/master
1 comments
Comments 1 - 1 of 1 previous next Post a comment