May 15, 2013

GSOC Proposal: Create a social snippets infrastructure

This is proposal #5 submitted to this year's GSOC by Amandeep Singh.
Feel invited to leave comments on Amandeep's proposal below. 




Aman

Email: aman.adsm@gmail.com
Short description: Snipmatch is an eclipse plugin which eases the development and code writing work from a programmer's point of view and helps to store/retrieve/re-use most commonly used code snippets and algorithms in the source code. It simply searches for the snippets stored locally/server and displays the most relevant and context specific code snippets as output.
PERSONAL DETAILS

Name : Amandeep Singh
Email address : aman.adsm@gmail.com
IM service :  aman.adsm(gtalk & skype)
Location: Chandigarh, India 


PROPOSAL TITLE

Eclipse Code Recommenders
project – Create a social snippets infrastructure

SYNOPSIS

Snipmatch is an eclipse plugin which eases the development and code writing work from a programmer's point of view and helps to store/retrieve/re-use most commonly used code snippets and algorithms in the source code. It simply searches for the snippets stored locally/server and displays the most relevant and context specific code snippets as output.

PROJECT DELIVERABLES

Add plugin spy feature to ease and help developers in further developing the plugin and getting insights about the libraries, dependencies and packages imported.

Automatic updation of the snippet list on insertion/deletion/modification of a snipppet in the snipmatch view, consequently leading to the removal of update button from the view and enhancing the UI.

An option to sort the snippet list based on date modified/LOC/topic(proposed).

I also want to change the icon images in the snipmatch view(personally I don't like them).

Complete and detailed  documentation of  the snipmatch plugin and if time allows I'm also looking forward to make a thesis on the same as my college summer project.

A backup/export feature by exporting snippets as files to the custom directory or folder according to the developer's choice.
Formats I wish to support : .txt, .html, java, .csv and obviously the .json format.

Syndication of snippets in wordpress(my own idea)
The Idea is, to simply publish the snippet to wordpress as a new post right from the IDE without logging in to the wordpress dashboard and manually posting to it.

Reccommend this snip button: A snippet sharing feature with the help of a  recommend button. Developers can recoomend/share the snippet with fellow developers via mail, or simply generate a shortlink to post anywhere or share with a friend.


IMPLEMENTATION DETAILS

Plugin spy can be easily added to snipmatch by simply adding it to the plugin dependencies.(1 or 2 days)
For implementing the export feature I suggest the following code(1 week approx):
For taking backups I'll be using Mysql. I wish the same Json template format could be used here as well, so as to easily store the snippets according to the Title in the database(1 week). 
Once this is done, wordpress syndication can also be done easily as I'm already aware about wordpress platform/php and know jdbc concepts(1 week at the max).
For recommend button I wish to use servelets/JSP/Mysql. In the process the snippet will be simply sent to the server via FTP and stored in a remote Mysql database. A shortlink generating algorithm(will try to make in a week or so) will be attached to the script with which the user can share it with anybody via mail, social networking or post it to pastebin or any other code sharing site. Temporarily I'll be storing this at my own online live server and then can be easily imported to the snipmatch server after approval. (10 days)
Algorithm has to be made for the sorting feature and will take help from my mentors in this regard. (1 week)


TIMELINE

deadline : till june 17
I am having exams till May 17th, so won't be able to do much till then. From the very next day onwards I'll indulge in the Eclipse Gsoc project.
Firstly I'll gather more knowledge and expertise in eclipse PDE and the whole code recommenders project esp the snipmatch plugin.
I'm not much aware about json template format, so will be devoting an ample amount of time on the same.
deadline : after june 17
> plugin spy
> change icons
> export feature
> backup support
> snippet list automatic refresh/update feature
> snippet sorting facility
> syndication with wordpress
> recommend this snip
Documentation will be done side by side along with the advancements in the project.
During the google SOC i.e the actual coding period, I will continue to commit regularly to the git branch, for proper review and testing of my work by other developers and mentors.
Each objective is anticipated to take only a few days to handle , so many can be completed over the summer.

WHY I AM WELL SUITED FOR THE PROJECT

Focussed, bright, fast learner, quite persistant and do not give up/quit easily 
Confident and have the necessary programming skills
I want to make projects that succeed
I act professionaly and take my work seriously and assure my mentors that I’ll definitely live up to their expections and come out with a well featured Snipmatch Eclipse plugin.


PROJECT OUTCOME AND BENEFITS TO COMMUNITY

A simple,nice and well integrated snipmatch GUI supporting all the features(new snippet creation, snippet sharing and rating,database, backup feature, multiple backend support, documentation) as required by the gsoc project. 
With EclipseIDE/Wordpress syndication feature, a new feature of blogging right from the IDE interface while developing can be implemented, thus helping the programmers to post their ideas, logical views, algorithms and code snippets  to the WWW easily.

ABOUT ME

Pursuing bachelors in computer science from Guru Nanak Dev Engineering College(http://gndec.ac.in) and in pre-final year.
for programming related skills and projects done, please refer to my website: www.kodevelop.com

4 comments:

  1. If I get it right, the algorithm will only look at a small collection of snippets which are explicitly available to the users of a certain project using some specific server. That seems like an arbitrary restriction to me.

    I highly recommend taking a look at https://gist.github.com/ and http://www.gistapp.com/

    If you really want to use the knowledge of the masses, you should not restrict the data for that plugin and the user base to just some users of the plugin (or to all Eclipse users). Think big, use the code snippet wisdom of all developers world wide. Surely there is some kind of API to access all github gists (and probably other similar websites).

    ReplyDelete
    Replies
    1. Sorry, the second link should have been http://www.gistboxapp.com/

      Delete
  2. yeah sure. I'll look for a more general API on the net.
    thanks

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete