==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 User filter’s purpose is to display to a reviewer the edits made by a particular user, or by several users at once. It will be added to the main filter panel. Desired features include several user search options, as specified in the timeline, as well as in the Phabricator task this proposal is based on (https://phabricator.wikimedia.org/T167224). The existing task includes UI mockups.
Mentors: @Mooeypoo, @Catrope
=Timeline=
| Period | Task |
|--|--|
| April 23 - May 11 | Community bonding period. Get to know the mentors, read API documentation for fetching user info, get to know the organization’s work methods, version control tools, coding style guidelines, etc. Add and structure sub-tasks in Phabricator and install developer environment. Request access to necessary tools. Create additional UI Mockups if needed. |
| May 14 - June 8 | Get to know the code of the existing filter box. User filter with basic functionality (Backend): Build the supporting structure in the backend (queries to fetch user or users in RecentChanges lists) |
| June 11 - June 15 | Mentors and students submit Phase 1 evaluations |
| June 11 - July 13 | User filter with basic functionality (Frontend): Build the UI elements for the filter box. |
| July 9 - July 13 | Mentors and students submit Phase 2 evaluations |
| July 16 - July 27 | Develop additional features, if time permits. Ideally, the User Search functions will include the following:,The menu’s ability to gradually replace pre-populated usernames with usernames the user actually searched for, listing them alphabetically. The selection of multiple users 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 13 | QA and bugfixes. Write documentation. Code cleanup for submission. |
| August 14 - August 21 | Mentors submit final student evaluations. |
| August 22 | Final results of Google Summer of Code 2017 announced |
|--|--|
=Deliverables=
MVP for the User filter in RecentChanges Filters:
The ability to provide the reviewer with available users as they type in the filter box
The ability to filter the results by chosen usernames in RecentChanges
If time permits, extra features beyond the MVP:
- Store most recently used usernames for the user as an initial list
- Create a "Guided Tour" introducing the feature
Weekly progress reports
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
Do to a weekly video chat with mentor
=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/