User:Rishimittalneo/gsoc14

Switching Semantic Forms Autocompletion to Select2

 * Public URL: https://www.mediawiki.org/wiki/User:Rishimittalneo/gsoc14
 * Bugzilla report: BugZilla-61974
 * Announcement: (link to the announcement of your proposal at the wikitech-l mailing list.

Name and contact information
Name: Rishi Mittal Email: rishimittal_ajmer@yahoo.com IRC or IM networks/handle(s): #rishimittal (on freenode), Channels : #mediawiki, #mediawiki-i18n Web Page / Blog / Microblog / Portfolio:LinkedIn, GitHub , facebook Resume (optional):MyResume Location:Hyderabad,India Typical working hours:09:00AM to 2:00PM until August,04:00PM to 10:00PM after August (Indian Standard Time)(Adjustable) TimeZone: Kolkata,INDIA, UTC+5:30

Synopsis
Semantic Forms is an extension to MediaWiki that allows users to add, edit and query data using forms. It is heavily tied in with the Semantic MediaWiki extension, and is meant to be used for structured data that has semantic markup. Semantic Forms allows you to have forms for adding, editing and querying data on your wiki, without any programming. Forms can be created and edited by users also. Semantic Forms also supports autocompletion of fields, so users can easily see what the previously-entered values were for a given field. This greatly helps to avoid issues of naming ambiguity, spelling, etc.

Project Objective
The autocompletion in Semantic Forms should be converted from jQuery UI Autocomplete to Select2.

Major Drawbacks in present autocomplete

 * It is very naive and old approach, new and customizable and improved javascript based UI features are available.
 * It does not shows the image along side in the search bar(Newer versions provides this solution, but not that optimized).
 * Actually Select2 is also developed using JQuery but it is more inclined to solve the specific issues related to search/select text box.
 * No support for AJAX/JSONP in built support, Have to go through the entire lifecyle for the same for loading remote data.
 * No Responsive Design, Have to explicilty mention the size of the select box . etc.

Benefits of using Select2

 * Auto Tokenization
 * Flexible autocompletion for characters with accents
 * Display of an image associated with each term
 * Displaying values in a tree-type structure
 * Much better support for autocompletion on remote data sets(In-Built AJAX/JSONP support )
 * Good Browser Compatibility : IE 8+, Chrome 8+, Firefox 10+, Safari 3+, Opera 10.6+
 * Complete and Robust System Developed over the JQuery.
 * Capability to work with large data sets/ preload data.
 * Enabled tagging and In-Built improved UI support

Source : Select2-Documentation

Possible mentors

 * Yaron Koren, Stephan Gambke

Project Scope
There are significant amount of the improvements that could be made by using Select2, Few of the important / required changes are mentioned in this section. Source : Select2-Documentation
 * Display of and Image associated with each term (if it exists)
 * Flexible autocompletion for characters with accents (Select2's default matcher will ignore diacritics, making it easier for users to filter results in international selects).
 * Handling Events (May be in the later Stages Could be used for the provide event- based service in Semantic Forms)
 * Responsize UI (Size of the Select box is based on the length of the string.)
 * Sorted Listed Items(Defines the listed items in a sorted order)
 * "Tokenization" of values (putting squares around each term), which has become increasingly common in user interfaces
 * Displaying values in a tree-type structure

Project Plan
I have divided the entire project in three major modules : * Involves the understanding of the data, previous code, and Select2 JS framework. * Read previous project Documentaion * Establishing proper co-ordination with project mentors. * Understanding the current usage of autocomplete in Semantic forms using JQueryUI. * Developing the unit test cases for the all the proposed functionality to be added. * Existing Autocomplete feature replaced and now using Select2 * Develop the basic UI and Add functionality of "Tokenization" of values (putting squares around each term). * Develop Flexible autocompletion for characters with accents * Develop feature to display of an image associated with each term * Displaying values in a tree-type structure * Improve the UI and discuss the UI with mentors/admins. * Discuss with the mentors for the potential improvements in the project. * Review all the functionalites * Testing the functionalites * Re-Code all the failed Test Cases * Documentation for all the Changes
 * Preparation Phase
 * Development Phase
 * Testing Phase

Commmunication
I am easily reachable [at] :
 * Email Id : rishimittal_ajmer@yahoo.com(mailing lists, or direct mail)
 * IRC nick : #rishimittal on freenode
 * It would be in my concerns to make the mentors aware of the progress of the project, I will in touch with them for the smooth execution of the project.

Publishing Source Code

 * I can publish source code on github, bitbucket according to the suitability of the mentors.

Ask for help

 * For the discussion sake, I may sometimes ask doubt with the mentors , but usually I do all my searching by browsing , exploring new ideas, etc.
 * Reading the documentation, discussion in the community

Education

 * Bachelors in Computer Science and Engineering.
 * Post Graduation Diploma in Advance Business Computing from C-DAC.
 * Approx 1 year research experience in field of Ubiquitous Computing from C-DAC.
 * Currently pursuing Master of Technology in Computer Science Engineering from IIIT-Hyderabad.
 * My Major interests are Data Mining.
 * My Passion is develop Web applications, have good experience in javascript, css and Web stacks.

How did you hear about this program?

 * My College very actively participate in GSoc every year, and there is always good amount of the discussion in developing nice projects. I am active participant of the open source development group in my College.

Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?

 * I am solely dedicated to open source community this summer ,and have lots of awesome hours to work upon, and definitely I am here not just for GSoc-2014 but I will continue my work in this community after GSoc is complete.
 * I assure you at least 50-60 hours per week dedicated to make this project succcessful.


 * We advise all candidates eligible to Google Summer of Code and FOSS Outreach Program for Women to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

No I am just applying to GSoc-2014

What drives me ?

 * I always want to work with open source community, and using all these cool stuff like github , bugzilla and communicating with someone sitting miles away and developing application which would be used by lots of people and sharing code with actual experts of the field and learning from is what actually drives me towards to work.
 * I myself use wikipedia data lots of time in a day, Make me feel kind of awesome that I am contributing also.[If I am selected]

Please describe your experience with any other FOSS projects as a user and as a contributor:

 * I have lot of experience in developing the web application using lamp development stack, zend engine etc.
 * But this is my first time I am contributing to open source community directly.
 * Active member of college open source group, called Abacus.

Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):

 * Extensively using Javascript and CSS in my web applcation projects, but they are not hosted right now they are mostly using for internal usage . I have shared code on my git (upload in process ), also you can browse my projects on LinkedIn