Profile Information
Name: Yash Agrawal
IRC: Yash Agrawal
Web Profile: Github
Email: yashagrawal9265@gmail.com
Timezone: IST (Indian Standard Time) (UTC + 5.30)
Location: Gujarat, India
Typical working hours: 06:00 PM to 01:00 AM (UTC+5:30)
Synopsis
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)
- @Soda @Samwilson @SGill
- Have you contacted your mentors already? Yes
Deliverables
- 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.
Timeline
Community Bonding Period (May 17, 2021 - June 7, 2021):
Period | Week No | Timeline |
---|---|---|
May 17 -May 23 | Week 1 | I 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 -May29 | Week 2 | I 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 7 | Week 3 | I will study the Leaflet Library and will work on integrating the library with the ResourceLoader. |
Coding Period (June 7, 2021 - August 16, 2021):
Period | Week No | Timeline |
---|---|---|
June 7 -June 13 | Week 1 | Finish 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 19 | Week 2 | Start 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 25 | Week 3 | Finish with the work on testing the Panzoom and Wheelzoom libraries and find Either all the features we want are available. |
June 25 -July 1 | Week 4 | Study the Drift and Bigpictures libraries and start testing and implementing them. Write a bi-weekly report. |
July 1 -July 7 | Week 5 | Finish with Drift and Bigpictures libraries testing and start exploring other libraries with the mentor's help. |
July 7 -July 12 | Week 6 | Finish 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 16 | Evaluation I | Work on implementing the finalized library and preparing for the evaluation. |
July 17 -July 23 | Week 1 | Continue 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 31 | Week 2 | Finish 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 7 | Week 3 | [1] |
August 8 – August 16 | Week 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.
Participation
- 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)
Wikimedia
- Creating an interface to check for emptiness of an object (Merged)
- View Source on protected pages in MobileFrontend Minerva (Merged)
- Add max-width limit to empty watchlist page (Merged)
- Prevent nav links from appearing when Special:IndexPages is included (Merged)
- Using Emptiable interface to check for emptiness of an object (Merged)
- Clear search input button is of no value for AT users (Merged)
- MobileFrontend should use sessionStorage for expandedSections (Merged)
Microtask
- Change TopPanel icons from infoFilled to more meaningful ones (Merged)
- Hook up keyboard shortcuts to the Pagelist Widget Dialog (Merged)
- Handle internet connectivity drops gracefully (Merged)
- Added a localBasePath for PagelistWidget (Merged)
- Preview pagelist button on non-dialogue portion should not be active when closing the dialogue (In progress)
Library Card platform
- https://github.com/WikipediaLibrary/TWLight/pull/542 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/540 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/557 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/543 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/546 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/560 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/571 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/574 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/573 (Merged)
- https://github.com/WikipediaLibrary/TWLight/pull/581 (In progress)
- https://github.com/WikipediaLibrary/TWLight/pull/584 (In progress)