User:Shubh09/gsoc

This is the template for students who want to apply to Google Summer of Code to work on MediaWiki. Students will need to file their applications via Google's Melange website starting March 26 and before April 6th. It's encouraged for students to start working on their applications as subpages of their mediawiki.org userpages as soon as possible, and to share them, get comments, and improve them in response to criticism.

Identity
Name: Shubham Gupta Email: shubh09@gmail.com Project title: 'Who's been awesome?'

Contact/working info
Timezone: GMT +5:30 Typical working hours: 11:00 a.m. - 1:00 a.m. IRC or IM networks/handle(s): shubh09@gmail.com on gtalk

Project summary
This project basically involves identifying and rewarding the significant contributors to Wikipedia, chosen by the users themselves. Each page will have a Moodbar-type link on the top displaying a message like 'Know an editor who deserves a reward?' (similar to the 'Feedback about editing.' link on display now), clicking on which lets a user specify the editors he/she would like to show his/her appreciation to.

Wikipedia is a kind of site which almost entirely owes its existence to the users who use it. No one individual or organization can be expected to have the kind of information and knowledge which Wikipedia holds today - it is a cumulative contribution of the users around the world, who are kind and considerate enough to share their knowledge with others. Rewarding the users who contribute to Wikipedia and make it what it is, and honouring them publicly will surely go a long way in motivating other users to contribute, and to put their best foot forward while doing so.

Deliverables
It should be possible to break down your project into some bullet points describing particular features or milestones which can be reached individually. Consider that we may wish to roll out the system for testing while at an intermediate stage of completion, and that time estimates might vary, leaving you with more time than you expected or (more likely) a lot less -- some features can be pushed back if you end up short.

The project, as I perceive it, is a small one. And since I have had some experience with this kind of stuff before, I hope, if given a chance, to complete it in a fairly short amount of time. I understand that one can get a true estimate of the amount of work involved in a project only when one actually sits down to do it, but here is what I expect out of it.

Required deliverables

 * The first thing to do would obviously be how to determine which users get to choose the significant contributors. It is my understanding that every user's opinion shouldn't carry equal weight - the ones who are contributors themselves and thus understand Wikipedia better should be preferred over others. As suggested by James Alexander, the link enabling one to appreciate the contributors should appear only after the user has made over, say, 100 edits.


 * The second step would be to work on the UI - displaying the link in a convenient and unobtrusive way, designing the Javascript-enabled pop-up box that would appear on clicking on the link etc. Also, the heuristics for optionally hiding the link, letting a user come back to it at some later time etc. would also have to be decided.


 * The next step would be to work on the backend. The implementation of such a thing would obviously need some changes in the database schema - for determining which user has recommended which contributor. I also propose to let the vote of a user carry some 'weight' proportional to the number of edits the user has made. So, a 'score' for a contributor would be the weighted sum of all his/her votes - which would be visible on his/her profile.

Project schedule
Try to break your deliverables into "milestones" which can be reached in sequence. Show us your estimated schedule of when you'll reach each functional milestone. Don't forget that real time may change -- leave enough buffer for your required features to be completed!

We suggest that you budget one-half to one-third of your time for merging with trunk, pre-deploy review, testing, bugfixing, documentation of course, and other integration work.

About you
We don't just care about your project -- you are a person, and that matters to us! What drives you? What makes you want to make this the most awesomest wiki enhancement ever?

You don't need to write out your life story (we can read your blog if we want that), but we want to know a little about what makes you tick. Are you a Wikipedia addict wanting to make your own experience better? Did a wiki with usability problems run over your dog, and you're seeking revenge? :-) What does making this project happen mean to you?

Participation
We don't just want to know what you plan to accomplish; we want to know how. Briefly describe your work style: how you plan to communicate progress, where you plan to publish your source code while you're working, how and where you plan to ask for help. (We will tend to favor applicants that demonstrate a clear vision for what it means to be an active participant in our development community.)

Past open source experience
Do you have any past experience working in open source projects (MediaWiki or otherwise)? If so, tell us about it! If you have already written a feature or bugfix in a Wikimedia technology such as MediaWiki, link to it here; we will give strong preference to candidates who have done so.

Any other info
Please add any other relevant information -- UI mockups, references to related projects, a link to your proof of concept code, whatever. There are no specific requirements, but we love to see people who love what they're doing. Show us you're excited about this project and have an interest in the background and are considering how best to make your idea work.