This is part of a series of posts on the Journey of a Facebook Application

When last we left our intrepid entrepreneur (me!) he had in his inventory:

So as we resume our tale he is about to embark on the outsourcing leg of his journey, to find someone who is skilled in the very many ways that he is not….

Elance.com

Elance is an online workplace where businesses connect with qualified professionals to get work done

I’ve never used elance before (or any outsourcing service for that matter), but I found the whole process very simple and straight forward.

I signed up for a free account. I did a few searches for facebook applications, read some of the jobs that people had posted, saw what kind of information they provided up front and tried to get a feel for the going rate etc.

In hindsight, I should have paused there, taken a good long think and spent a day or two working through and writing down my requirements in detail. But I had the excitement levels and attention span of a young puppy, so I decided to post a job  straight away. This was probably my biggest mistake so far. In work I’m used to brainstorming with the tech guys, bouncing some ideas off them and getting feedback and suggestions from them. With the outsourcing proccess this doesn’t happen, especially when your developer doesn’t speak English as their first language.

The Job

For those of you interested (and because I want to make this process as open as possible so that it’s useful for people who might venture down this path in the future) here is what I posted on elance:

—————-

What I need

I need a Facebook application that lets users discuss events/topics in a twitter like feed. These “discussions” will be a page listing a thread of the 15 most recent posts. Each post can only contain 160 characters. The posts will be listed with the most recent post first. They will paginate after 15 posts. Each discussion can have up to 3 category tags which a user can add. Each discussion thread will also have a n event time – e.g. The discussion about “The Candidates Debate” could have an event time of 22/12/2008 at 8pm.

Structure

The hierarchy will be Main Page -> Category Tags -> Discussion Threads -> Posts

Style

The style will be very simple. It should look very similar to the facebook look and feel. There should be a CSS file that controls the style of the applications. I have attached a rough outline of what the discussion thread page could look like, but would be interested to hear your feedback if you have design experience

Facebook integration

The application should use the Facebook users’ name as the default name (to appear with each post). Their avatar will by default be their profile picture. Users will have the ability to invite a friend to a discussion thread. When a user creates a new discussion this should create a feed entry. “{*actor*} has created a new discussion entitled….” I can create the feed templates if necessary.

User Experience

From the main page the user will see the following:

* My Discussions – with a history of their recent discussions (10 per page)

* Create a new discussion – The fields will be “Discussion Name” “Discussion time” “Category Tags” (up to 3 possible, but 1 necessary) and “Event Time”

* Upcoming events. This will have the next 5 discussions with the soonest event time

* Recent posts – The 5 discussion with the most recent posts

* Search – search for discussions by their category tags

* Browse by category – a link to all discussion threads ordered by category tags

* Browse by date – a link to all discussion threads ordered by “event date” – with the soonest showing at the top.

The discussion page will be something similar to the screenshot. There will also need to be a space in the sidebar for an advertisement.

Future-proof

This needs to be easily extended to other social networks in future. Although I don’t need specific things built to enable that, I would like this project to be built with that in mind – i.e. the database should not contain any Facebook only parts.

———————-

I also attached the following mock-screenshot. It reveals a lot about where I got my inspiration from (and also the fact that I have awesome MS Paint skillz)

A hideous mashup
A hideous mashup