Jump to navigation Jump to search

Use of Select2 Libary for Enhancing the Auto-Complete Feature of Semantic Forms Extension[edit]

Public URL
Bugzilla report
(link to the announcement of your proposal at the wikitech-l mailing list.

Name and contact information[edit]

Pubudu Fernando
IRC or IM networks/handle(s)
pubudu91 on freenode
Web Page / Blog / Microblog / Portfolio
Pubudu Fernando
Panadura, Sri Lanka
Typical working hours
10pm to 2 am (on week days) and 12:30pm to 3pm and 6pm to 3am (on weekends)


The Semantic Forms extension is an important and widely used feature of of MediaWiki. It provides the users with a simple method to add, edit and query data on their wikis. The Semantic Forms extension makes use of the jQuery UI Autocomplete JavaScript library for auto completion. Although this still works properly, better tools such as Select2 have been developed for implementing auto-complete.

Wikimedia projects would definitely benefit greatly by switching to Select2 since they deal with very large amounts of data of various formats, from text, images to audio and video data. I feel particularly strongly about the combination of the ability to add images associated with each term, the ability to display values in a tree like structure and better support for auto-completion on remote data since this could drastically change the way auto-complete is implemented in Wikimedia projects and make the feature much more structured, informative and user friendly.

Possible mentors
Yaron Koren, Stephan Gambke


Listed below are the deliverables for this project.

  • "Tokenization" of values: adding the ability to automatically put squares around each term when entering multiple values to a text field. The values can either be a combination of both a pre defined list and user input.
  • Auto-completion for characters with accents
  • Display of an image associated with each term. This will especially be useful when the users are searching for people, movies, collections of pictures or videos etc.
  • Displaying values in a tree-type structure. This will enable us to structure the values listed in the auto-complete list in a logical manner.
  • Using Select2 to provide better support for efficiently processing large amounts of data sets.


Phase Tasks Time Period
Phase 1
  • Reading the documentations of the necessary and related codes
  • Familiarizing myself more with the project and Select2
  • Collecting and setting up the necessary resources
April 21 to May 19
Phase 2
  • Start off with a basic implementation of for auto-complete using Select 2
  • Test it
May 20 to June 3
Phase 3
  • Add all the current features in the current implementation of auto-complete barring the ones which will be replaced/modified using Select2
  • Test it
June 4 to June 18
Phase 4
  • Add the capability to tokenize values and auto completion for accented characters
  • Test it
June 18 to July 2
Phase 5
  • Add the capability to display an associated image of the value, if such an image exists and the capability to display values in a tree type structure
  • Test it
July 5 to July 19
Phase 6
  • Implement the code for handling processing large, remote data sets.
  • Test it
July 19 to August 2
Phase 7
  • Improving and refining the code, bug fixing
  • Test it
August 2 to August 11
Phase 8
  • User documentation and any other documentation
August 11 to August 18


About you[edit]

Education completed or in progress
How did you hear about this program?
Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?
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)?

Past experience[edit]

Please describe your experience with any other FOSS projects as a user and as a contributor
Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links)
What project(s) are you interested in (these can be in the same or different organizations)?

Any other info[edit]

See also[edit]