==Profile Information
Name: **Sahaj Khandelwal**
Email: **ksahajk21@gmail.com**
IRC nickname on Freenode: **Sahajsk**
Web Profile: [[ https://github.com/sahajsk21 | GitHub ]], [[ https://www.linkedin.com/in/sahaj-khandelwal-sk2107/ | LinkedIn ]]
Location: **Indore**, **Madhya** **Pradesh**, **India**
Typical working hours: **5 AM to 8 PM UTC +5:30**
==Synopsis
The task aims to remove the use of jQuery UI from PageForms extension. This library would be primarily replaced by jQuery and standard Javascript functions. As the development of jQuery UI seems to have ceased, all of the MediaWiki tends to replace this library. This replacement will make the PageForms extension more universal and standardized.
Following use cases of jQuery UI in PageForms extension were explored:-
# jQuery UI Autocomplete and jQuery UI Datepicker
# jQuery UI Widget (used in FancyTree library)
# jQuery UI Sortable (used in jsGrid library)
==Mentor(s)
As mentioned in the project details, the mentor is @Yaron_Koren
**Have you contacted your mentors already?**
**Yes**, I have already contacted the mentor.
===Timeline
|**Period**|**Week**|**Task**|
| April 27 to May 17 ||**Community bonding period**|
| |Week 1 (April 27 to May 3) |Won't be available much for the first half of the week due to examinations.|
| |Week 2 (May 4 to May 10) |Explore the usage of jQuery UI library in the extension. |
| |Week 3 (April 11 to May 17) |Look for intelligent solutions for each block to remove jQuery UI wherever it is being used. Learn more about libraries such as OOUI and jsTree. |
| May 18 to June 19 ||**Coding Period (Phase 1)**|
| |Week 1 (May 18 to May 24) |Start working on the first part (autocomplete and DateTime inputs) of the project for the first phase as described above. Begin working in the form inputs section and replace the "text with autocomplete" and "textarea with autocomplete" input types with standard input types such as Combobox |
| |Week 2 (May 25 to May 31) |Replace jQuery UI autocomplete widget with libraries like Select2, Chosen or Selectize.js |
| |Week 3 (June 1 to June 7) |Start working on the DateTime input widget and replace the present input with a better alternative. |
| |Week 4 (June 8 to June 14) |This week will be mostly devoted to try and test the changes and work on tasks which are left over in the first phase |
| |Week 5 (June 15 to June 19) | Phase 1 evaluation|
| June 20 to July 17 ||**Coding Period (Phase 2)**|
| |Week 1 (June 20 to June 26) |Begin working on replacing Fancytree library. Mostly explore the use cases in the PageForm extension|
| |Week 2 (June 273 (April 11 to July 3) |Replace corresponding inputs wherever necessary with plugins such as jsTree or other alternativesMay 17) |Look for intelligent solutions for each block to remove jQuery UI wherever it is being used. Start looking into the usage of jsGrid. |Learn more about libraries such as OOUI and jsTree.
| May 18 to June 19 ||**Coding Period (Phase 1)**
| |Week 3 (July 4 to July 12) |Try and test the changes done in phase 2 and correct potential errors.|1 (May 18 to May 24) |Start working on the first part (autocomplete and DateTime inputs) of the project for the first phase as described above. Begin working in the form inputs section and replace the "text with autocomplete" and "textarea with autocomplete" input types with standard input types such as Combobox
| |Week 2 (May 25 to May 31) |Replace jQuery UI autocomplete widget with libraries like Select2, Chosen or Selectize.js
| |Week 3 (June 1 to June 7) |Start working on the DateTime input widget and replace the present input with a better alternative.
| |Week 4 (June 8 to June 14) |This week will be mostly devoted to try and test the changes and work on tasks which are left over in the first phase
| |Week 5 (June 15 to June 19) | Phase 1 evaluation
| |Week 4 (| June 20 to July 13 to July 17) |Phase 2 evaluation|7 ||**Coding Period (Phase 2)**
| July 18 to August 16||**Coding Period (Final Phase)**||Week 1 (June 20 to June 26) |Begin working on replacing Fancytree library. Mostly explore the use cases in the PageForm extension
| |Week 12 (July 18ne 27 to July 243) |Replace jsGrid functionality with more familiar jExcel,corresponding inputs wherever necessary with plugins such as jsTree or other alternatives. Tabulator or any well-maintained library |Start looking into the usage of jsGrid.
| |Week 3 (July 4 to July 12) |Try and test the changes done in phase 2 and correct potential errors.
| |Week 24 (July 2513 to July 31) |Following two weeks will be more concerned with wrapping up and clearing logs of any incomplete task |17) |Phase 2 evaluation
| |Week 3 (August 1 to August 7) |This week will be kept for buffer. All the changes made in during the program will be tried, tested and finally merged. |July 18 to August 16||**Coding Period (Final Phase)**
| |Week 1 (July 18 to July 24) |Replace jsGrid functionality with more familiar jExcel, Tabulator or any well-maintained library
| |Week 2 (July 25 to July 31) |Following two weeks will be more concerned with wrapping up and clearing logs of any incomplete task
| |Week 3 (August 1 to August 7) |This week will be kept for buffer. All the changes made in during the program will be tried, tested and finally merged.
| |Week 4 (August 8 to August 16) |Final evaluation |
| August 17 to August 24||**Mentors submit final student evaluations**|
| August 25||**Final results of Google Summer of Code 2020 announced**|
===Participation
- I will maintain a separate branch for making the changes. It will be merged once the changes have been tested and verified.
- I will be online on IRC in my working hours to contact the developers for help and suggestions.
- I will use Phabricator for clearing queries regarding the bugs and tasks.
- I will be available through email (ksahajk21@gmail.com).
===About Me
**Education (completed or in progress)**
I am a sophomore student pursuing my bachelors in Electrical Engineering at the Indian Institute of Technology Roorkee. Having completed my schooling from Emerald Heights International School, Indore, I started learning web development and data analytics. I have taken up several courses and projects regarding the same.
**How did you hear about this program?**
The primary sources were my friends, colleagues and seniors in my college. I learnt more through the Google Summer of Code website and youtube videos of past participants.
**Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?**
For the time being, I only wish to pursue this project at Wikimedia Foundation under Google Summer of Code program.
**We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization (s)?
**Having missed the deadlines for Outreachy, I can apply only through Google Summer of Code.
**What does making this project happen mean to you?**
Searching about any relevant topic on Google, the first link mostly directs to a Wikipedia page regarding that topic. The amount of information it contains and their credibility is insane. The trust it has among people is remarkable. Contributing to such an organization with such a huge user base and with such noble cause is a service to the community in itself.
From my future perspective, it would be a great platform to showcase my skills and open doors to new opportunities.
===Past Experience
I took up a project last summer with a startup named [[ https://analysed.in/ | Analysed]]. It is a virtual recruitment platform to reduce the hassle in the process of recruitment. I developed several algorithms for filtering out candidates who apply to an organization based on their skills and submission of tasks. I learnt to program extensively in languages such as Python, PHP and Javascript. I also worked on the design and aesthetics of the website.
I have also taken up several MOOCs to learn skills such as PHP, MySQL and Javascript.
I have contributed to MediaWiki in the following ways:-
Completed the following tasks:-
- (T242973)Special:CargoQuery autocompletion appearance should be standardized
- (T244730) Special:ListFiles shows usernames with underscores
Working on this task:-
- (T247407)Field date does not handle ancient dates correctly
===Other Info
Gerrit profile: [[ https://gerrit.wikimedia.org/r/q/owner:ksahajk21%2540gmail.com | Gerrit ]]
User page: [[ https://www.mediawiki.org/wiki/User:Sahajsk%60 | MediaWiki ]]