Page MenuHomePhabricator

GSoC 2021 Proposal: Add zoom and pan to the Wikisource Pagelist Widget
Closed, ResolvedPublic


Profile Information

Name: Yash Agrawal

IRC: Yash Agrawal

Web Profile: Github


Timezone: IST (Indian Standard Time) (UTC + 5.30)

Location: Gujarat, India

Typical working hours: 06:00 PM to 01:00 AM (UTC+5:30)


The Wikisource Pagelist Widget is an OOUI based widget that streamlines the process of creating a pagelist for new (and existing) Wikisource users. While using the Pagelist widget, the user is presented with the picture of a scanned page and is asked to identify the page number on the scan. However, there is no option to zoom or pan the scanned image inside the Pagelist widget. Adding the option to zoom and pan the image will allow users to see the page number for scans with a tiny font or have lots of text (for example, newspapers scans).

Possible Mentor(s)


  • Review and test various zooming and panning libraries available.
  • Testing and reviewing the various libraries based on their popularity, maintainership, Mobile support (iOS, Android), Browser Support, SVG support, size, etc.
  • Integrate the library with the current code of the pagelist widget.
  • Work on integrating the library with ResourceLoader (Wikimedia's system to serve Javascript, CSS, and Image assets).
  • If time permits, replace the old jQuery-based zooming and panning library used by the Page: namespace editor.
  • Provide continued support and fix bugs related to the zooming and panning feature after the end of the program.
  • If time permits, writing the Selenium tests for the ImagePanel and for zooming and panning library integration.


Community Bonding Period (May 17, 2021 - June 7, 2021):

PeriodWeek NoTimeline
May 17 -May 23Week 1I will familiarize myself with the ProofreadPage extension's codebase, especially the Pagelist widget. I will study and learn about the ResourceLoader modules and look at the general JavaScript packaging architecture of Wikimedia.
May 23 -May29Week 2I will glance through the extensions of Wikimedia, which are using the zooming and panning library, such as the Kartographer, which uses Leaflet Library for zooming and panning, and try to understand its implementation to get an intuition to integrate the library with the current code of the pagelist widget.
May 29 -June 7Week 3I will study the Leaflet Library and will work on integrating the library with the ResourceLoader.

Coding Period (June 7, 2021 - August 16, 2021):

PeriodWeek NoTimeline
June 7 -June 13Week 1Finish with the work on integrating the library with the ResourceLoader and with the current code of the pagelist widget and find either all the features we want are available under my mentor's supervision.
June 13 -June 19Week 2Start testing other zoom and pan libraries like Panzoom, Wheelzoom, Drift, and Bigpictures by integrating them with the pagelist widget's code. Write a bi-weekly report.
June 19 -June 25Week 3Finish with the work on testing the Panzoom and Wheelzoom libraries and find Either all the features we want are available.
June 25 -July 1Week 4Study the Drift and Bigpictures libraries and start testing and implementing them. Write a bi-weekly report.
July 1 -July 7Week 5Finish with Drift and Bigpictures libraries testing and start exploring other libraries with the mentor's help.
July 7 -July 12Week 6Finish with the testing of all libraries and finalize the library with the help of mentors based on popularity, maintainership, Mobile support (iOS, Android), Browser Support, SVG support, size, etc. Writ a bi-weekly report.
July 12 -July 16Evaluation IWork on implementing the finalized library and preparing for the evaluation.
July 17 -July 23Week 1Continue working on implementing the finalized library and replacing the old jQuery-based zooming and panning library used by the Page: namespace editor. Write a bi-weekly report.
July 24 -July 31Week 2Finish with replacing the old jQuery-based zooming and panning library used by the Page: namespace editor, testing and fixing any unpredicted bugs.
August 1 – August 7Week 3[1]
August 8 – August 16Week 4[1]

[1] I will use the last two weeks to buffer unforeseen delays and solve the unexpected bugs that may arise during the project. If all goes according to the plan, I plan on writing the Selenium tests for the ImagePanel and for zooming and panning library integration.

Final Evaluation(August 24, 2020 - August 31, 2020):
Prepare for the evaluation, fixing the unforeseen bugs, and working on community feedback.


  • I will be working over 30 hours a week.
  • I will be available on IRC and Zulip during my working hours.
  • I will also communicate on Phabricator via comments on the related project subtasks.
  • I will be available by email when needed during non-working hours.
  • I will be committing my progress to the master branch of the Proofread_Page extension via Gerrit.
  • I will post bi-weekly updates regarding my progress on my MediaWiki user page.

About Me

Your education (completed or in progress):

I am a second-year student pursuing a Bachelors's Degree in Computer Science and Engineering at Parul University, Gujarat, India. I have been contributing to open-source projects for quite some time now.

How did you hear about this program?

I was introduced to open-source by a senior in my freshman year, and since then, I have been hooked. Open-source projects are a great way of developing quality products by working together with other developers. I always wanted to contribute to projects that I use to give back to the Community. While exploring the open-source, I came to know 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?

My college classes will resume from 25th May; however, I will still contribute upwards of 30 hours a week towards this project and finish it in time. There might be a change in my college timetable. I will communicate the changes when necessary.

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 applying for Google Summer of Code with the Wikimedia organization.

What does making this project happen mean to you?

Having relied on Wikimedia since childhood, without even realizing it, I understand the role that Wikimedia plays and has been playing in shaping how knowledge is shared around the world. The successful completion of this project would impact millions of Wikimedians who use the feature almost daily.
It would help me to realize that how collaboration can lead to great things. I would also like to keep contributing to this particular project to make it successful and the Wikimedia movement.

Past Experience

  • I have worked on several different projects that span a wide range of technologies like Javascript, PHP, Python, C++, Django, Flask, Bootstrap, JQuery, and databases like SQLite, MySQL, PostgreSQL, and MariaDB.
  • I have been a part of the Wikimedia community since September 2020. As of April 13, I have made 13 contributions to the Wikimedia extensions and 11 contributions to the Library Card platform (A tool allowing Wikimedia contributors to apply for free access to paywalled resources). (Gerrit profile)
Library Card platform

Event Timeline

Hey @Yash4357

Thanks for showing your interest to participate in Google Summer of Code with Wikimedia Foundation! Please make sure to upload a copy of your proposal on Google's program site as well in whatever format it's expected of you, include in it this public proposal of Phabricator before the deadline i.e April 13th. Good luck :)

GSoC application deadline has passed. If you have submitted a proposal on the GSoC program website, please visit and then drag your own proposal from the "Backlog" to the "Proposals Submitted" column on the Phabricator workboard. You can continue making changes to this ticket on Phabricator and have discussions with mentors and community members about the project. But, remember that the decision will not be based on the work you did after but during and before the application period. Note: If you have not contacted your mentor(s) before the deadline and have not contributed a code patch before the application deadline, you are unfortunately not eligible. Thank you!

Sorry for stepping in. A maybe relevant task when designing a new zooming system: T43614

Change 700381 had a related patch set uploaded (by Yash9265; author: Yash9265):

[integration/config@master] Add User:Yash9265

Change 700381 merged by jenkins-bot:

[integration/config@master] Add User:Yash9265

Is everything in this project task planned for Google-Summer-of-Code (2021) completed? If yes, please consider closing this task as resolved. If bits and pieces are remaining, you could consider creating a new task and moving them there.

Hello! GSoC is long over. Anything leftover in this task before it can be resolved?

Yep, this is all done! (Sorry for leaving it open so long; Yash finished the work ages ago, but we only finally got the last bit of it merged recently.)