Profile Information
Name: Nimish Medatwal
IRC nickname on libera.chat IRC: nimishmedatwal
Web Profile: Phabricator, Github
Resume
Location (country or state): India
Typical working hours (include your timezone) : weekdays: 10:00 AM IST to 7:30 PM IST; weekends: 11:00 AM IST to 7:30 PM IST Saturday
Synopsis
- PageTriage is a tool on Wikipedia to manage new pages.
- It helps patrollers track, categorize, and handle problematic new pages.
- One of its features is the New pages feed, built with VueJS, allowing patrollers to filter interesting pages based on criteria.
- Community members have shown interest in improving the filters and search capabilities of the New pages feed.
- Proposed enhancements include:
- Introducing AI-based topic prediction using the ORES API.
- Adding keyword search functionality within articles.
- Implementing filters based on the number of pageviews an article receives.
- Enabling search for similar deleted pages.
- Possible Mentor(s) : @Soda, @TheresNoTime
Microtask
Create a small independent tool/web app that interacts with any Wikimedia API and displays some information about a article. The tool must have a frontend built using VueJS and the Wikimedia Codex UI library. Include a link to the source code in your proposal
Github Link : Source Code
Demo Link : Demo Video
- Setup the PageTriage extension (using these draft instructions) along with MediaWiki-Docker.
PageTriage setup has successfully completed
Proposed Solution
Here's how I would attempt to solve each of the task:
T218132 Add ORES topic prediction to the NewPagesFeed
Update ORES API Integration:
- Modify Existing ORES API Integration:
- Review the current implementation of ORES API integration within PageTriage to understand its structure and endpoints.
- Integrate the articletopic endpoint into the existing codebase to enable fetching predictions for article topics from ORES.
- Send Requests for articletopic Predictions:
- Adjust the request parameters to include the necessary data for articletopic predictions.
- Ensure that PageTriage can effectively communicate with the ORES API to retrieve articletopic predictions for new articles.
Modify Filters Menu:
- Update Special:NewPagesFeed Filters:
- Identify the components responsible for rendering the filters menu on the Special:NewPagesFeed page.
- Integrate a new option for filtering by article topics into the existing filter menu structure.
- Integrate articletopic Predictions:
- Modify the backend logic to fetch articletopic predictions for articles based on the selected filter options.
- Display the articletopic predictions alongside other filter criteria, allowing users to refine their feed based on specific topics of interest.
Update Page Curation Toolbar:
- Modify "Page Info" Flyout:
- Locate the relevant components that control the display of information within the "Page Info" flyout in the Page Curation toolbar.
- Update the flyout to include the predicted article topic as part of the information displayed for each article.
- Include Option for Viewing Predicted Topic:
- Implement an interactive feature within the Page Curation interface that allows users to view the predicted topic directly.
- Ensure that users can easily access the predicted topic information without disrupting their workflow.
T207238 Special:NewPageFeed - add option to filter by pageviews
- Update Data Retrieval:
- Modify the backend code responsible for fetching data for the NewPageFeed to include information about pageviews.
- Retrieve pageview data either from an external service or from internal metrics tracking within the Wikimedia ecosystem.
- Calculate Public Interest Score:
- Develop a formula or algorithm to calculate a public interest score based on pageviews and possibly other factors such as the number of editors.
- The formula could be as simple as multiplying pageviews by the number of editors or more complex based on community-defined criteria.
- Integrate Filter Option:
- Update the frontend interface of Special:NewPageFeed to include an option to filter by the newly calculated public interest score.
- Add a dropdown menu or input field where users can specify a range or threshold for the public interest score they want to filter by.
- Backend Filtering:
- Implement backend logic to filter the content displayed in Special:NewPageFeed based on the selected public interest score range.
- Ensure that the filtering process efficiently handles large datasets and accurately identifies articles that meet the specified criteria.
- Testing and Validation
T207761 Keyword Search for New Pages Feed
- Update User Interface:
- Add a new field in the "That" section of the search filters in the New Pages Feed interface.
- Position this field as the last option in the list.
- Label the field as "Has the following keyword(s)" to indicate its purpose to users.
- Backend Integration:
- Modify the backend code to include functionality for keyword search.
- Implement a search mechanism that checks for the presence of the entered keyword(s) in the article text.
- Search Query Handling:
- Extract the keyword(s) entered by the user from the search field.
- Construct a search query that includes conditions to match articles containing the specified keyword(s) in their text.
- Filtering Search Results:
- Retrieve the list of new pages from the database based on the existing search filters.
- Apply additional filtering to the retrieved list to include only those articles that match the keyword(s) entered by the user.
- Display Filtered Results:
- Update the frontend interface to display the filtered list of articles in the New Pages Feed.
- Ensure that only articles containing the specified keyword(s) are shown to the user.
T327955 See and filter with percent similarity to top deleted revision
- API for Retrieving Top Deleted Revision:
- Develop an API endpoint that allows PageTriage to pull the top deleted revision of an article.
- Ensure that this API endpoint is efficient and only calculates the similarity when needed to avoid unnecessary resource consumption.
- Comparison Algorithm:
- Implement an algorithm to compare the top deleted revision with the current top revision of an article.
- Calculate the percent similarity between the two revisions based on their Wikicode content.
- Consider using text similarity algorithms such as Levenshtein distance or cosine similarity.
- Detection of Previous AFD:
- Extend the existing detection mechanism in PageTriage to identify if an article has undergone a previous Articles for Deletion (AFD) process.
- Check for the existence of an AFD page associated with the article to determine its deletion history.
- Frontend Integration:
- Update the frontend interface of PageTriage to display the percent similarity to the top deleted revision for each article.
- Decide whether to include a button for manually triggering the calculation or to automatically calculate it when visiting the article.
- Filtering Option:
- Add a filtering option in the PageTriage interface to allow users to filter articles based on their percent similarity to the top deleted revision.
- Ensure that the filtering mechanism accurately identifies articles that meet the specified similarity threshold.
- Integration with Metadata:
- Consider adding the percent similarity information as a metadata tag (e.g., pagetriage_page_tag) for each article.
- This metadata can be used for further analysis and reporting purposes.
Deliverables
Describe the timeline of your work with deadlines and milestones, broken down week by week. Make sure to include time you are planning to allocate for investigation, coding, deploying, testing and documentation
Date | Tasks |
---|---|
Community Bonding Period | - Review project requirements and goals with mentors. - Discuss implementation details and clarify uncertainties with mentors. |
May 27 - June 10 | - [T218132] Add ORES topic prediction to the NewPagesFeed: - Research and analyze the integration process of ORES topic prediction. - Begin development work to integrate articletopic into PageTriage. - [T207238] Special:NewPageFeed - add option to filter by pageviews: - Start implementing the functionality to sort the NewPageFeed by pageviews. |
June 11 - June 24 | - [T218132] Add ORES topic prediction to the NewPagesFeed: - Continue development work on integrating article topic into PageTriage. - Conduct initial testing to ensure functionality and identify any issues. - [T207238] Special:NewPageFeed - add option to filter by pageviews: - Complete implementation of sorting by pageview count. - Test the functionality and ensure it aligns with requirements. |
June 25 - July 8 | - [T218132] Add ORES topic prediction to the NewPagesFeed: - Refine integration of articletopic into PageTriage based on feedback. - Perform additional testing and bug fixes. |
July 8 - July 12 | - Mid-Term Evaluation: - Review progress on all tasks and assess any necessary adjustments. - Gather feedback from mentors and make any required refinements. |
July 13 - July 27 | - [T207238] Keyword Search for New Pages Feed: - Begin development work on implementing keyword search functionality. - Design the new field for keyword input in the search filters. - [T327955] See percent similarity to top deleted revision: - Research and plan the development of the API for comparing revisions. - Determine the best approach for detecting previous AFDs and integrating this detection into PageTriage. |
July 28 - August 11 | - [T207238] Keyword Search for New Pages Feed: - Continue development work on keyword search implementation. - Integrate the new field into the search filters and test functionality. - [T327955] See percent similarity to top deleted revision: - Begin developing the API for comparing revisions. - Implement the necessary frontend components for users to interact with the comparison feature. |
August 12 - August 26 | - [T207238] Keyword Search for New Pages Feed: - Conduct thorough testing of keyword search functionality. - Address any issues or bugs identified during testing. - [T327955] See percent similarity to top deleted revision: - Finalize development of the revision comparison feature. |
August 26 | - Complete final testing and bug fixes for all implemented features. - Prepare documentation and release notes for stakeholders. - Officially deploy the updated PageTriage tool with enhanced filtering and search capabilities. |
Participation
- I will be online on IRC in my working hours ( 1:00 pm to 9:00 pm UTC 5:30) to collaborate with the mentors.
- I will use Phabricator for managing bugs and subtasks.
- I will be available in gmail to be contacted when needed in the non-working hours.
About Me
Tell us about a few:
- Your education (completed or in progress) :
I am currently in 6th Semester pursuing B.E in Computer Sciences from Thapar University, Patiala.
- How did you hear about this program?
I'm always interested in expanding my coding skills and contributing to open source projects. GSoC seemed like a perfect fit, offering a chance to work on a challenging project with a supportive community. It's a great way to learn new technologies, collaborate with developers around the world, and make a real impact on an open source project that I'm passionate about.
- Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
I am committed to dedicating 30 to 40 hours per week to the project, spanning from May 28th to August 19th, totaling approximately 350 hours. After my end-semester exams ending on May 27th, 2024, I will be fully available to focus solely on my work with WikiMedia, ensuring uninterrupted dedication to the project.
- We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?
Yes, I am applying to both outreachy T357409 and GSOC T357337
Past Experience
- Wikimedia contribution : Hide disabled download box from Special:Book
- Thapar Time Table System: In my sixth semester, our team secured a $30,000 grant from our college to automate the time-table generation process. I took on the role of lead frontend developer for this project.
- I’ve been actively contributing in open source communities like Zulip and Ushahidi for the past year, here are some of my contributions in Zulip:
- Redesign: Change recent conversation icon. #29461(merged)
- Onboarding: Improve placeholder message for dm with yourself #29079 (merged)
- User Profile: Navigate tabs by arrow keys when user profile opens. #28742(merged)
- Help: Add documentation for installation through Flathub. #28556(merged)
- Message Feed: Fix collapsed messages for highlighted texts. #26433 (merged)
- settings(user): Display Setting changed to Preferences. #26110(merged)
- Redesign: Change copy icon. #29455
- Left_sidebar: Rename "All messages" to "Global feed". #27841
- User Profile: Adds focus to subscribe button. #27781
- Search: Add is:followed search filter. #27378
- popovers: Change style of emoji and giphy search bar. #27201
- messages: Fix first unread message being marked as read on reload. #26323