This project is something we could do ourselves (and would like to, we think it sounds like fun), but if we find a qualified person to do it then that frees us up for other stuff that we also need to do. Depending on our success rate, we expect to have more projects like this on an ongoing basis, some smaller and some possibly much larger. An extended member of our team would be great.
As an extended member of our team we are looking for your code and efforts to sync well with ours. With that in mind we have written up the following general requirements. We aren't trying to make things hard, we do these ourselves every day, and we are assuming professional developers do as well. But maybe you do it differently? If you think an item sounds off base and/or you think there is a better way just let us know as part of your bid.
**We have bolded the key sections to make it easy for providers to quickly scan while looking for projects, but before you actually submit a bid please do read them fully.** We will use them as part of the success criteria just as much as the code itself.
**Please also read the full requirements document (attached to project) completely.** It includes important technical, process, and delivery requirements beyond these project details.
These requirements and the general requirements ask you to provide certain information in your bid. If you don't provide it we will assume you have not fully read the requirements and will ignore your bid.
While we have not required an Expect Guarantees, we will give bids with Expert Guarantees higher priority.
**Thanks for reading and we look forward to working with you!**
# Functional Requirements
* The solution will perform the **Facebook Authentication with OAuth** flow prompting the user as required. It will return the appropriate OAuth keys so that our code can store and furnish them in future invocations to avoid prompting the user again.
* **Given a category and list of names** (e.g. movie titles), the solution will use the **Facebook Graph API and FQL** to **get all relevant information about the pages**. This will include both general and current user-specific information.
* For each movie all information available will be returned, for example (also please list any other properties you can pull beyond this list in your bid).
* * name
* facebook url
* total like count
* user's friends who like the page, including friends'
* * name
* Facebook queries will be batched as much as possible.
* We expect your solution will use **FQL**, if not please explain why not in your bid.
* Given a page id **the solution will "like" the page for the current user.**
Provider will have 5+ years of professional development experience, with real-world experience in all the technologies listed in the full description document. These include, but are not limited to the following. Bidders should have work history and optimally have the listed certifications in each of the following areas.
* **Firefox Extensions**
* **Facebook Authentication, Graph API** **and FQL** ([Facebook Open Platform Development Test])
Demonstrated experience and certification in the following areas is also a bonus:
* HTML & DOM
* jQuery ([Knowledge of jQuery 1.3.2 Skills Test])
* JSON ([JSON Test])
* Regular Expressions ([Regular Expressions with PHP Test])
* SQL ([SQL Test])
To verify skills and interest, once we have narrowed the list of bidders we will give them a short coding test. It will be small, specific to this project, and something we know the answer to. Our goal here is to give you something simple to do that doesn't take much of your time, but still verifies you know the subject area.
# General Technical Requirements
* Underscore strings
The solution will be delivered as part of a Firefox extension that will demonstrate the solution's functionality using unit tests.
**Unit tests written in Qunit will fully demonstrate and test the all of the solution's code.** A coverage tool (e.g. JSCoverage) should be used to verify the tests are comprehensive.
We have found that a standard Qunit test page placed inside the Firefox extension and then run using a chrome:// URL works well. It allows normal Qunit usage while allowing the code to have extension privileges. Feel free to ask more on how we do this. Upon project start we can provide a skeleton extension with some simple Qunit tests if you like.