Most developers have specialisations -- some of us hate UI design and love DB performance optimisation, others don't know any PHP but can speak HTML/CSS like a second language. This is a problem for writing features for an open source web app -- the nature of the work is cross-disciplinary, but the culture encourages individual effort. The result of this is that developers are placed under pressure to learn a huge skill set, and that can be a disincentive to participation.
I have an idea for a feature, and I was wondering if anyone might want to collaborate on it. The idea is to display, in a box in the edit window, information about who else has the same edit window open. For example, it could display each username, along with the amount of time they have been idle and the edit summary they have typed if any. The box will periodically refresh itself, say once every 10 seconds. At the same time as fetching updated data, the client sends back information about how long the user has been idle and so on.
An optional subfeature would be allow the user to remove themselves from the box voluntarily, e.g. to signal that they have no interest in actually saving the article and that they are just looking at the source.
There are three different skill sets which are required to make this feature:
Person 1: User interface design Person 2: Client-side programming Person 3: Server-side programming
The tasks can be roughly divided as follows:
Person 1: Make a mockup of the user interface by taking the HTML of an edit page from MediaWiki and adding a box with the required information. Edit the HTML and the CSS. PHP or JavaScript knowledge is not required, although some JS knowledge may be desirable to allow them to demonstrate any necessary show/hide buttons and popups.
Person 2: Write the JavaScript. Monitor the edit window and send the information I have described to the server. To update the info box, write a model server response with a text editor, save it as a static file. Have the JS load the model response and update the box in response. Deliver a request/response format specification.
Person 3: Write the PHP. Implement the AJAX handler using the specification from Person 2. Implement an internationalised user interface based on the mockup delivered by Person 1.
I can probably be Person 3, but I don't think I can handle the other two tasks as well. Any volunteers? Anyone know anyone who might be interested?
-- Tim Starling