SlideShare a Scribd company logo
1 of 38
Simple Social Networking With Ruby on Rails ,[object Object],[object Object],[object Object]
Look, Ma! I’m on the Internets! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Simple Social Networking With Rails ,[object Object],[object Object],[object Object],[object Object]
What is a social network? ,[object Object],[object Object],[object Object]
What is a social network? ,[object Object],[object Object],[object Object],[object Object]
What is a social network? http://www.flickr.com/photos/vj_pdx/144902289/
What is a social network? ,[object Object],[object Object],[object Object],[object Object]
Why build a social network? ,[object Object],[object Object],[object Object]
Why build a social network? ,[object Object],[object Object],[object Object],[object Object]
Why build a social network? ,[object Object],[object Object]
Why build a social network? ,[object Object],[object Object],[object Object],[object Object],[object Object]
How do you build a social network? ,[object Object],[object Object],[object Object],[object Object],[object Object]
How do you build a social network? ,[object Object],[object Object],[object Object],[object Object]
Pre-Fab vs. Home Cookin' ,[object Object],[object Object],[object Object],[object Object]
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' ,[object Object],[object Object],[object Object],[object Object]
Pre-Fabricated ,[object Object],[object Object]
Pre-Fabricated ,[object Object],[object Object],[object Object],[object Object]
Enter Insoshi ,[object Object],[object Object],[object Object],[object Object]
Inshtalling Insoshi ,[object Object],[object Object],[object Object],[object Object]
Building on top of Insoshi ,[object Object],[object Object],[object Object],[object Object]
Example App - MyEventCarbon ,[object Object],[object Object],[object Object],[object Object]
Example App - MyEventCarbon ,[object Object],[object Object],[object Object]
Example App - MyEventCarbon ,[object Object],[object Object],[object Object],[object Object]
Example App - MyEventCarbon
Example App - MyEventCarbon
Example App - MyEventCarbon
Example App - MyEventCarbon
Example App - MyEventCarbon create_table  "event_attendees" ,  :force  =>  true   do  | t |   t.integer  "person_id"   t.integer  "event_id"   t.string  "origin"   t.string  "distance"   t.string  "carbon"   end schema.rb
Example App - MyEventCarbon belongs_to  :person   has_many  :event_attendees   has_many  :attendees ,  :through  =>  :event_attendees ,  :source  =>  :person ,  :select  =>  "event_attendees.origin, event_attendees.distance, event_attendees.carbon, people.*" app/models/event.rb
Example App - MyEventCarbon ,[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Moving forward ,[object Object],[object Object],[object Object]
Sourced/Resourced ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thanks [email_address] http://greengalosh es.cc

More Related Content

What's hot

What's hot (15)

Personal Learning Networks
Personal Learning NetworksPersonal Learning Networks
Personal Learning Networks
 
Deep-Hidden-Invisible Web
Deep-Hidden-Invisible WebDeep-Hidden-Invisible Web
Deep-Hidden-Invisible Web
 
Long range planning 2013
Long range planning 2013Long range planning 2013
Long range planning 2013
 
PMUG: 2.0 Productivity Tools
PMUG: 2.0 Productivity ToolsPMUG: 2.0 Productivity Tools
PMUG: 2.0 Productivity Tools
 
Nevada Library Association -- Freebies
Nevada Library Association -- FreebiesNevada Library Association -- Freebies
Nevada Library Association -- Freebies
 
Open for Learning
Open for LearningOpen for Learning
Open for Learning
 
Sdsd
SdsdSdsd
Sdsd
 
Better Blackboard Help: Where your users need it, when they want it.
Better Blackboard Help: Where your users need it, when they want it.Better Blackboard Help: Where your users need it, when they want it.
Better Blackboard Help: Where your users need it, when they want it.
 
Softwarepowerpoint
SoftwarepowerpointSoftwarepowerpoint
Softwarepowerpoint
 
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
 
Web 2 Whats In Your Basket
Web 2 Whats In Your BasketWeb 2 Whats In Your Basket
Web 2 Whats In Your Basket
 
Andy McGregor, JISC
Andy McGregor, JISCAndy McGregor, JISC
Andy McGregor, JISC
 
The duck soup link building guide
The duck soup link building guideThe duck soup link building guide
The duck soup link building guide
 
Footprints for backlinks - Find quality backlinks in minutes
Footprints for backlinks - Find quality backlinks in minutesFootprints for backlinks - Find quality backlinks in minutes
Footprints for backlinks - Find quality backlinks in minutes
 
Joomla!, The Future, and You
Joomla!, The Future, and YouJoomla!, The Future, and You
Joomla!, The Future, and You
 

Viewers also liked

The 21st-Century Library
The 21st-Century LibraryThe 21st-Century Library
The 21st-Century LibraryK.G. Schneider
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on RailsAvi Kedar
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projectsVincent Massol
 
Wed Development on Rails
Wed Development on RailsWed Development on Rails
Wed Development on RailsJames Gray
 
Rapid Application Development using Ruby on Rails
Rapid Application Development using Ruby on RailsRapid Application Development using Ruby on Rails
Rapid Application Development using Ruby on RailsSimobo
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with RailsYi-Ting Cheng
 
Be project ppt asp.net
Be project ppt asp.netBe project ppt asp.net
Be project ppt asp.netSanket Jagare
 
Web Design Project Report
Web Design Project ReportWeb Design Project Report
Web Design Project ReportMJ Ferdous
 
47533870 final-project-report
47533870 final-project-report47533870 final-project-report
47533870 final-project-reportMohammed Meraj
 

Viewers also liked (12)

The 21st-Century Library
The 21st-Century LibraryThe 21st-Century Library
The 21st-Century Library
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projects
 
Wed Development on Rails
Wed Development on RailsWed Development on Rails
Wed Development on Rails
 
Rapid Application Development using Ruby on Rails
Rapid Application Development using Ruby on RailsRapid Application Development using Ruby on Rails
Rapid Application Development using Ruby on Rails
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
 
Be project ppt asp.net
Be project ppt asp.netBe project ppt asp.net
Be project ppt asp.net
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
Web Design Project Report
Web Design Project ReportWeb Design Project Report
Web Design Project Report
 
47533870 final-project-report
47533870 final-project-report47533870 final-project-report
47533870 final-project-report
 
Atm System
Atm SystemAtm System
Atm System
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 

Similar to Simple Social Networking with Ruby on Rails

Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
 
Shiny Agency's Facebook Development Guidelines
Shiny Agency's Facebook Development GuidelinesShiny Agency's Facebook Development Guidelines
Shiny Agency's Facebook Development GuidelinesRoy Pereira
 
User Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersUser Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersCatherine Robson
 
Top 5 Tips for Building Viral Social Web Applications and Sites
Top 5 Tips for Building Viral Social Web Applications and SitesTop 5 Tips for Building Viral Social Web Applications and Sites
Top 5 Tips for Building Viral Social Web Applications and SitesJonathan LeBlanc
 
Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11Martin Bazley
 
Martin Bazley - using simple technologies with different audiences (reduced f...
Martin Bazley - using simple technologies with different audiences (reduced f...Martin Bazley - using simple technologies with different audiences (reduced f...
Martin Bazley - using simple technologies with different audiences (reduced f...Martin Bazley
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdatePatrick Chanezon
 
Developer connect - microservices
Developer connect - microservicesDeveloper connect - microservices
Developer connect - microservicesAnton McConville
 
Chapter 12 – case study cloudworks
Chapter 12 – case study cloudworksChapter 12 – case study cloudworks
Chapter 12 – case study cloudworksgrainne
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web AppJason Grigsby
 
Ites Scratch Software Review
Ites Scratch Software ReviewItes Scratch Software Review
Ites Scratch Software ReviewCM Ites
 
User Research on a Shoestring
User Research on a ShoestringUser Research on a Shoestring
User Research on a Shoestringteaguese
 
Civic Commons: NAGW 2011 Lightning Round
Civic Commons: NAGW 2011 Lightning RoundCivic Commons: NAGW 2011 Lightning Round
Civic Commons: NAGW 2011 Lightning Roundcivcoms
 
Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)patrick.t.joyce
 
Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008coniecto
 
Writing & Editing Week 7
Writing & Editing Week 7Writing & Editing Week 7
Writing & Editing Week 7Sarah Stokely
 
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionUSG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionEric Sembrat
 
[Phpcamp]Shindig An OpenSocial container
[Phpcamp]Shindig An OpenSocial container[Phpcamp]Shindig An OpenSocial container
[Phpcamp]Shindig An OpenSocial containerBipin Upadhyay
 

Similar to Simple Social Networking with Ruby on Rails (20)

Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social Update
 
Shiny Agency's Facebook Development Guidelines
Shiny Agency's Facebook Development GuidelinesShiny Agency's Facebook Development Guidelines
Shiny Agency's Facebook Development Guidelines
 
User Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersUser Experience Bootcamp for Developers
User Experience Bootcamp for Developers
 
Top 5 Tips for Building Viral Social Web Applications and Sites
Top 5 Tips for Building Viral Social Web Applications and SitesTop 5 Tips for Building Viral Social Web Applications and Sites
Top 5 Tips for Building Viral Social Web Applications and Sites
 
Hacking For Innovation
Hacking For InnovationHacking For Innovation
Hacking For Innovation
 
Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11
 
Martin Bazley - using simple technologies with different audiences (reduced f...
Martin Bazley - using simple technologies with different audiences (reduced f...Martin Bazley - using simple technologies with different audiences (reduced f...
Martin Bazley - using simple technologies with different audiences (reduced f...
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
 
Developer connect - microservices
Developer connect - microservicesDeveloper connect - microservices
Developer connect - microservices
 
Chapter 12 – case study cloudworks
Chapter 12 – case study cloudworksChapter 12 – case study cloudworks
Chapter 12 – case study cloudworks
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
 
Ites Scratch Software Review
Ites Scratch Software ReviewItes Scratch Software Review
Ites Scratch Software Review
 
User Research on a Shoestring
User Research on a ShoestringUser Research on a Shoestring
User Research on a Shoestring
 
Civic Commons: NAGW 2011 Lightning Round
Civic Commons: NAGW 2011 Lightning RoundCivic Commons: NAGW 2011 Lightning Round
Civic Commons: NAGW 2011 Lightning Round
 
Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)
 
Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008
 
Writing & Editing Week 7
Writing & Editing Week 7Writing & Editing Week 7
Writing & Editing Week 7
 
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionUSG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel Vision
 
Tp200910
Tp200910Tp200910
Tp200910
 
[Phpcamp]Shindig An OpenSocial container
[Phpcamp]Shindig An OpenSocial container[Phpcamp]Shindig An OpenSocial container
[Phpcamp]Shindig An OpenSocial container
 

Recently uploaded

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Simple Social Networking with Ruby on Rails

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. What is a social network? http://www.flickr.com/photos/vj_pdx/144902289/
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. 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:
  • 16. Home Cookin' - Example Relationship create_table :friendships do | t | t.integer &quot;user_id&quot; , :null => false t.integer &quot;friend_id&quot; , :null => false t.datetime &quot;created_at&quot; t.datetime &quot;updated_at&quot; t.timestamps end Daniel Fischer’s “Fischy friends” example:
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Example App - MyEventCarbon
  • 27. Example App - MyEventCarbon
  • 28. Example App - MyEventCarbon
  • 29. Example App - MyEventCarbon
  • 30. Example App - MyEventCarbon create_table &quot;event_attendees&quot; , :force => true do | t | t.integer &quot;person_id&quot; t.integer &quot;event_id&quot; t.string &quot;origin&quot; t.string &quot;distance&quot; t.string &quot;carbon&quot; end schema.rb
  • 31. Example App - MyEventCarbon belongs_to :person has_many :event_attendees has_many :attendees , :through => :event_attendees , :source => :person , :select => &quot;event_attendees.origin, event_attendees.distance, event_attendees.carbon, people.*&quot; app/models/event.rb
  • 32.
  • 33. Example App - MyEventCarbon create_table &quot;communications&quot; , :force => true do | t | t.string &quot;subject&quot; t.text &quot;content&quot; t.integer &quot;parent_id&quot; t.integer &quot;sender_id&quot; t.integer &quot;recipient_id&quot; t.datetime &quot;sender_deleted_at&quot; t.datetime &quot;sender_read_at&quot; t.datetime &quot;recipient_deleted_at&quot; t.datetime &quot;recipient_read_at&quot; t.datetime &quot;replied_at&quot; t.string &quot;type&quot; t.datetime &quot;created_at&quot; t.datetime &quot;updated_at&quot; t.integer &quot;conversation_id&quot; end You could modify an existing model: ... but that could impact other parts of the system.
  • 34. 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.
  • 35.
  • 36.
  • 37.

Editor's Notes

  1. * application manager (bb, univ. vermont) * developer (php, etc, rails in the past year)