Hagar Shilo
Hagar Shilo
Hagar Shilo
Google Summer of Code, 2018, Wikimedia Foundation

About me

I am a Freelance Web Developer and a Linguistics MA student at Tel Aviv University, Israel. I am very happy for the opportunity to take part in an open source project for the first time. Here are some of my personal web projects.

My work

Disclaimer: I work for the Wikimedia Foundation, and this is the account I intend to use for edits or statements I make in that role. However, the Foundation does not vet all my activity, so edits, statements, or other contributions made by this account may not reflect the views of the Foundation.

GSoC 2018 Project: Implement 'Category' filters and filter menu in the new UI[edit]

  • The Phabricator task for this project is here.
  • My proposal can be found here.
  • Mentors: Moriel Schottlender, Roan Kattouw.


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.


Timeline Task Work Done Blog Status
Week 1 (Due May 7th, 2018) Community Bonding period

Joined Zulip, introduced myself to the community through the mailing list, started a blog. I attend online team meetings and online mentoring sessions twice a week. I started learning new technologies for the project, such as OOUI, and I am getting to know the existing codebase with guidance from my mentors.

First blogpost

Yes Done

Week 2 (Due May 21st, 2018) Community Bonding period

After consultation with my mentors, my project was replaced with a different one. The new project is pretty similar to the old one in terms of scope and implementation requirements. I went over its specs and mockups. I've explored the source code some more, mostly reading functions and inline documentation, then I started writing a bit of code and made a test commit to Gerrit.

Second blogpost

Yes Done

Week 3 (Due June 4th, 2018) Coding period
  • First encounter with TDD: added tests for a new feature idea.
  • Stated getting my code reviewed.
  • Updated project proposal (a lot has changed) and revised the schedule.
  • Started implementing a limited version of the new filter
  • Fetched categories from the API and learned about async and promises.
  • Did a tutorial on OOUI, the UI library used in this project.
Third blogpost

Yes Done

Week 4 (Due June 18th, 2018) Coding period

Learned more about processing data fetched from APIs and using promises and their methods. Had pair programming sessions with my mentors. Had some patches merged into the code base:

Fourth blogpost

Yes Done

Week 5 (Due July 2nd, 2018) Coding period
  • Had a few more commits merged.
  • Worked some more on my API project in OOUI, learned how to write more generalized code and learned more about Wikimedia's coding style guidelines, the reasoning behind some conventions, etc.
  • I have a new project coming up: updating Moriel's OOUI tutorial, that currently resides in her blog, and moving it to the OOUI docs repo. I reviewed the tutorial and started up a Google Doc with initial ideas and errata, and installed the work environment required for editing the OOUI docs.
Fifth blogpost

Yes Done

Week 6 (Due July 16th, 2018) Coding period
  • Worked on bugs in Thanks confirmation text and animation
  • Renewed OOUI tutorial (part 1) and prepared it for migration to OOUI official Docs and Demos. This task involved the following sub-tasks: setting up PrismJS for syntax highlighting, updating the ToDo app code to comply with the current state of OOUI's core stylesheet, updating the installation instructions, designing and implementing demo app boxes, and ensuring coherence and cohesion of the entire text. This stage of the work in now in review, as I proceed to the next step as discussed with my mentor.
Sixth blogpost

Yes Done

Week 7 (Due July 30th, 2018) Coding period
  • Modified folder structure
  • Revamped Basics2 tutorial
  • Made a page footer with links and a back to top button
  • Created an index page with links both tutorials
  • Fixed some problems in Basics2 tutorial, such as date/time display.
Seventh blogpost

Yes Done

Week 8 (Due August 13th, 2018) Coding period
  • Code cleanup: following feedback from community and staff members, I made some modifications and improvements to the HTML and CSS, making them more tidy and readable
  • Tied up some loose ends with links, buttons and icons
  • Made page footer responsive.
  • Tested the final tutorial apps for appearance and functionality
Eighth blogpost Final report

Yes Done