==Profile Information
**Name**: Jay Prakash
**IRC nickname on Freenode**: Jayprakash12345
**Gmail ID**: 0freerunning@gmail.com
**GitHub profile**: https://github.com/Jayprakash-SE/
**Location**: India
**Typical working hours**: 5:00 PM to 1:00 AM UTC +5:30
==Synopsis
**Project summary**
* The ProofreadPage pagelist creation process is difficult for new users, and not particularly fast for experienced users. This project adds a new editing widget for it, so it can be more easily edited without resorting to external programmes etc
**Possible Mentor(s)**
* @Samwilson and @SGill
**Have you contacted your mentors already?**
* Yes, I have contacted @SGill.
==Deliverables
* Designing OOUI Widget
* Add Beta-testing flag for Javascript via OutputPage::addJsConfigVars
* Implementing the OOUI Widget & Writing tests
* Writing user documentation on MediaWiki.org and Old Wikisource
* Getting the feedback from Wikisource community through the video call
==Participation
* I will be online on IRC in my working hours ( 5:00 PM to 1:00 AM UTC +5:30) to collaborate with the mentors. I have [[https://meta.wikimedia.org/wiki/IRC/Cloaks|IRC/Cloaks]] with the name `wikimedia/Jayprakash12345`.
* Communication with my mentors will be done via Zulip/IRC during working hours.
* I will be available in non-working hours through my Google mail account.
* I will use Gerrit to publish the code.
* I will use [[https://en.wikisource.beta.wmflabs.org|Wikimedia Beta Cluster's Wikisource version]] for production testing.
==About Me
I am a 2nd-year student of Bachelor of Technology (Computer Science & Engineering). My University is [[https://en.wikipedia.org/wiki/Dr._A.P.J._Abdul_Kalam_Technical_University|Dr. A.P.J. Abdul Kalam Technical University]]. I have programming experiences for more than 5 years as I had computer science as my stream during High-School. I have been a Wikipedian since 2015.
**How did You hear about this Program ?**
* I heard about this program for the first time in the Wikimedia world in 2018. when I kept my eyes on the phabricator task for the new bug. Then I eagerly researched on GSoC.
**Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?**
- I have my end semester exam in the month of May. But it will end beforedue to COVID-19, There is a high possibility that the `Coding officially begins!`Exam will postpone for somewhere June or July. So as of now,But there will be a college vacation after that. I do notSo I will have any otherenough time to give more time commitmentsto this project. And there will be college vacation from the end of May to mid-August.So as of now, So I willI do not have enough time to give moreany other time to this projectcommitments.
**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)?**
* I am only planning to apply for Google Summer of Code with Wikimedia Foundation.
**What does making this project happen mean to you?**
* It matters a lot to me. I am very enthused about the free open-source software. In the Wikimedia world, I am getting this great chance to contribute to FOSS. Overall this project will boost my activity a lot in the Wikimedia world.
== Timeline
| **Period** | **Task** |
|------------ |-----------|
|April 27 to May 18|**Community bonding period** Get in touch with the mentors, where I will clear any doubts regarding the project and finalize the tasks. And understand the whole project very well. |
|May 19 to May 25| Designing Mockups & workflow and getting approval from mentors |
|May 26 to June 1| Finding the best way to implement the Widget by going through the ResourceLoader, OOUI, and HTMLForms documentation |
|June 2 to June 8| Implementing the OOUI Widget |
|June 9 to June 15| Implementing the OOUI Widget - Continue |
|June 15 to June 19|**Phase I evaluation**|
|June 20 to June 26| Implementing the OOUI Widget - Continue |
|June 27 to July 3| Improvements in Widget after getting feedback from mentors. |
|July 4 to July 13| Getting the feedback from Timo Tijhof over performance improvement of the widget and from Volker Eckl over UI issues like eye movement, etc. and fixing them |
|July 13 to July 17|**Phase II evaluation**|
|July 18 to July 24| Getting the feedback from wikisource community through video call and discuss it with mentors to add/improve features in Widget |
|July 25 to July 31| Write the user documentation on MediaWiki.org and improve current help pages on Multilingual wikisource aka Old wikisource |
|August 1 to August 10| Reviewing and fixing as many as possible bugs and Finalizing the project with the guidance of mentors. |
|August 10 to August 17|**Final student evaluations**|
|--------------|-------------------|
==Past Experience
I joined the Wikimedia world in 2015 from English Wikipedia. And regularly contribute to my native wiki (Hindi Wikipedia) since 2016. But After knowing MediaWiki I shifted my contribution in MediaWiki Extensions Maintenance and development since June 2017. I had uploaded around [[https://gerrit.wikimedia.org/r/#/q/owner:0freerunning%2540gmail.com|520 patches]] on Gerrit. Where [[https://gerrit.wikimedia.org/r/#/q/owner:0freerunning%2540gmail.com+status:merged|475 patches]] already merged in the Wikimedia repository. I am a Technical resource person/trainer of many offline Indic Wikimedia programs like MediaWiki Training 2018, MediaWiki Training 2019, Wiki Advanced Training 2018, NSCET MediaWiki Training, VVIT MediaWiki Training 2019, Jaipur Technical Training 2017, and Bhopal Technical Training 2018. I have done my GSoC 2019 mentorship with Wikimedia under @srishakatux Ji on {T215681}. My past activity can be tracked by the following.
**Online Technical Contribution**
* 475 patches out 520 have been merged at Gerrit Wikimedia.
* 31 Commit in [[https://github.com/wikimedia/mediawiki-api-demos|wikimedia/mediawiki-api-demos]] Github Repo.
* 60+ commit on [[http://github.com/indictechcom|Indic-TechCom]]’s Github repo.
* Created [[https://www.mediawiki.org/wiki/MediaWiki:Gadget-tabbedwindow.js|tabbed window]] OOUI widget, which is used by MediaWiki.org Community.
* Created Userscripts
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/MoveAndReplace|MoveAndReplace]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/qrCodeGenerator|QRCodeGenerator]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/MassMove|MassMove]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/WikidataCoord|WikidataCoord]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/BookReader#UserScript|BookReader]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/FloatableEditingButton|FloatableEditingButton]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/FileLinkTool|FileLinkTool]]
* Created Toolforge tools
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/IndicOCR|Indic-OCR]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Indic_Wikisource_Stats|Indic Wikisource Stats]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Wikifile-transfer|Wikifile-transfer]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Indic_Wikisource_Contest| Indic Wikisource Contest]]
** [[https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/BookReader|BookReader]]
** [[https://tools.wmflabs.org/user-contributions-feed/|User contributions feed]]
**Offline/Outreachy events**
* Organizer of [[https://meta.wikimedia.org/wiki/CIS-A2K/Events/MediaWiki_Training/2018|MediaWiki Training 2018]]
* Technical resource person in [[https://meta.wikimedia.org/wiki/CIS-A2K/Events/Wiki_Advanced_Training/2018|Wiki Advanced Training 2018]]
* Technical resource person in [[https://hi.wikipedia.org/wiki/विकिपीडिया:प्रशिक्षण_कार्यशाला-जयपुर|Jaipur Technical Training 2017]]
* Technical resource person [[https://hi.wikipedia.org/wiki/विकिपीडिया:प्रशिक्षण_कार्यशाला-भोपाल|Bhopal Technical Training 2018]]
* MediaWiki trainer in [[https://meta.wikimedia.org/wiki/CIS-A2K/Events/Mini_MediaWiki_Training_Theni|NSCET MediaWiki Training]]
* MediaWiki trainer in [[https://meta.wikimedia.org/wiki/CIS-A2K/Events/Mini-MWT_at_VVIT_(Feb_2019)#Report|VVIT MediaWiki Training 2019]]
* MediaWiki trainer in [[https://meta.wikimedia.org/wiki/CIS-A2K/Events/MediaWiki_Training/2019|MediaWiki Training 2019]]
* Organizer of Hackathon in WikiConference India 2020 (upcoming, Wikimania of India)
**Community Engagement/Others**
* Volunteer Lead Developer of [[https://meta.wikimedia.org/wiki/Indic-TechCom/Management|Indic-TechCom]]:- Primary responsible to create the new tool/reports/RfC and assist the Indic-Community (24 Languages with its project).
* 19,000+ global wiki edits. My favorite wiki project is Wikiversity. I am a sysop at Hindi Wikiversity.
* [[https://meta.wikimedia.org/wiki/Grants:Project/Wikilover90/Heritage_GLAM/Profile|Heritage GLAM]]:- I have provided technical support to the Heritage GLAM Team. I have developed some tools under Heritage GLAM.
* Technical advisor of many Indic community’s regional partnerships.
* Maintain the Indic Wiki Gadgets and user scripts. See [[https://meta.wikimedia.org/wiki/Indic-TechCom/Management|Indic-TechCom/Management]] for detailed Report.
* Created [[https://pypi.org/project/pywikisource/|pywikisource]] python library, Wikisource Dedicated Python API library during Wikimania 2019.
**Experiences relevant to this project**
* In MediaWiki Core, I have a great deal of experience in OOUI and HTMLForm. I converted [[https://gerrit.wikimedia.org/r/#/q/owner:0freerunning%2540gmail.com+%2522OOUI%2522|100+ Special Pages]] to OOUI.
** {T192265}, where thumbnail is involved under OOUI Window.
** {T210672}, OOUI work on ProofreadPage Extension
* Document the OOUI/HTMLForm stuff on MediaWiki.org
** {T188892}
** {T217991}
** {T218417}
* Most of the above mentioned created UserScripts are based on OOUI Library.
* Since I have created many tools for the wikisource community, I have intermediate knowledge of How Wikisource works.
* Created [[https://github.com/Jayprakash-SE/OOUI-javascript-tutorial/blob/master/index.html|OOUI Javascript Tutorial]] and [[https://github.com/Jayprakash-SE/OOUI-PHP-tutorial|OOUI PHP Tutorial]] demo tutorial at that time when there was no tutorial-like [[https://doc.wikimedia.org/oojs-ui/master/demos/tutorials/index.html|OOUI Tutorials]].
* Have Advanced knowledge of MediaWiki-APIs as I had worked on it in GSoC 2019.
* Familiar with Gerrit, Jenkins, Zuul, SWAT Deployments, Coding conventions, Codesearch, doc.wikimedia.org etc
==Workflow
* Wikisource is a wikimedia's free library project where contributors digitize the public domain’s work/book.
* Contributors create Index: pages and then proofread the content in Page: pages.
* Default view of the pagelist in View Mode of Index pages will be the current one.
|{F31702072}
* In the editing mode of Index pages, There will be two modes of editing Page field.
** ** **Text Editing Mode**
** ** **Visual Editing Mode**
| | **Current View**: {F31702147 width=30250} | **Text Mode**: {F31702149 width=30250} | **Visual Mode**: {F31702154 width=300}250}
* After clicking on the page number from Page field in Visual Mode. an OOUI Widget will open. The Widget will be based [[https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs|Process_ Dialogs]]. It will contain the following things.
** A **thumbnail** of Page number’s image with **Zoom** buttons
** The **text labels** field e.g. 'title', ‘Cvr’, 'ToC', etc or custom. Also support Localization via [[https://www.mediawiki.org/wiki/Manual:$wgTranslateNumerals|$wgTranslateNumerals map]]
** Applying Changes button.
* After applying changes, the pagelist will update, then the contributor can save the Index page.