Page MenuHomePhabricator

Proposal : Build an Article Finder tool for program leaders and participants to find good topics to work on. (GSOC 2018)
Closed, DeclinedPublic

Description

Profile Information

Name: Amit A Joki
Email: amitjoki@hotmail.com | amitjoki@gmail.com
IRC: amitjoki
Github: AmitJoki
StackOverflow: Amit Joki
Location: Madurai, Tamil Nadu, India.
Typical working hours: Up to mid-May - 6.30 PM to 12.30 AM in the UTC +5:30 on weekdays, 9 AM to 5 PM on Sundays (and on Saturdays if it is an holiday).
After mid-May, I'll be having summer vacation for two months and I would work from 9 AM to 5 PM in the UTC +5:30. If need be, I could change my working time to be in accordance with my mentors timezone.

Synopsis

  • Wiki Education Dashboard is an excellent tool for students to learn about the ways of how Wikipedia works and also helps them to learn collaboratively. This project would implement a full-fledged Article Finder Tool for instructors/students using ORES (Objective Revision Evaluation Service) scores and progressive Machine Learning. It will give them a pragmatic user interface and would strive to give the students the articles they'd be truly willing to work on.
  • I have been in touch with core collaborators and have been corresponding on Slack, Zulip, and through GitHub comments and occassionally by Mail. The suggestions given by them have been helpful for getting my PRs done.
  • Mentors : @Ragesoss, @Capt_Swing

Final Summary

  • A full-fledged Article Finder tool with a pragmatic UI will be integrated into the Available Articles section.
  • It will make the maximum use of the available tools to bring in the articles that are worth editing.
  • The project will implement what resembles a mailing list for categories and articles under it.
  • Students shall be able to recommend the articles for editing using the same Article Finder tool. The decision to assign the said article however will still rest with the Instructor.

Timeline

PeriodTask
April 23 to May 14Community Bonding Period. Get familiar with the working of Phabricator. Learn more about the Wikipedia API, working of ORES API, go through Article Coverage Reports. Analysing the working of Suggest Bot. Interacting and acclimatising with the current API used to find articles. Getting more familiar with talk pages and templates and APIs of Suggest Bots and Wikipedia Teahouse
May 14 to May 21Designing UI mockups. The Current UI isn't easy on the eyes. A new streamlined UI has to be built. Implement a generic sorting function to sort by fields (existing function in the model_utils.js could be used for this). Build React Components for the same.
May 21 to May 28Integrate Article Finder into Available Articles. Test the React Components with the static data. Fine tune how the data is passed around within the components.
May 28 to June 10Design a feature - Saved Categories to save frequently used categories and the parameters associated with them. When the Article Finder is fired up, the recent articles in these saved categories will be loaded asynchronously as per the configurations by default so they're presented with data that matters upfront.
June 11 to June 15Phase I Evaluation
June 15 to June 22Integrate ArticleViewer component within Article Finder. Since there's already an ArticleViewer component in place, use it to preview the articles suggested by the Article Finder. so instructors can have a glance of the article without leaving the site.
June 22 to June 29Add a feature - ArticleFinderAlert. This alert will be implemented as a worker and if any new articles, under Saved Categories satisfy the particular Category's minimum requirements setup by the instructor, it sends an Alert to the instructor with the links to the articles.
June 29 to July 4Add a feature - Similar Articles. This will make use of SuggestBot's {{User:SuggestBot/suggest Source}} where, Source can be an article or categories or a mix of both. A UI for the same is designed. Also try to incorporate WikiProjects:Worklists via SuggestBot.
July 4 to July 9Testing and Documentation. Test out newly added features. Add documentation as to what each feature does.
July 9 to July 13Phase II Evaluation
July 13 to July 20Redesign Categories Textbox to include Autocomplete. The results of the autocomplete will be based ordered by an algorithm that will make sure that the categories which have the better chances of returning articles worth editing, will come first.
July 20 to July 27For courses where only instructors are able to assign articles, make the Article Finder Tool available to the students and they can make their Editing Wishlist. They can select the articles they wish to edit, add it to their "Wishlist" and it will send an alert to the instructor of the same. To assign them the article or not is the instructor's prerogative.
July 27 to August 3Design a view - Recommend Articles for Editing based on the Article Votes, Saved Categories. Make use of suggested articles provided by {{User:SuggestBot/suggest}} to assign articles to students based on their edit history.
August 3 to August 14Bug fixes. Test the newly added features. Add i18n documentations. Clean up the code for submission.
August 14 to August 21Mentors submit the code for final evaluation.
August 22Result of GSoC 18 announced.

Ideas worth implementing in future

Article Voting

  • In future, I propose that we could have +1/-1 buttons when Articles are previewed with Article Finder. This will allow the instructor to mark articles as "Looks Good!" or "Trash". Using the votes of a particular instructor, we can develop AI using machine learning that will know the preferences of an instructor and will extract the parameters from the +1'ed articles and use it to load similar articles.
  • Moreover, the votes from various instructors can be aggregated to see, on the whole, articles that are worth editing and the ones that are not so.

Deliverables

  • A revamped UI for Article Finder
  • React-ifed components
  • Sorting based on fields.
  • Saved Categories feature.

Phase I Evaluation

  • Article Finder Alert
  • Article Finder Preview
  • Similar Articles feature.

Phase II Evaluation

  • Autocomplete for Categories with smart ordering.
  • Article Wishlist for students to give a hint of articles they'd like to work on to their instructor.
  • Recommended Articles For Editing feature.

Final Evaluation

Participation

  • Following the contribution guidelines, creating new branches on Git, adding the features to the forked repo and issuing a pull request once done with the feature.
  • Online on Slack, IRC in my working hours.
  • Updating the progress on Phabricator
  • Update the progress after the completion of task each week on my blog

About Me

Education:

I am in my first year of my college. I am a Computer Science student currently undergoing 2nd semester in my 8-semester course.

Where did you hear about GSoC?

I heard about GSoC from my senior who was a GSoC 17 Student with Haiku organisation. Once I knew about GSoC, I went through all the previous year organisations which had their 2018 Project Ideas well before February 12. I found Wikimedia this way. I had been a long time FOSS user, raising issues occasionally but always had the guilt of not contributing via code. I wanted to give back to the FOSS community by contributing substantially and what better way to start than with the parent organisation of Wikipedia?

What other commitments do you have during the course of this program?

I don't have any other commitments in the foreseeable future. The college works usually take an hour or so and I can easily manage that. Even that will be gone when the summer vacation starts; my only priority this summer would be to work on this project, have it completed and tested thoroughly.

What will working on this project mean to you?

Working on this project will mean a lot to me in terms of personal satisfaction. There's pride in knowing that my code will be part of something as amazing as WMF. On technical fronts, working on this project will acclimatise me on the way real-time applications are built, tested and deployed. Also, working on this project where every commit to the master branch will be deployed real-time will give me the confidence to continue working on other FOSS projects in the future.

Past Experience

I have been working on a personal project with Ruby on Rails. I have a gold badge in Stack Overflow in the tag JavaScript. I am active on Stack Overflow and have a decent reputation. I have some 2000+ answers on Stack Overflow over the years and I thought then that I was in some way helping the Open Source community which is false equivalency as I have now come to know. Since I met the minimum age requirement this year, I am applying for the GSoC in the hope of adding "Contributed in a small way to WMF" to the list of my past experiences, in the future.

Microtasks:

The below are the merged pull requests.

Small fixes:

Performance related:

Enhancements:

These pull requests are yet to be merged: