Catalogue for MediaWiki extensions

Catalogue for Mediawiki extensions
 Public URL:  https://www.mediawiki.org/wiki/User:adi.iiita/Gsoc2014

 Bugzilla report: Bug 46704

 Announcement: 

Name and contact information
 Name: Aditya Chaturvedi  Email: aditya.iiita102@gmail.com IRC:  zeek on freenode, channels: #mediawiki and #wikimedia-dev
 * Web Page / Blog / Microblog / Portfolio:Mediawiki User Profile: Adi.iiita
 * My Blog: https://apexkid1.wordpress.com
 * Linkedin: Aditya

Location: Allahabad, India (UTC+05:30) Typical working hours:  11 am - 5 pm (IST) and 10 pm - 2 am (IST)

Synopsis
Extensions form a core component of mediawiki which allow it to be enhanced by addition of functionality. There are currently about 2000 extensions available on MediaWiki.org. However, for users of wiki, it is hard to identify and assess which extension fits a particular need. Moreover, for developers, there is no place to highlight their creations among the wiki users.

Currently, a third party site Wikiapiary.com maintains data on extensions in a structured manner and and is tracking MediaWiki use in the wild. The idea is to make this process more intuitive and ensure good browsing experience, by making enhancements to Wikiapiary to accommodate more information about extensions in a structured manner and integrate some form of user feedback system while also improving the overall user interface to enrich user experience. Along with this, the plan is that this extended information gained on WikiApiary will be syndicated back to MediaWiki.org. .

Possible mentors

 * Markus Glaser, Mark Hershberger

Different phases of the project
Phase I: This phase will be mainly targeted at integrating a user rating system for the extension catalog so that users may able to rate the extensions individually and independently.The overall rating of an extension shall be calculated based on multiple metrics such as user rating and count of wiki's using the extension.

Phase II: In this phase of the development, the aim is to feed the information gained on WikiApiary about extensions back to MediaWiki.org. This will include ratings and website count. This will involve creating a bot which will excess the API to extract information and perform updates. The bot will be placed in the cluster of Wikiapiary bots to run periodically.

Phase III: This part of development aims to enhance the presentation layer of WikiApiary to make it more intuitive and fun to browse around for users.

Phase IV: This phase shall be community driven and experimental to extend the amount of information stored about each extension on wikiapiary. Technically this will include increasing and modifying the attributes for extensions. Some new proposed attributes are: Category, Size, Release date, Screenshot image.

Deliverables
After successful completion of this project following features will be added to the catalog project:
 * A user-review system in form of ratings to Wikiapiary.
 * Data syndication system between wikiapiary and mediawiki to reflect back the gained information.
 * Improvements in UX of wikiapiary and search filters.
 * Proposal for new set of attributes for extensions based on community feedback.
 * Manual and Documentation

Participation
This section describes on how I plan to work during the internship period.

Communication of progress

 * Email - I will keep mentor updated about the progress and also consult with the lead of Wikiapiary.com.
 * IRC Channel - I will stay on the #wikimedia-dev channel during the working hours.
 * Mailing list - [] mailing list will be used to communicate progress.
 * Blog - I will post helpful articles and updated about the project on my personal blog.

Publishing source code

 * Gerrit: Wikimedia Code Review

How and where you plan to ask for help?

 * Try Solving on my own: Go through documentation, search online, Google up etc. :)
 * Seek helps from the community: Ask questions on IRC, mailing list and mentors.
 * Seek help from outside the community: skilled friends, my teachers, etc.
 * Post on forums like Stackexchange etc.


 * I am a junior at Indian Institute of Information Technology Allahabad currently pursuing Bachelor of Technology program under the department of Information Technology.
 * I have coding experience in multiple programming languages, C, C++, Java, Python, Ruby and PHP.
 * My area of interest web applications, product design and Machine Learning. I am enthusiastic about software architectures and design patterns.
 * In the web world, I have worked mostly in PHP and Ruby on Rails. I have worked with HTML, CSS and javascript also.
 * I have been driven into the open source community in the recent past and I am enjoying exploring. I have been involved with Mozilla foundation doing community building and contributing. I have been involved with the Wikimedia foundation by contributing code and also volunteering to assist remotely for Wikimania 2014.
 * I love my journey and I know there is a long way to go. Someday, I wish to be a significant contributor in the FOSS world.
 * I am a believer of Tech Activism, i.e solving the problems of society using technology.

Past experience
Open Source Contributor. Bugs I Have Worked On.
 * MediaWiki

Firefox Student Ambassador. Involved in community building and contributing.
 * Mozilla

Web Developer. Lead Developer for institute's website.
 * IIIT-Allahabad Technical Society

Product Designer for Cultural-Tech festival Effervescence.

Developed software to facilitate management of services and provide online presence to college services. ( [www.github.com/apexkid github] ).

Campus Consultant. Club lead. Involved in management and security of the institute's network along with server side administration. ( Reference )
 * IIIT-Allahabad Network Engineering Society

I am interested in working on web applications involving complex design patterns and SAAS API’s. Being involved in my college technical community, I consider myself an experienced web developer and familiar with most aspects of web development. I have also experience in automation of services and scripting. Prior to GSOC, I have worked on multiple projects to enhance my overall programming skills ( [www.github.com/apexkid github] ).