Extension:Annotator/Prototyping inline comments

Name and contact information
I am quite flexible with the timings and will try my best to dedicate most of the time to this project.
 * Name: Richa Jain
 * Email: richa.jain1912@gmail.com
 * Time Zone: UTC+5.5(IST-India)
 * Typical working hours: 12 noon to 1 am before July, 6pm to 3am after July
 * IRC or IM networks/handle(s): richa (on freenode)

Synopsis
This will be an extension where the user after landing to a wiki article can select few lines or part of a line and make an inline comment and the others can optionally reply to it. Users can make useful comments regarding specific part of articles, which will be a part of collaborative work.This will just be a prototype as part of Gsoc project.

This will really be useful in cases of articles with some true but controversial facts which will attract users to make inline comments on that sentence.

There will be features like limited threading(if the number increases then the user must use talk page), date and name autoformatted, more commented texts are more highlighted, etc. It is inspired by two programs namely, stet and Co-ment.

Implementation using OKFN annotator technology
I will be using the OKFN annotator technology, available under the MIT license which provides the user with tools to annotate text in the page. The code is available here.

The extension would be implemented using namespace:annotator and then the values can be stored as JSON. The annotator ID can then be used to display comments, information on the selected quote, etc.

Bug 46440 has been filed for this project.

Here are some examples which shows how the wikipages will be like:
 * http://www.co-ment.com/see/
 * https://lite.co-ment.com/
 * http://gplv3.fsf.org/comments/lgpl-draft-1.html

Mentors
Matt Flaschen is my primary mentor and Tyler Romeo is my co-mentor.

Required deliverables

 * A skeleton extension for making inline comments and interface for users to annotate text.
 * Features like limited threading, username and date autofomatted, more commented lines are more highlighted, etc.
 * Adding documentation

Plans and estimated timeline
My basic plan and estimated timeline for the project during three months of internship after discussing with my mentor, Matt Flaschen are: (timeline may change a little during the project)

June 17-June 27
Creating the skeleton for extension and making investigation.

June 28-July 28
Work on the backend of the extension, use the OKFN annotator and add the basic functionality of inline commenting.

July 29-August 15
Adding the following features:
 * Limited threading
 * Username and date autoformatted
 * Other users can reply to a comment

August 16-August 27
In this time period, i will basically improve the user interface part like sections with more comments are more highlighted, how the comments are displayed on clicking the quotes, etc.

August 28-September 15
Cleaning up the code, testing the features and bug fixing.

September 16-September 27
Adding documentation for the code.

About you
Hi, I am Richa Jain, Undergraduate student at Indian Institute of Technology Roorkee. I am a developer at SDSLabs(software Development Section) of IIT Roorkee. I love coding and experienced with php, javascript, mysql, node.js, coffescript, MVC architectures and i always do keep working on some project. Here is my github profile

Participation
I will work hard on this project and will bring it to completion. I am always logged in to IRC on #mediawiki whenever i work. I will be giving frequent information to my mentor, asking the doubts if i am stuck. I always love to maintain a repository on github and making frequent commits. I have also planned to start blogging once i start working on the project.

Past open source experience
I have started working on Mediawiki software since January 2013. Understanding the architecture of mediawiki core, fixing bugs and actively taking part in conversations on IRC made me learn a lot. I have fixed some bugs for Extension:UploadWizard and core mediawiki.

Here are my mediawiki gerrit commits