Server Setup (iOS app - Facebook API intermediate)

Avg Bid (USD)
Project Budget (USD)
$750 - $1500

Project Description:
Setup a server that can act as an intermediate between an iOS app and Facebook(accessed via API).

A bit about the iOS app.

The application is envisioned to allow users to mine data on their facebook friends from their iOS device. It does this by passing a series of requests to Facebook and analyzing what Facebook returns. The server acts as an intermediate between the local application and facebook, taking the data mine parameters set out by the iOS app, sending the necessary requests to facebook, performing analysis on the results and finally sending back the results to the iOS device.
Application User Flow (UF)
1. User opens application
2. User logs into facebook (or returns to a previously opened session)
3. User searches for a facebook friend. From now on this friend will be referred to as the ‘subject’.
4. User then selects what data to gather from the subject’s timeline
5. User specifies time range for which to gather data and initiates mine.
6. Push notification sent to user’s device, notifying them that their results are ready for viewing.
7. User revisits app and is presented with the results.
8. User opts whether or not to return to step (3)
9. User exits application.
Put more simply, the user decides which facebook friend they would like to analyze. Chooses a type of data (Likes, comments, posts or interactions(a weighted sum of the three)), and runs the data mine. Sometime later (this will have to be established during testing) they will receive a notification on their device letting them know that they their results are ready. These results will show who the most frequent likers, commenters etc are for the facebook friend they chose.

(Server specific) Communication with iOS App:

In order for the data to be displayed on an iOS app, the server must have an API for the iPhone to communicate with, supporting two requests -
a) starting a new data request
b) retrieving results of a data request

When a new data request is received, the server should use the provided parameters (eg OAuth hash, ID of subject of data mine etc) to start retrieving the relevant information, using the Facebook Graph API.

Since the data mining may take a while, we don't want to keep the iOS app hanging whilst waiting for the request to return (potential problems due to app closing, battery out, bad/lost connection etc.). Instead the server should start running the data mine, and respond to the iOS app request with a confirmation that the data mine has begun (and probably a data mine ID, see below), or reporting any errors with the request parameters.

When the data mine has finished, the server should send a push notification informing the app that the results are ready.

When a results retrieval request is received, the server should then return the relevant results, using the parameters of the request (eg a data mine ID) to return the corresponding results.

Data does not need to be stored once it has been retrieved, so data can be cleared a short specified time frame (eg 12 hours) after a retrieval request has been made for them.
More technical information available on request.

Skills required:
Software Architecture
About the employer:
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.

Hire forumizer
$ 1250
in 20 days
Hire andeypol111
$ 757
in 6 days
$ 2577
in 20 days
$ 1155
in 25 days