/Twilio

Lost and found pets - with Twilio call support

Primary LanguageRuby

== Welcome to lost and found dogs and cats

This is a little Ruby on Rails app I wrote for the Twilio / Heroku contest. 

http://twilio.heroku.com/
http://blog.heroku.com/archives/2009/7/6/twilio_developer_contest/

It is a lost and found for dogs and cats app. It has a web front end and a way to call by phone and see if your 
pet was found - searching your zip code.

http://laf.heroku.com

If you just want to get started with Rails or Twilio or Heroku - this might be a good place to start.

In addition to the lost and found front end there is a little iPhone app that
1) Allows you to create simple TWIML boards (phone switchboards)
  a) I made some constraints/conventions to keep it simple - for example boards only post back to itself (with one digit)
  b) Verbs have actions (like Gather does)
  c) This idea is, you ask a question ('Press 1 for this') with a Say verb, for example, and when that digit is posted the action attached to the Verb is called (Dial, Redirect to another board etc)
2) See/listen to your Twilio resources
3) Once you fire up the app, log in as admin with password 1111, go to /twilio on an iPhone (or safari or chrome, webkit etc) 
   Firefox is good however (because of its xml viewing capability) to test the boards. See /board/test.
4) ** NOTE Be aware that I kind of abandoned this so I could get the lost and found stuff spiffied up before the end of the contest


== What is Twilio?

http://www.twilio.com/how-twilio-works

Kind of a virtual PBX for web developers. 

* I think of it as Asterisk (http://www.asterisk.org/) without the necessary hardware/software setup 
* And a (surprisingly easily) programmable interface through REST/XML

== What is Heroku

http://heroku.com

Ruby on Rails hosting nirvana. Having used Rails since ... the beginning, I can tell you the hosting 
has been a bear. Heroku makes it so easy. Real easy. Amazingly easy.

== Getting started

* clone this app
#> git clone git@github.com:voodoo/Twilio.git
* Rename twilio.example.yml to twilio.yml
* Sign up for a free Twilio account
* Copy your AccountSid and AuthToken from your Twilio account into twilio.yml
* rake db:migrate

When you get ready to move to production/public - get a heroku account. Before you move run 
* rake heroku:config

^ this pushes the yaml stuff into Heroku environment variables - so you don't have to keep your Twilio authentication 
stuff dangling around

== Fire it up

Fire up the app and open it in the browser

For developing(accessing twilio), you need to have this on a public server

Rather than git push'ing every time I configure my router to forward my public ip to my local machine using port forwarding

To test on the phone, you will need this url set in your Account section on Twilio 

Mine looks something like this

http://my_public_ip:3000/board

== More

Plugins / gems / problems ? 

I did not put this in config because of conflicts with heroku gems but you might need to 

sudo gem install -v=2.3.2 rails
sudo gem install httparty
sudo gem install will_paginate
sudo gem install haml


Some other software I used/stole

* http://github.com/webficient/twilio/tree/master
  a nice gem/plugin for programatically generating xml with Twilio classes
* Condition Builder
* jrails
* rails_flash_notifier, field_set_forms
* state_select
* acts_as_list
* action_mailer_optional_tls
* Haml/Sass
* Will Paginate
* iUi(iPhone) - the css at least - probably move to something else that likes forms better
* Probably others :)