Page MenuHomePhabricator

[#1Lib1Ref] Build a "worklist" tool for campaigns and in-person editing events.
Closed, ResolvedPublic

Description

In various Wikipedia outreach campaigns and events such as editathons, participants often want to collaborate on improving articles that share a common theme or perhaps exhibit a common problem, such as being too short or lacking sufficient citations.

For example, in the #1Lib1Ref campaign (https://meta.wikimedia.org/wiki/The_Wikipedia_Library/1Lib1Ref), librarians are encouraged to make simple edits to Wikipedia articles through the Citation Hunt tool (http://citationhunt.org), but we’ve observed that participants are also greatly motivated to make more substantial edits in articles about about their own cities, thus would like to be able to define a set of articles (or article sections) which need work.

Many current activities or campaigns will currently manually develop these worklists on-wiki, which can be challenging to manage for new users, or require using tools not designed for tracking completion of limited tasks (for example, the Programs and Events Dashboard which tracks work by whole article or by editor: https://outreachdashboard.wmflabs.org/).

To that end, we would like to develop a new tool to facilitate collaboration on worklists of articles that could be used for campaigns, in person editing events or other similar activities. As a minimal product, users of this tool should be able to:

  • Define new worklists of articles (examples: “Articles with no references”, “Articles about Colombia”, …)
  • Worklists can be imported from PetScan queries (http://petscan.wmflabs.org/)
  • Share worklists with other users using a link
  • Manually list the articles inside a worklist, claim one to work on and mark it completed when done
  • View which articles are claimed by which other users and whether they're being worked on or already done, in real time

If time or energy allows, we may investigate additional features such as:

  • Creating metrics or progress reports for the results of the workflist
  • Drawing lists of articles from other sources, such as CSV files, PagePiles (https://tools.wmflabs.org/pagepile/howto.html), or .txt lists
  • Creating an API or export function designed for exporting information about the list for use in other tools, such as a bot that creates reports on wiki or a metrics tool.

Some knowledge of Javascript is required for the client side. The language choice for the server side is flexible, but Python is strongly encouraged as it has good support on Toolforge (https://tools.wmflabs.org/), where we will be hosting this new tool. Database (MySQL) and Mediawiki API knowledge (https://www.mediawiki.org/wiki/API:Main_page) are desired, but not necessarily a prerequisite.

Mentors:

  • @Surlycyborg (IRC: ggp on Freenode, GitHub: eggpi): primary mentor. UTC+00:00 timezone.
  • @Harej: backup/co-mentor
  • @Sadads: Wikipedia Library/#1Lib1Ref point of contact

Get started

Here's a few things you can do to start preparing:

  • Set up your Toolforge account and get SSH access (https://tools.wmflabs.org/)
  • Learn the basics of git: https://www.atlassian.com/git/tutorials/what-is-version-control and https://try.github.io are good tutorials.
  • Familiarize yourself with PetScan by running a few simple queries. For example, choose a city and try using PetScan to find Wikipedia articles that are related to that city and have fewer than 10 links in them, or that have no edits in the last 3 months.
  • After you've crafted a PetScan query in your browser, try writing some code in any language that downloads the results of that query as JSON or CSV and prints the titles of the articles. Create a git repository on GitHub (https://github.com) or BitBucket (https://bitbucket.org) and push your code there. Hint: you can use a URL like https://petscan.wmflabs.org?format=json&psid=3316252 to get the results of a query with id 3316252.
  • Start thinking about the tool we'll be building and write down some notes for your proposal. What would the tool look like? What steps would a user take to create a new worklist of articles? And to start collaborating with other users in a worklist? What parts of the above description of the tool are unclear to you?

Event Timeline

This comment was removed by Mvolz.

So is the idea for this an on-wiki gadget?

I think that could work, but for some of the features you're mentioning- like the ability for people to claim tasks - it sounds like Education-Program-Dashboard might be a better fit for the feature.

I believe the idea would be to have this as a separate tool, not an on-wiki gadget. I'm not too familiar with gadgets, so please correct me if I'm wrong, but my understanding is that they'd typically be used to augment existing wiki pages, right? The idea here would be to have a tool that, given as input a selection of articles, facilitates collaboration for multiple users editing those articles, so it doesn't seem like a great use case for a gadget.

T111416, however, does seem related. The main difference is that, as I understand it, T111416 focuses on how to build lists of relevant articles for an event (by exploring articles by theme or other signals like ORES score), whereas this tool would receive one such list as input and present it in a convenient way for real-time collaboration at the event itself. I do see how the two could be integrated as a single tool/project though.

@Sadads, who provided the idea and requirements for this tool, might be able to comment some more on the distinctions between this and existing dashboards.

I would like to work on this project. What do you ask?

I've added some more information to the initial post, including the mentors and points of contact and some suggestions for small tasks that applicants can start on before writing their proposal.

@BamLifa thanks for your interest, please have a look above!

@Surlycyborg Thank you. I'll try to do something early. I've nothing to worry about Git & GH.

@BamLifa Very cool, that was fast! I've filed an issue in your repository with a suggestion that I think we'll need (and also updated the original project description to make it more explicit). Let me know if you have questions or problems :)

Hey All,
I am interested in this project for GSoC 2018. I have attempted for the microtask https://github.com/Jain-Aditya/gsoc2018-microtask . It would be great if I could get some suggestions here.

I've left a couple of questions and ideas in an issue in @AdityaJ 's repository to help prepare for the proposal.

@Surlycyborg : I'd like to have some more info, what do you mean by "their status" in

View which articles are claimed by which other users and their status, in real time

Would you mind give us your time zone?

Hey, sure, thanks for asking. I'm in UTC.

I believe "their status" just refers to whether the article has been claimed by a user (and which user), and whether the user is still working on it or he/she is done.

On top of that, we could think about other kinds of statuses too -- for example: the tool could indicate that an article has not been claimed in a long time, making it more visible. If you have any ideas in that direction, please include them in your proposal.

I'll add the info above to the first post too for completeness.

Thank you indeed for this clarification.

I added functional spec on my GH repo. Do have a look, pls.

Nice, thank you! I can take a closer look in the morning :)

It would be nice if the mentors could easily make small edits and comments on drafts like these, but unfortunately GitHub is not great for that. Would you mind maybe moving this to a Google doc so we can leave comments, please? My email address is on my GitHub profile. I guess an Etherpad (https://etherpad.wikimedia.org/) could also work if you don't have/want to use a Google account, but then you wouldn't get notified when we add comments.

Also, please note that there's an application template for GSoC students in the Participants' wiki page (https://www.mediawiki.org/wiki/Google_Summer_of_Code/Participants). I don't know if you planned on evolving this documentation to be your proposal, but if you are, you may want to consider adapting to the template soon. If you're keeping this as a separate document from your proposal, that's totally fine too!

I thing I'm going to move it to Etherpad. This is a separate file, though some elements of it will be found in my proposal that I'll submit tomorrow.

Edit:

I decide to use Framapad because Etherpad from WMF has not enough fonctionnalities. https://semestriel.framapad.org/p/functional-spec-gsoc18

My proposal is here

@BamLifa Awesome, thank you! I've left a few comments in the Framapad. @Sadads you may also want to have a look at that if you get a chance, please.

I'll take a closer look at the proposal itself in a couple of days. I'm also expecting one from another student soon so I'll try to do the first look on both at the same time (unless the other one takes too long).

This message is for students interested in working on this project for Google-Summer-of-Code (2018)

  • Student application deadline is March 27 16:00 UTC.
  • If you have questions about eligibility, please read the GSoC rules thoroughly here https://summerofcode.withgoogle.com/rules/. Wikimedia will not be responsible for verifying your eligibility and also not be able to make any decisions on this. For any clarifying questions, please email gsoc-support@google.com
  • Ensure that by now you have already discussed your implementation approach with your mentors, completed a few bugs/microtasks and made a plan to move forward with the proposal
  • I encourage you to start creating your proposals on Phabricator now to receive timely feedback on them from mentors. Do not wait until the last minute. Give your mentors at least a week's time to review your proposal, so that you could then incorporate any suggestions for changes. Learn how to submit a proposal in our participant's guide: https://www.mediawiki.org/wiki/Google_Summer_of_Code/Participants (Step 9)
  • Proposals that contain links to successfully merged patches before the application period and submitted on both Phabricator and GSoC portal will only be considered for the review process. So, between now and the application deadline, you could consider working on this task.
  • If you would like to chat with me more about the process or have questions, come and talk to me in the Zulip chat: https://wikimedia.zulipchat.com/

Hi,
I am Megha Sharma, a final year undergraduate student studying Computer Science in PEC University of Technology, India.
I'm interested in this project and want to contribute in it. I know I am very late but I just finished my Outreachy Round 15 internship with Wikimedia. As my project was challenging and big, so it got a bit extended.
But since I did my Outreachy internship with Wikimedia only, I am quite well versed with Toolforge, MediaWiki APIs, OAuth, Database and Git. So, I can quickly get started.
To know my previous projects and skillset, please go through my resume. Briefly, I am well versed with python, Django, HTML/CSS, Javascript and React.
Also, this is the link of the tool (which is in its final stages) and, this for the git repository for the work that I did for Wikimedia in Outreachy Round-15.

Coming to this project, I have gone through all the details and I'll be submitting a proposal draft and the microtask by tomorrow.
Thanks.

Hi @Meghasharma213 -- great to hear you're interested! I'm definitely planning on being extra-available for feedback and finishing touches on proposals over the next few days, so it might actually not be a big deal that you're late: we'll just iterate faster :) Just let us know when you have something and we'll take a look!

Hi @Surlycyborg ,
I've made my project proposal , containing timeline, detailed solution to the problem and the database schema for my solution .
Link to proposal : Project Proposal
Your reviews on this would be very helpful.
Thanks :).

@Surlycyborg I've completed the microtask , updated the Database Schema and proposal according to the inputs given by you. Please review.

Quick reminder to students applying for this: it seems you're required to submit your proposal both as a Phabricator task and a PDF to Google, as per step 9 in https://www.mediawiki.org/wiki/Google_Summer_of_Code/Participants.

I actually hadn't realized this until a few hours ago, but Google sent an email to mentors stating "Students without Final PDF proposals cannot be accepted, and there will be no exceptions.", so I thought I'd point it out explicitly so nobody is left out!

@Surlycyborg @srishakatux draft proposal is a phabricator ticket or our propostal in pdf ?

The Phabricator task will be considered the draft and the PDF file uploaded to Google is the final proposal, but they should really just look the same.

We've accepted @Meghasharma213 for this project. Congratulations!

Thank you all for your submissions. I can guarantee you it was a difficult choice to make as the proposals were all very promising. @davidgacc @AdityaJ I really hope you'll apply again next year!

Thank you so much for this opportunity! I'm very excited to work on this tool :).

Now that GSoC 2018 is over, what's the status of this task? :)

Link to the tool: https://tools.wmflabs.org/worklist-tool .

We're still working to make this an actual MVP and I believe Megha will continue to maintain the tool as a volunteer, but from our last conversation with @Astinson it seems like we're moving in the right direction. The code is at https://github.com/MeghaSharma21/WorklistTool-GSoC-2018 .

Since we're thinking of tracking future work using GitHub issues and GSoC is over, I'd say we can call this task fixed?

@Surlycyborg If there isn't anything remaining in this task from GSoC'18, then mark it as resolved! Same goes for T190555

Hi everyone! I was wondering if this tool is now named differently? I went to the link (https://tools.wmflabs.org/worklist-tool) and it seems dead