=**Profile Information**=
_________________________________________________________________________
Name: Yash Varshney
Email-ID: varshneyyash60@gmail.com
Institute: Indian Institute of Technology Ropar
Location: Rupnagar, Punjab
Time Zone : UTC +05:30
Typical Working Hours :[4pm-8pm],[10pm-1am]
Github Profile: https://github.com/iitrpr-yashvarshney
=**Synopsis**=
_________________________________________________________________________
==**Title** ==
Add autocompletion to Page Forms spreadsheet display. Link to the google doc of draft GSoC project proposal is [[ https://docs.google.com/document/d/1x3baU2DEIB4-6fpjUQt86uyi2UzBeY6D0Z59xmwAvr4/edit?usp=sharing | this ]]
==**Spreadsheet-style editing display**==
**The Page Forms extension provides a spreadsheet-style editing display at two places:**
- At Special Pages: MultiPageEdit:
At this page one can edit the fields of the existing page or even add or delete any page.
- At Regular forms with the form definition "|multiple|display=spreadsheet"
This is used in case we have multiple instances of templates, we can add a new instance of a template by adding a new row in the spreadsheet(with different columns as the fields of that template).
==**Features and Implementation**==
Currently, the spreadsheet-style display uses the jExcel JavaScript library which provides a number of helpful input types (dropdown, date, text area, etc.), but it does not by default allow for auto-completion using an arbitrary list of values. This will be very helpful to add, the same way different input types(apart from spreadsheet-style display) support the autocompletion.
**The following ways can be used to enable that autocompletion:**
-Using the Select2 JS library.
-Using WikiMedia’s own OOUI library.
-Using a custom solution like this [[ https://jsfiddle.net/spreadsheet/c7et6940/ | one ]], but this will be using jQuery UI which is deprecated among MediaWiki.
Going with OOUI is the right way for this project as it has some interface advantages over Select2 plus it'll help to maintain consistency among the MediaWiki. This will require altering the jexcel library for the Text input type and appending the OOUI's TextInputWidget in place of the default jexcel editor, and then enabling the Autocompletion on that widget.
**This auto-completion solution should ideally be supporting all the autocompletion possibilities available in standard Page Forms forms:**
-Autocompletion on all pages that match a specific category, Cargo field, SMW property or SMW concept.
-Support for the $wgPageFormsAutocompleteOnAllChars setting.
-Autocompletion on values retrieved from an external data source, using "values from external data", and the existing values saved for the field.
-Autocompletion where one field's values depend on what was chosen for a previous field, using "values dependent on".
Possible Mentors: @Yaron_Koren @Sahajsk
**Have you contacted your mentors already?**
Yes, I've been in contact with my mentors.
=**Timeline**=
______________________________________________________
<table>
<tr>
<th>**Period**</th>
<th>**Assignments**</th>
</tr>
<tr>
<td>Apr 16-Jun 1</td>
<td>**Community Bonding Period**
- Understand more about the code base by fixing other bugs and issues in Page Forms.
-Get more active on Phabricator and Gerrit.
-Interact more with mentors, other community members and other participants and know more about their projects</td>
</tr>
<tr>
<td>Jun 2-July 11</td>
<td>**Task 1**
Completing Autocomplete for pages having category Cargo field and support for $wgPageFormsAutocompleteOnAllChars setting.
Currently jExcel library is used for autocompletion, for auto-completion using an arbitrary list of values we will use MediaWiki’s own OOUI library.
</td>
</tr>
<tr>
<td>July 12- July 16</td>
<td>**Phase 1 Evaluations**
Mentors and students submit their evaluations of one another.
</td>
</tr>
<tr>
<td>July 17-Aug10</td>
<td>**Task 2**
Completing Autocomplete for pages having category SMW property or SMW concept, will be using MediaWiki’s own OOUI library for completing the autocompletion.
</td>
</tr>
<tr>
<td>Aug 11-Aug 16</td>
<td>**Buffer time**
Fix the issues that are left and make sure the documentation of the code should be enough and thoroughly covering each aspect.
</td>
</tr>
<tr>
<td>Aug 16-Aug 23</td>
<td>**Submit Code**
Students submit code for final evaluations.
</td>
</tr>
<tr>
<td>Aug 23-Aug 30</td>
<td>**Final Evaulations**
Mentors Submit Final Evaluations.
</td>
</tr>
<tr>
<td>Aug 31</td>
<td>**Results announced**
</td>
</tr>
</table>
=**Participation**=
_________________________________________________________________________
I’ll inform my mentors about my weekly progress and in case I get struck I’ll contact them through mail. I’ll update the documentation whenever I’ll make some changes to the code.
=**About Me**=
_________________________________________________________________________
I am a first year student pursuing a Bachelor of Technology in Electrical Engineering from Indian Institute of Technology, Ropar. Although I belong to a circuital branch my interest belongs fully to programming. I am a Data Science enthusiast and I also love solving competitive programming puzzles involving different data structures and algorithms.
I participated in Google Code-in 2019, where I got to know about Wikimedia and the basics of Gerrit code review. Then I started looking more about Wikimedia, how it’s helping millions of people. Contributing to such a project which would affect millions of people would be a great opportunity to learn.
During the project I’ll be having my laboratory classes from April 26 to July 7. I’ll be having mid semester examination in the first week of June and end semester examination in the first week of July. The lab classes will be online due to increasing covid cases in India and I’ll be attending those from my home.
Currently my focus is towards GSoC only and I’m giving my full time to GSoC only.
=**Past Experience**=
_________________________________________________________________________
My GitHub link is [[ https://github.com/iitrpr-yashvarshney | this ]]. One of my major projects is Amazon Alexa app(Index Price Application) which is hosted through python. This basically takes the voice input from user about the index name(e.g. Nifty fifty and Nifty five hundred) and tells him the last traded price of that index using an API. The link to the application is [[ https://www.amazon.in/dp/B08Z7TGRQ9 | this ]]. I also did projects related to automation using selenium library. I also have good knowledge about JavaScript and PHP.
=**Previous Contributions to WikiMedia:**=
_________________________________________________________________________
T275406 : Remove "namespace" parameter for "combobox", "tokens" input types.
T208176,: Add "intro" parameter to "for template".