We are hiring a developer to create only the beginning of a Rails application named PhoneFriend. When this first milestone is complete, we will plan development of the rest of the application. (Since the full application will be a small prototype application, we intend to complete development of a launchable version by the end of January.)
PhoneFriend will allow a user to place phone calls using their iPhone via JSON requests to the rails application, which will then use the Plivo.com API to complete the call. (The iOS application is being developed in parallel to the Rails project described here.)
This application should be written using Ruby on Rails (version 3.2). It should be deployed to Heroku for demonstration purposes. Finally, the app's code should be well-covered by automated unit and functional tests -- rSpec and Cucumber, respectively.
**Step-by-step description of milestone one**
1. This application will mainly consist of a RESTful application that communicates via JSON with the iOS application.
2. Create a Call model that will store the following information: 1) caller phone number, 2) recipient phone number, 3) call start time, 4) call end time, 5) API response
3. For a given JSON request to the calls endpoint (the calls#create action), use the Plivo.com API to initiate a telephone call between the caller phone number and recipient phone number, both of which will be provided by the JSON request.
4. Create a new call record that logs the call information as described above.
5. After the call has been picked up by the recipient, the application should wait 10 seconds and then disconnect the call (using the Plivo.com API). (This requirement is arbitrary, but it lays the groundwork for a subsequent feature that will allow the application to interrupt calls is the caller lacks sufficient credit for a longer call.)
Since these five steps will serve as the basis for a more complicated application, they should be built in a way that will allow them to be expanded upon. Please keep in mind that although the application will mainly be a bridge between the Plivo.com and the iOS APIs, it will later include web-based UIs for administration and the such. Also note that although we are using Plivo.com right now, the final application should include a wrapper for the dialer API so that we can easily swap out a new dialer API when necessary.
VERY IMPORTANT: To separate you from the spammers, please write the word PHONEFRIEND as the first line of your bid. We will delete all bids that do not start with this phrase, since most bidders never read the requirements. Thank you for being one who does.