Page MenuHomePhabricator

GSoC proposal: Add 'Category' search filter to Recent Changes Filters
Closed, ResolvedPublic

Description

Profile

Name: Hagar Shilo
Personal website: http://hagarsh.com/
Github: https://github.com/strayblues
Location: Israel (UTC+3:00)
Typical working hours: 4pm to 12am UTC+3:00

Synopsis

The Category filter’s purpose is to display to a reviewer the edits made to articles and other pages in that category. It will be added to the main filter panel. Desired features include several category search options, as specified in the timeline, as well as in the Phabricator task this proposal is based on (https://phabricator.wikimedia.org/T163433). The existing task includes UI mockups.
Mentors: @Mooeypoo, @Catrope

Timeline

PeriodTask
April 23 - May 11Community bonding period. Get to know the mentors, read UI library documentation, get to know the organization’s work methods, version control tools, coding style guidelines, etc. Set up the developer environment. Request access to necessary tools. Structure sub-tasks.
May 14 - May 25Explore the code of the existing filter box. Add a new group type, to check and determine whether or not it could be useful for this project. Write tests for that new group, write logic for it and make sure it passes all the tests.
May 28 - June 1Make API requests to fetch dummy category pages I've created, and learn about async and promises. Learn OOUI, the UI library used in the project.
Jun 4 - June 22Category filter with basic functionality (Backend): Build the supporting structure in the backend (queried to fetch category or categories in RecentChanges lists)
June 11 - June 15Mentors and students submit Phase 1 evaluations
June 25 - July 13Category filter with basic functionality (Frontend): Build the UI elements for the filter box and connect them to the data retrieved from the API.
July 9 - July 13Mentors and students submit Phase 2 evaluations
July 16 - July 27Develop additional features, if time permits. Ideally, the Category search functions will include the following: The menu’s ability to gradually replace pre-populated categories with categories the user searched for, listing them alphabetically. The selection of multiple categories and an "Exclude selected" button for inverting the search function. Make the tool more convenient to use: Handle first use: recognize when a reviewer uses this tool for the first time, and show more instructions (GuidedTour). Collect feedback and make Improvements accordingly.
July 30 - August 13QA and bugfixes. Write documentation. Code cleanup for submission.
August 14 - August 21Mentors submit final student evaluations.
August 22Final results of Google Summer of Code 2017 announced

Deliverables

MVP for the Category filter in RecentChanges Filters:
Prediction: the ability to provide the reviewer with available categories as they type in the filter box
The ability to filter the results by chosen categories in RecentChanges
If time permits, extra features beyond the MVP:

  • Store most recently used categories for the user as an initial list
  • Create a "Guided Tour" introducing the feature

Develop the frontend and backend features described in the task spec and timeline
Post weekly reports about my progress
Learn SO MUCH

Participation

Be available online on IRC/chat during my working hours
Communicate on tasks through commenting on subtasks on Phabricator
Work on a separate git branch and push code to forked repo daily
Create a pull request when a feature is done
Weekly reports will be published in my meta wiki user page
Weekly video chat with mentor(s)

About me

I am a Web Developer with a background in Linguistics. These days I am pursuing a Master’s degree in Cognitive Studies of Language Use at Tel Aviv University, and in 2015 I got my Bachelor’s in Linguistics from The Hebrew University of Jerusalem. In 2016 I have earned a certificate in Front End Development from Holon Institute of Technology, and had a QA tester job in Contextors, a start-up company that was dedicated to building an English learning app.

I am excited about the opportunity to get involved in an open source project and help make it better. What I love about Wikipedia in particular, is the way that it makes knowledge and information accessible to so many people around the world. And as a linguist, I am inspired by it being a large scale multilingual project.

Past Experience

In 2017 and 2018 I’ve worked part-time as a web developer in BigData Boutique, a small software company, where I’ve gained some experience in Node.js, Express.js, Handlebars.js and Git, and did some authentication work with JWT and Auth0. Other than that, I have a good knowledge of jQuery and JavaScript from working on my personal projects, and some knowledge in PHP from a WordPress project I was involved with as a volunteer (https://www.common-ground.org.il/).

My Github account: https://github.com/strayblues
My personal website: http://hagarsh.com/

Event Timeline

Change 433168 had a related patch set uploaded (by Hagar Shilo; owner: Hagar Shilo):
[mediawiki/core@master] [wip] Add a new group

https://gerrit.wikimedia.org/r/433168

Hagarshilo renamed this task from GSoC proposal: adding "user" search filter to Recent Changes Filters to GSoC proposal: Add 'Category' search filter to Recent Changes Filters.May 23 2018, 11:57 AM
Hagarshilo updated the task description. (Show Details)

@Hagarshilo @Mooeypoo, I didn't understand how T167224 is a parent of this task so removed it. But if there is some reason please feel free to go ahead and put it back.

It was before, it was changed to the Category filter task now.

Note another relevant task (a child of T163433) that we will also implement as an entry point to Category search: T195481: Create entry points for the category filters
This is in addition to typing the trigger '/' in the filter menu.

Change 435793 had a related patch set uploaded (by Hagar Shilo; owner: Hagar Shilo):
[mediawiki/core@master] [wip] Implement basic category fetch

https://gerrit.wikimedia.org/r/435793

Change 435816 had a related patch set uploaded (by Hagar Shilo; owner: Hagar Shilo):
[mediawiki/core@master] [wip] Add temp category group for testing fetched results in search box

https://gerrit.wikimedia.org/r/435816

Change 435818 had a related patch set uploaded (by Hagar Shilo; owner: Hagar Shilo):
[mediawiki/core@master] [wip] Edit fetchCategories and Modify setSearch to handle catrgories differently

https://gerrit.wikimedia.org/r/435818

Update on this project:

During the work on the project by both @Hagarshilo, myself and @Catrope, it became clear that this task has a lot more complexity than we'd originally thought.

The main issue is that RCFilters doesn't quite know how to handle asynchronous operations, so when we want to add Categories (or user or anything else API-dependent) the system needs to be adapted.

We've worked on several attempts, and realized that the scope is creeping out of what should be a Google Summer of Code project. As a result, we've changed the GSoC project itself.
Hagar has been working on T198845: OOUI tutorial migration that will have a large impact on users and gadget-creators that want to get into OOUI library

For this specific project, I have a work-in-progress that may serve as a good starting point for later work, which I will update in the original ticket.

I'd like to emphasize that this has nothing to do with Hagar's skills as a developer or GSoC intern! The project simply became a lot more complex than we'd realized, and it was very clear that we should utilize Hagar's time wisely.

For updates on how category search may be implemented in RCFilters, please refer to the parent task: T163433: Implement 'Category' filters and filter menu in the new UI

Thank you for those updates, @Mooeypoo. That's unfortunate while those filters are really expected, from the feedback I can read.

If that GoSC is not going to happen, that task should be declined, don't you think?

Thank you for those updates, @Mooeypoo. That's unfortunate while those filters are really expected, from the feedback I can read.

If that GoSC is not going to happen, that task should be declined, don't you think?

[edit (sorry, I thought we were talking about the other task! ;) ]

I am not sure if we decline this or make it finished; @SrishtiSethi -- which would you like to do for this proposal, seeing as we've moved to another proposal instead during the project?

Change 435793 abandoned by Hagar Shilo:
[wip] Refactor basic category fetch

https://gerrit.wikimedia.org/r/435793

Change 433168 abandoned by Hagar Shilo:
[wip] Implement base group behavior

https://gerrit.wikimedia.org/r/433168

Change 435818 abandoned by Hagar Shilo:
[wip] Edit fetchCategories and Modify setSearch to handle catrgories differently

https://gerrit.wikimedia.org/r/435818

Change 435816 abandoned by Hagar Shilo:
[wip] Add temp category group for testing fetched results in search box

https://gerrit.wikimedia.org/r/435816

I am not sure if we decline this or make it finished; which would you like to do for this proposal, seeing as we've moved to another proposal instead during the project?

CC'ing @srishakatux - I'd say this very task should at least get closed, and a pointer be added to T163433 that there's already some code work linked in T190714?

The initial goal of this proposal was to implement 'Category' search filter to Recent Changes Filters. However, there was a change in this plan (see T190714#4481748); replaced by the idea of creating and improving tutorials for the OOUI JavaScript library. Learn more here: https://www.mediawiki.org/wiki/Google_Summer_of_Code/Past_projects#OOUI_Tutorial_Migration. With that, marking this task as resolved!