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?