User:Adi.iiita/Gsoc2014/Report

Project title: Catalogue for Mediawiki Extensions

Goals for first half
As mentioned in the project schedule, the first half of the project aims to accomplish the following goals -
 * Devising a plan to integrate user feedback system into Wikiapiary.
 * Working with templates and SMW to integrate a rating system.

Communication plan

 * IRC has been used so far for daily communication.
 * Asynchronously, mails and mailing list of Wikiapiary is used to discuss plans and take opinions.

Lessons learnt

 * Not to get stuck on a particular task and keep things simple for the first version
 * Strict use of Github for code review
 * Important to learn Semantic Mediawiki well to perform efficiently on the project.

Work done

 * Understand the functioning of wikiapiary.
 * Read the documentation and code for the bots that collect data for wikiapiary.
 * Work on deciding the appropriate choice of rating extension.
 * Communicate with mentors to devise a plan.

Week 1:

 * Familiarized with Semantic Mediawiki.
 * Learned the working of the extension Semantic Rating.
 * Worked with the Wikiapiary developer community to finalize in a point to point manner, the exact use case of the rating extensions. This involves not only using user rating but also counting intrinsic factors like code compatibility, maintainability, extension popularity etc. to come up with a really meaningful rating scheme.

Week 2:

 * Objective of this week was to implement rating system on my own wiki counting most of the use cases as they are on Wikiapiary.
 * I worked through templates and Semantic forms to create rating system using "Two-step process".
 * I further enhanced it using "One step process" to automate the job to page creation.
 * Learnt in depth about Semantic templates, forms and other elements and successfully came up with a rating system.

Week 3:

 * Created templates for rating system.
 * Created properties and forms.
 * Tested and other magic keywords to include in the page rating system.
 * Deployed a full working rating system on my local wiki with Semantic Rating extension.

Week 4:

 * Got edit rights on wikiapiary.
 * Replicated templates and forms to suit the format of wikiapiary.
 * Slight change in plans as to deploy Review templates in Namespace of User rather than Namespace of Extensions was suggested.
 * Following up made changes and successfully deployed rating system on wikiapiary.

Week 5:

 * Started writing script for syndication of ratings from wikiapiary to mediawiki.
 * Read documentation for using API.
 * Made the script from scratch to login and edit pages on mediawiki.

Week 6:

 * Explored different available software for API edit on Mediawiki
 * Worked with Pywikibot to extend it to different code
 * New functionality added on wikiapiary to pull data from Openhub.org.

Week 7 and 8:

 * Worked with Semantic Rating extension
 * Helped to implement new functionality which lead to two new releases of the extension
 * New release had functionality to change the max rating value which was earlier fixed to 5 and min rating value to 0 instead of 1
 * Changed templates on Wikiapiary to adapt new changes

Week 9:

 * Continued development with bot for syndication
 * Worked with simplemediawiki module to write a complete script to transfer ratings
 * Enhanced bot code using mediawikiparserforhell python module to edit pages.
 * Developed complete script for bot.

Week 10 and 11:

 * Worked on wikiapiary farm codebase.
 * Inducted new functionality by allowing wikiapiary to connect to mediawiki
 * Wrote a new module under weekly tasks for extensions using segment hour and day.
 * This new module allowed to add as many new tasks for pushing data to mediawiki.
 * Wrote a submodule to push ratings.

Week 12:

 * Bug fixing on previous work, minor enhancements.