High-level use case
* Want to take public data from social media site FACEBOOK for a given Personal Account, and retain it.
* Conceptually, if one was to look up a given Personal Account whilst logged into Facebook, then have all this data web-scraped
* Want this to only occur with the full consent of the owner of the Personal Account
Connect to Facebook (eg, via OpenGraph API) and extract this data. It is assumed this solution would involve building a Facebook App
* Build a Facebook App which gives obtains a user's consent and facilitates a login.
* Then downloads personal data from a FB user's account
* The app is essentially a "thin client" (obtain login authentication), most logic ideally handled externally (eg, server-side)
* Provide full documentation and explanation in order to be able to hand this project over to someone else
* Handover to be provided to someone familiar with many programming languages (C++, Assembler, Java, VBA, Python), but most proficient in Java/Eclipse.
* Output to be one of (whatever you find easiest):
-> XML (potentially with images/BLOBs as separate files, instead of Base64-encoded data in XML)
-> Input into a MySQL DB
-> Input into a Amazon-based data storage solution
The most important consideration is the solution of the High-level use case. All lower-level technical details are open for further consideration/discussion.
Important to understand what data will be retrieved by your solution. (eg, Personal Account user details, wall content: text, images, videos, posts by others, comments, users comments on other accounts, etc)
I propose was setting up 3 milestones for this project:
(A) Architecture: Explanation of your proposed architectures/technologies. (Because I am flexible on what we agree here, provided the business outcome is achieved, knowing some methods may be superior to others). Understand the types of data to be able to download from Facebook.
(B) Implementation: Implementation of software and sample data retrieved (eg, if I logged into the app built, and saw the data sucked out of Facebook)
(C) Handover: Ability to be able to work with me (document, if you find easier?) to setup the DEV environment on my computer, and for me to make a minor modification and deployment to verify that I can make future changes/releases going forward.