May 10, 2013

GSOC Proposal: Enhance Extdoc Plugin

Hi,
I'm Dammina Sahabandu, 3rd year undergraduate of University of Moratuwa(dept. of Computer of Science and Engineering). I hope to contribute for the Eclipse Code Recommenders project through this years GSOC. Specifically by enhancing the Extdoc plugin. This is my project idea. Your feedbacks are mostly welcome!







Abstract

The current Extdoc view provides extended documentation on classes and methods which has been data mined from code. But there is no way for users to influence the documentation yet. The major goal of this project is to enhance Extdoc view such that user can involve for the documentation. That is if there is no existing Javadoc at the moment users can users can create new Javadoc or if there is Javadoc already then users can edit it, annotate it and rate it.(that is users can create, annotate and rate contributions(for this task Mylyn's wikitext will be used) to the documentation of classes and methods.

Detailed Information

Writing documentation is one of those tasks that programmers are typically not really interested in. It is time-consuming, wearisome task which has almost no immediate rewards. So as a consequence, most of the times documentation is incomplete or out-dated.
But at the same time good and comprehensive documentation is critical for the success of a library or framework. There tools which can generate documentation (Javadoc comments) by extracting the obvious information from the source code. But the thing is for an instant it may be seems like helpful and valuable but finally this kind of documentation will only pleases the project manager since it improves the source code to documentation ratio. But in the developers point of view these kind of documentation is less helpful and rather useless.
However there are many other resources out there such as tutorial sites, Code-search engines and code snippet repositories which offers valuable information about an API (how to use a certain API or deal with errors). The current Extended Documentation platform is exclusively developed to serve the purpose of aggregate this wide range of information sources available on the web into a single view in eclipse.
The figure below shows the current Extdoc view.

The existing view of Extension documentation is great. But as you can see, there are no user feedback components. Without that functionalities the Extdoc view is rather incomplete. So the proposed idea of the project is to enhance the Extdoc platform which enables the functionality for the users to involve in the documentation. The figure below is a mock-up screenshot of the user interface of Extdoc view after adding the functionalities. 


There by clicking on the log in text user will be navigated to a log in window which will be like this.


There user can authenticate himself by providing his/her Google, Yahoo likewise ID. It will be openId based authentication. By successfully log in to the system user will be able navigated to the Extdoc view which the user interface will be like this.


There user have the privileges to edit/create, annotate and rate the existing documentation. 

The user interface  will communicate with the back end database using the Open Data protocol. At the database there will be tables for handling these user feedbacks including including entries for comments, rating info etc. 
Server side implementation will process the existing data and return the information(Current rating etc.) to the UI. And UI will display them. 

Deliverable

Final product deliverable will be the Extended documentation platform with a very solid restful API for commenting and editing API elements and a very tight editing integration into the IDE.
For these tasks, following technologies will be used.
  • Users will be authenticated based on openId authentication.
  • OData protocol will be used for backend communication.
  • The database back end will be SQL-DB.

Schedule


Contact Information

Phone number: +94716422775
Skype: damminams