>===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
1. Implement AI-based topic prediction using the ORES API:
- Integrate the ORES API to provide topic predictions for new pages in the PageTriage feed.
- Ensure accurate classification of topics based on content analysis.
- Allow users to filter pages based on predicted topics.
2. Enhance keyword search functionality:
- 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.
- Evaluate and implement feasible ideas to further improve the searchability and filtering options in the PageTriage feed.
6. Documentation and Testing:
- Document the implemented features, including usage instructions and 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 |Familiarize myself with the existing codebase of the PageTriage extension. Review relevant documentation on VueJS and the ORES API.|
| June 03, 2024 - June 10, 2024| Begin implementing the AI-based topic prediction feature using the ORES API. Start designing and implementing the keyword search functionality. |
| June 10, 2024 - June 17, 2024 |Continue working on refining the AI-based topic prediction feature. Enhance the keyword search functionality by integrating it with the existing filter options. |
| June 17, 2024 - June 24, 2024 | Implement the filter by pageviews feature, allowing users to filter articles based on their pageview count. Begin exploring methods to implement the similarity search for deleted pages.|
| June 24, 2024 - July 01, 2024 |Finalize the implementation of the filter by pageviews feature. Continue working on implementing the similarity search for deleted pages.|
| July 01, 2024 - July 08, 2024 |Complete the implementation of the similarity search for deleted pages. Conduct thorough testing and debugging of the added features.|
=====Mid-Evaluation
| Period | Description |
|--------|-------------|
| July 08, 2024 - July 15, 2024 | Address 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 documenting 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 | Conduct 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 | Review 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 | Submit 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 | Participate 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