Page MenuHomePhabricator

GSoC 2020 Proposal: Create OOUI widget for Index page pagelists
Closed, DeclinedPublic

Description

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)

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 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 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 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 due to COVID-19, There is a high possibility that the Exam will postpone for somewhere June or July. But there will be a college vacation after that. So I will have enough time to give more time to this project. So as of now, I do not have any other time commitments.

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

PeriodTask
April 27 to May 18Community 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 25Designing Mockups & workflow and getting approval from mentors
May 26 to June 1Finding the best way to implement the Widget by going through the ResourceLoader, OOUI, and HTMLForms documentation
June 2 to June 8Implementing the OOUI Widget
June 9 to June 15Implementing the OOUI Widget - Continue
June 15 to June 19Phase I evaluation
June 20 to June 26Implementing the OOUI Widget - Continue
June 27 to July 3Improvements in Widget after getting feedback from mentors.
July 4 to July 13Getting 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 17Phase II evaluation
July 18 to July 24Getting the feedback from wikisource community through video call and discuss it with mentors to add/improve features in Widget
July 25 to July 31Write the user documentation on MediaWiki.org and improve current help pages on Multilingual wikisource aka Old wikisource
August 1 to August 10Reviewing and fixing as many as possible bugs and Finalizing the project with the guidance of mentors.
August 10 to August 17Final 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 520 patches on Gerrit. Where 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: Develop code samples in Javascript and PHP to demonstrate the use of MediaWiki Action API modules. My past activity can be tracked by the following.

Online Technical Contribution

Offline/Outreachy events

Community Engagement/Others

  • Volunteer Lead Developer of 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.
  • 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 Indic-TechCom/Management for detailed Report.
  • Created pywikisource python library, Wikisource Dedicated Python API library during Wikimania 2019.

Experiences relevant to this project

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. |
    Screenshot 2020-03-25 at 8.43.36 PM.png (62×373 px, 16 KB)
  • In the editing mode of Index pages, There will be two modes of editing Page field.
    • Text Editing Mode
    • Visual Editing Mode
Current View:
Screenshot 2020-03-25 at 8.55.10 PM.png (313×871 px, 18 KB)
Text Mode:
New Project.jpg (288×598 px, 20 KB)
Visual Mode:
New Project (1).jpg (262×599 px, 28 KB)
  • After clicking on the page number from Page field in Visual Mode. an OOUI Widget will open. The Widget will be based 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 $wgTranslateNumerals map
    • Applying Changes button.
  • After applying changes, the pagelist will update, then the contributor can save the Index page.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Jayprakash12345 renamed this task from [WIP] GSoC 2020 Proposal: Create OOUI widget for Index page pagelists to GSoC 2020 Proposal: Create OOUI widget for Index page pagelists.Mar 22 2020, 11:13 PM
Jayprakash12345 updated the task description. (Show Details)

Hi @Samwilson and @SGill Ji, Hope you are busy in making something awesome for the community :) If you find some time, please express your views on this proposal.

Add Beta-testing flag for Javascript via OutputPage::addJsConfigVars

Do you mean e.g. that this would be able to be enabled via a URL parameter? Note that there also needs to be a feature flag such as $wgProofreadPagePagelistWidget so the new feature can be incrementally tested and rolled out.

Implementing the OOUI Widget
Writing unit tests

Tests should ideally not be an afterthought, but rather they should be written during feature development. In this case, it'll not just be unit tests (QUnit) but also hopefully Selenium tests too.

Designing Mockups & workflow and getting approval from mentors

Would you mind writing a sentence or three about the actual widget design and behaviour here (e.g. what's displayed when and what happens at key interaction points)? Nothing super specific, but just so we know we're all on the same page.

I would like to join as co-mentor for this, my role will be limited to suggestions for improvement of the widget.

Hi @Samwilson and @SGill Ji, Hope you are busy in making something awesome for the community :) If you find some time, please express your views on this proposal.

I would like to join as co-mentor for this, my role will be limited to suggestions for improvement of the widget.

@Suyash.dwivedi Ji, It is not the right place for it. The project is T172953.

Do you mean e.g. that this would be able to be enabled via a URL parameter? Note that there also needs to be a feature flag such as $wgProofreadPagePagelistWidget so the new feature can be incrementally tested and rolled out.

No, But if we want to use this trigger, we can use $context->getRequest()->getInt() to catch the parameter.

I agree we have to register $wgProofreadPagePagelistWidget such variable for incrementally testing. I mean by OutputPage::addJsConfigVars() is that to accessing such variable in frontend using mw.config.

Tests should ideally not be an afterthought, but rather they should be written during feature development. In this case, it'll not just be unit tests (QUnit) but also hopefully Selenium tests too.

Merged into Implementing the OOUI Widget

Would you mind writing a sentence or three about the actual widget design and behaviour here (e.g. what's displayed when and what happens at key interaction points)? Nothing super specific, but just so we know we're all on the same page.

Added Workflow Heading. Please look.

Also @Samwilson Ji, I have updated my commitments since your last review.

Pavithraes subscribed.

@Jayprakash12345 We are sorry to say that we could not allocate a slot for you this time. Please do not consider the rejection to be an assessment of your proposal. We received over 100 quality applications, and we could only accept 14 students. We were not able to give all applicants a slot that would have deserved one, and these were some very tough decisions to make. Please know that you are still a valued member of our community and we by no means want to exclude you. Many students who we did not accept in 2019 have become Wikimedia maintainers, contractors and even GSoC students and mentors this year!

If you would like a de-brief on why your proposal was not accepted, please let me know as a reply to this comment or on the ‘Feeback on Proposals’ topic of the Zulip stream #gsoc20-outreachy20. I will respond to you within a week or so. :)

Your ideas and contributions to our projects are still welcome! As a next step, you could consider finishing up any pending pull requests or inform us that someone has to take them over. Here is the recommended place for you to get started as a newcomer: https://www.mediawiki.org/wiki/New_Developers.

If you would still be eligible for GSoC next year, we look forward to your participation!