>===Profile Information (Still Being updated)
Name: Destiny Obamwonyi
Github: [obamwonyi](https://github.com/obamwonyi)
Phabricator: [destiny](https://phabricator.wikimedia.org/p/Destiny/)
Gerrit: [obamwonyi](https://gerrit.wikimedia.org/r/q/owner:developer.oduwa%2540gmail.com)
Location: Lagos, Nigeria
Time Zone: WAT(UTC+1)
Working hours: 4:00 AM to 10:00 AM and 4:00 PM to 10:00 PM
>===Synopsis
[PageTriage](https://www.mediawiki.org/wiki/Extension:PageTriage), a MediaWiki extension tailored for English Wikipedia patrollers, streamlines the management of new pages. Equipped with a Vue. js-powered New Pages Feed, it facilitates targeted patrolling through filtering options. The community seeks to augment filter functionality and search capabilities to further optimize page management.
**Possible Mentor(s)**
@Soda , @TheresNoTime
**Have you contacted your mentors already?**
Yes.
>===Deliverables
- Fix the task [T356697](https://phabricator.wikimedia.org/T356697),1. and make sure the "Show All" is checked by default.Implement AI-based topic prediction using the ORES API:
- Fix the task [T353655](https://phabricator.wikimedia.org/T353655), and make sure the "no cita- Integrate the ORES API to provide topic predictions" chip is added to active filters for new pages in the PageTriage feed.
- Fix the task [T355094](https://phabricator.wikimedia.org/T355094), and make sure the date range section from and to input in the Set Filters drop-down for New Page Patrol tab matches that of Articles For Creation tab- Ensure accurate classification of topics based on content analysis.
- Fix the task [T355032](https://phabricator.wikimedia.org/T355032), and make sure is clickable- Allow users to filter pages based on predicted topics.
- Fix the task [T353437](https://phabricator.wikimedia.org/T353437),2. and make sure to remove unnecessary line break between top and template.Enhance keyword search functionality:
- Fix the task [T330730](https://phabricator.wikimedia.org/T330730), - Develop a search feature allowing users to search for specific keywords within articles in the New pages feed.
- Implement efficient search algorithms to handle large volumes of page data.
3. Introduce filtering by pageviews:
- Enable filtering options to sort pages based on the number of pageviews they receive.
- Implement intuitive UI controls for users to specify pageview thresholds.
4. Implement similarity search for deleted pages:
- Develop a feature to compare new pages with deleted pages to identify similarities.
- Utilize appropriate algorithms to calculate similarity scores and prioritize relevant matches.
5. Additional filters and improvements:
- Consider community feedback and suggestions for additional filters and search enhancements.
Fix- Evaluate and implement feasible ideas to further improve the task T330730,searchability and filtering options in the PageTriage feed.
6. make sure AFD actually prints a wikilink.
- In shortDocumentation and Testing:
- Document the implemented features, I will continue to work on other tasks duringincluding usage instructions and after the GSoC program.technical details.
- Conduct thorough testing to ensure the reliability and accuracy of the search and filtering functionalities.
> ===Timeline
=====Community Period
| Period | Description |
|--------|-------------|
| May 02, 2024 - May 27, 2024 | 1. Connect with mentors to gain insights into the community and familiarize myself with the codebase. 2. Engage in discussions to brainstorm potential solutions and enhancements for the extension's issues. 3. Dive into understanding the architecture and pinpoint relevant sections of the codebase related to the identified issues. |
=====Coding Period
| Period | Description |
|--------|-------------|
| May 27, 2024 - June 03, 2024 |Fixamiliarize myself with the task T356697,existing codebase of the PageTriage extension. and make sure the "Show All" is checked by default. Review relevant documentation on VueJS and the ORES API.|
| June 03, 2024 - June 10, 2024 |Fix the task T353655,| Begin implementing the AI-based topic prediction feature using the ORES API. and make sure the "no citations" chip is added to active filtersStart designing and implementing the keyword search functionality. |
| June 10, 2024 - June 17, 2024 |FixContinue working on refining the task T355094,AI-based topic prediction feature. and make sure the date range section from and to input in the Set Filters drop-down for New Page Patrol tab matches that of Articles For Creation tabEnhance the keyword search functionality by integrating it with the existing filter options. |
| June 17, 2024 - June 24, 2024 | Fix the task T355032,Implement the filter by pageviews feature, allowing users to filter articles based on their pageview count. and make sure is clickableBegin exploring methods to implement the similarity search for deleted pages.|
| June 24, 2024 - July 01, 2024 |Fixnalize the implementation of the task T353437,filter by pageviews feature. and make sure to remove unnecessary line break between top and template. Continue working on implementing the similarity search for deleted pages.|
| July 01, 2024 - July 08, 2024 | FixComplete the implementation of the task T330730,similarity search for deleted pages. make sure AFD actually prints a wikilink. Conduct thorough testing and debugging of the added features.|
=====Mid-Evaluation
| Period | Description |
|--------|-------------|
| July 08, 2024 - July 15, 2024 | Continue working on other taskAddress any feedback received during the mid-evaluation. Begin documenting the newly added features and any necessary code optimizations.|
| July 15, 2024 - July 22, 2024 | Continue working on other tasksdocumenting the project progress and improvements made. Start preparing for the final evaluation by ensuring all project goals are met.|
| July 22, 2024 - July 29, 2024 | Continue working on other taskduct final testing and bug fixes to ensure the stability of the PageTriage extension. Prepare comprehensive documentation and user guides for the added features.|
| July 29, 2024 - August 05, 2024 | Continue working on other tasksReview the project timeline and ensure all deliverables are completed. Finalize the project presentation and any necessary demos for the final evaluation.|
| August 05, 2024 - August 12, 2024 | Continue working on other taskSubmit the final project report summarizing the work done, challenges faced, and lessons learned. Prepare for the final evaluation presentation, highlighting the project achievements.|
| August 12, 2024 - August 19, 2024 | Continue working on other taskParticipate in the final evaluation and present the completed project to mentors and community members. Engage in discussions and gather feedback for future improvements.|
>===Participation
- Zulip: I am very familiar with Zulip and have already engaged in conversation with my possible mentors using this platform.
- Discord: There is also a discord for the PageTriage project where I can interact with my mentors.
- Phabricator: In terms of tasks I can view and manage tasks with Phabricator.
- Gerrit: Gerrit also provides a response functionality where I can be given feedback on whatever patch or commit I make.
> ===About Me
>
**Education**
University: [University Of Benin](https://www.uniben.edu/) (UNIBEN)
Year of Study: 4th year (Currently in my Internship period so I am very free to work on tasks).
Field of Study: Computer Engineering.
**Skills**
- Frontend: HTML, CSS, Javascript, Vuejs, Codex, Bootstrap5.
- Backend: PHP, Python, Laravel, Django.
- Others: C/C++, SQL, and Docker.
**How did you hear about this program?**
YouTube: I heard about GSoC from YouTube about two years ago, and I have been very fond of it ever since.
**Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the program?**
Tuesdays: I am currently on internship (industrial training), I am only supposed to be present on Tuesdays other than that I don't have any other commitments.
**What does making this project happen mean to you?**
It means a lot to me, to be able to work on a large code base, for a popular organization like Media Wiki, alongside well-experienced software engineers like @Soda and @TheresNoTime, using my favorite tools like Javascript, PHP, and Vuejs, would be a dream come true, as I stand a chance to get the various benefit,
- More Industry experience
- Networking with more experienced software engineers/developers
- Making friends
- Lastly, the stipend, would help in starting a life on my own when I graduate.
> ===Past Experience
>
====Contributions to Wikimedia
**PageTriage Extension**
| Title | Link | Status |
|Styling of AFC date picker and NPP date picker has diverged|[T355094](https://gerrit.wikimedia.org/r/c/mediawiki/extensions/PageTriage/+/1012027)| Under Review |
**Cargo Extension**
| Title | Link | Status |
|Cargo adds unnecessary JS config vars to all pages| [T353094](https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Cargo/+/1009563)| Reviewed(not merged) |
**Pre-Application Requirement**
- Built a Vuejs frontend project using [Wikimedia Codex UI library](https://doc.wikimedia.org/codex/main/) and [Wikimedia API](https://www.mediawiki.org/wiki/API:Main_page), code available on [github/obamwonyi/media_wiki_T357337](https://github.com/obamwonyi/media_wiki_T357337)
>===Working Experience
**[LucrativeTech/Luta](https://lutahq.com/), Nigeria (Remote) — Full Stack Developer, NOVEMBER 2022 - MAY 2023**
- Spearheaded the development of a robust API powering a dynamic mobile trading application, leveraging the prowess of PHP, Laravel, and MySQL for seamless user experiences.
- Orchestrated the creation of a cutting-edge Full Stack web application, employing Vue.js, Laravel, and Mysql, demonstrating exceptional proficiency and collaborative prowess alongside a Senior Developer.
- Pioneered the construction of a vital API for a mobile application, streamlining the management of associations with precision and ingenuity.
>===Other Open source I have contributed to
- [Djoser](https://djoser.readthedocs.io/en/latest/getting_started.html): I contributed to the Djoser documentation, it was using the old method (url()) for declaring url for Django views so I updated the documentation to use the path() function which is the recent and more common one. [contribution](https://github.com/sunscrapers/djoser/pull/793)
===Any Other Info