User:Erangamapa/mygsoc

This is my GSoC application to participate in Google Summer of Code 2012 with Wikimedia Foundation. I am particularly interested in integrating "Who's been awesome?" to MediaWiki suggested by User:Jalexander.

Identity
Name: Eranga Mapa Email: erangamapa@gmail.com Project title: MerchTool.

Contact/working info
Timezone: UTC/GMT +5:30 hours Typical working hours: 9am to 6pm IRC or IM networks/handle(s): Both my Skype name and Freenode IRC nickname is mapahere

Project summary
This project is based on the idea proposed by User:Jalexander who offers to mentor.

MediaWiki is adopted for many Wikis where number of editors involved in writing and editing articles. But there is no proper way to allow editors to appreciate each others work. But, by integrating "Who's been awesome?"(Merchandise tool) functionality to MediaWiki, wiki editors will get a chance to reward other wiki editors who helped them in their work. After a particular user make 100 edits to a wiki, a link will be provided in the top navigation bar. User can follow this link to praise other users based on their commitments towards that wiki. Those praises will be stored and will be available publicly via an API for merchandise purposes. Apart from that they will be fed into the Moodbar Dashbord.

For this purpose I am introducing an extension called MerchTool for MediaWiki.

This extension will work based on the user data such as user name and user edits on MediaWiki. In this extension, a function hook will be created for ArticleSaveComplete event. An evaluation function will be attached to that hook. When an article is edited and saved by a particular user, evaluation function will be called and number of edits done by that user will be checked using the global object $wgUser. If that number is 100 or more than, a link mentioning "Know an editor who deserves a reward" will appear in top navigation bar.

Set of popup boxes will be created using JQuery Overlaying according to relevant UI mock-ups. First box will appear when user clicks on "Know an editor who deserves a reward". This box will allow the user to name a Wiki editor, type a praise for him and submit. Or else he can click on no thanks button and move to another box which includes three more options for user to select(Look into UI mock-ups section in this article). After a user submit a praise for a Wiki editor, It will be saved in a data table through MediaWiki database abstraction layer. Those praises will be shown as a table in a special page associated with the extension.

An API class will be implimented in this this extension. It can be used to access data related to this extension and use for many other purpose. Praises collected by this extension will be published to MoodBar Dashboard. For that a check-box option will appear under types in MoodBar Dashboard.

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.

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
I'm a 24 year old Computer Science and Engineering undergraduate at University of Moratuwa Sri Lanka. I am passionate about open source software development. So far I have been referring Wikipedia for many purposes and was wondering about how Wikipedia works. Then I came to know about MediaWiki, a nice open source software package which energize many wikis including Wikipedia. I looked into MediaWiki architecture and explored how things happening inside it. I was amazed with its maturity. So I decided to have my first open source experience by developing an extension to MediaWiki.

Mainly I'm interested in the area of Web Application Development. My appearance to web application development by developing few web sites. Then I learned to prepare web sites using WordPress and Joomla CMSs. Lately, I went more deep into this area by developing some web applications as my university projects. Thereafter I got familiar with many web technologies such as PHP, MySQL and Javascript. Eager to leverage my classroom learning into real world experience, I joined with Monvia Sri Lankan branch, as an outsourced software developer in 2011. In there, I involved in developing a web application with Symfony PHP framework to measure production line performance of a group of garment factories. Now I am working as a Software Engineer at GlomeTec. Apart from web application development I'm interested and experienced in many other areas such as Mobile Application Development, Game Design and Artificial Intelligence.

When talking about my personality, I am a quiet and reserved person. But when get interested, I would like to share my ideas with others and listen to their opinions. During my spare time, I would like listen to music, travel and hang out with my friends. I have a higher motivation to learn and try which drives me ahead.

Participation
I prefer to be in contact with 7.00 AM to 1.00 PM according to PDT. Most of the time, I will be hanging out in Skype and willing to go with IRC if needed. I like to use mail threads for important discussions. I prefer to share my source code using both Git and svn. MediWiki sub page will be used to publish my project progress.

Past open source experience
I have developed an extension ELearnware for MediaWiki which can be used to synchronize HTML5 video with content such as rich text and images. Main purpose can be to create rich video lectures synchronized with slides. It introduces two special pages. One is an editor page to chop HTML5 videos and align content with the video. Other special page is to view edited videos synchronized with content.

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.