Slide 1

Slide 1 text

Building refer.me 11th July 2012 - Codeaholics.hk @MatthewRudy

Slide 2

Slide 2 text

Good bye Armen!

Slide 3

Slide 3 text

The Site

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

The Features

Slide 6

Slide 6 text

refer.me • Ask - ask for referrals • Refer - suggest things to your friends • Save - collect your favourite things • Explore - find interesting things around you

Slide 7

Slide 7 text

Ask • Ask a Question • Send it to your friends • Listen to their Suggestions

Slide 8

Slide 8 text

Refer • Find something you love • Tell your friends about it • Share it on Facebook

Slide 9

Slide 9 text

Save • Collect your favourite things • Share them with your friends • Share them with the world

Slide 10

Slide 10 text

Explore • Surf content • Dig down by location and category • Do some clever algorithmic stuff

Slide 11

Slide 11 text

The Challenges

Slide 12

Slide 12 text

Avoiding Duplicates - Challenge • We just want one definitive version of “Carrots” • But maybe there is also a film called “Carrots” • Or a book • Or a restaurant

Slide 13

Slide 13 text

Avoiding Duplicates - Solution • Crowd source it • Always offer an existing item first • Adding a new one is a last resort • Bubble the best content to the top

Slide 14

Slide 14 text

High Quality Photos - Challenge • The design is very visual • We need good photos to pull it off • But we’ll lose users if its complicated

Slide 15

Slide 15 text

High Quality Photos - Solution • Make it really easy to add an image • Search for the item’s name • Bing Image Search • Paste a URL and grab the images

Slide 16

Slide 16 text

Good Content - Challenge • We want detailed, specific data • Users just want to click and go

Slide 17

Slide 17 text

Good Content - Solution • Take control of content after its added • Incentivise Users to be Curators

Slide 18

Slide 18 text

Everything has Location - Challenge • We want to do Geosearch • But some Items don’t have a location • Doing lat-long calculations everywhere isn’t ideal

Slide 19

Slide 19 text

Everything has Location - Solution • Define a discrete set of “Localities” • Geocode everything; • Users, Items, Questions, News Feeds, IPs • Assign objects to their nearest locality

Slide 20

Slide 20 text

Technology

Slide 21

Slide 21 text

The Back End • Ruby 1.9.x • Rails 3.2.x • PostgreSQL 9.1.x

Slide 22

Slide 22 text

Core Libraries • Devise - for authentication • Carrierwave - for uploads • Tire - for search • Delayed Job - for background workers • Rspec - for testing • Rails Admin - for CRUD

Slide 23

Slide 23 text

Deployment • Heroku Cedar • Amazon S3 • Memcachier • Bonsai Elasticsearch • New Relic

Slide 24

Slide 24 text

The Front End • HAML • SASS • Coffeescript • Twitter Bootstrap • Backbone.js

Slide 25

Slide 25 text

Geocoding • Google Geocoder • Maxmind GeoIP

Slide 26

Slide 26 text

Other APIs • Bing Image Search API • Facebook Open Graph • Mailchimp’s MandrillApp

Slide 27

Slide 27 text

Thanks to The Team

Slide 28

Slide 28 text

Efren, Victor, David, Siu Shan, and Andrew

Slide 29

Slide 29 text

Check out refer.me!