This is a task for building one of the modules in the newcomer homepage: the impact module.
Main audience: Newcomers who may be motivated to edit by seeing the impact of their contributions.
Primary targeted persona(s): Jae-Hee (Social Changer); Yankov (Knowledge Sharer)
Secondary persona(s): Josef (Reactive Corrector); Mina (Box Checker)
Invision mockups: https://wikimedia.invisionapp.com/share/KUQV2QDJ8A7#/350926581_NH-Impact_Module (in places where the mockups and the specifications on this task disagree, the specifications take precedent.)
Summary: This module contains a list of pages that the newcomer edited, along with the pageviews those pages have had. We are using pageviews as our best proxy for "impact". There are many rules we could apply for how exactly to calculate the pageviews, and there are many things we could consider around how responsible the newcomer is for the pageviews (for instance, adding a comma is a lot less impactful than writing the entire page). But to keep things simple, the main objective here is to indicate to newcomers that they have impact, as opposed to communicating with exact precision what their impact is. We also want the module's numbers to change dynamically over time so that it is interesting for users to revisit the module day after day.
We can refine business rules later on. The module has an "activated state" for newcomers who have edits in the article space and an "unactivated state", meant to communicate to users who do not yet have edits in the article space that they should make some edits so they can see their impact. The module links out to the Pageviews Analysis tool. When we test this module, we will want to be able to see how it will look for arbitrary real users from multiple wikis. This will help us calibrate the rules around pageview display.
The specifications below are detailed. If anything about these specifications is not performant, we can discuss how to alter them.
Activated state: when a user has one or more edits to the article namespace
- Copy and links
- The title of the module should read "Your impact". The team is still discussing this title.
- The subtitle should read, "People are viewing the articles you edited! Views since you edited (last 60 days):"
- The bottom of the module should have a link that reads, "You've made X edits (see all)". "X" should be the total number of edits the user has made in any namespace, and should be bold. The whole phrase should link to the user's Contributions page.
- Choosing pages and calculating pageviews
- Definition: "edits" counts any edit, no matter the size, whether it was reverted, or whether it was a revert. We are only counting edits to the article namespace, namespace 0. The talk namespace does not count.
- Definition: "pageviews" is the number of pageviews since (inclusive) the first day that the user edited the page. If the user has edited the page multiple times, the first time they edited it is when the counting begins. Pageviews should include the day the user first edited. Although this includes many of the user's own pageviews, we think they will be able to understand that. This means the user will start seeing some data the day after they make an edit. For pages that the user first edited on the same day they are viewing this module, there will be "null" pageviews, since data will not yet be available.
- Among the set of 10 most recent pages that the user has edited, choose the 5 pages that have the most pageviews since the user first edited them (or in the last 60 days, if their first edit was more than 60 days ago -- because of constraints of the API). If a user has edited a page multiple times, their most recent edit of that page is what is counted for deciding whether it is part of the 10 most recent pages. For this sort, "null' sorts below 0 pageviews. If the user has edited fewer than 5 pages, show them all.
- Display those 5 pages in descending order of pageviews.
- Listing pages
- Thumbnail of the article's lead image (with image placeholder icon if no image is available)
- Tooltip should read, "Go to article"
- Article title
- Tooltip should read, "Go to article"
- Number of pageviews since the user first edited the article. This should show the full number, as opposed to any abbreviation (e.g. "1234" instead of "1.2k") and it should allow the number to accommodate language conventions (e.g. "1.234" vs "1 234", etc). For articles with null pageviews, display an icon that conveys, "Check back later". Icon TBD. Until we have an icon, display "--". Another potential approach is to display the average daily pageviews of that page from the last month or so, or the number of pageviews from the previous day to the edit, but to visually indicate that that number is still just a placeholder until the real count will be available the next day. This decision is pending additional design work.
- Tooltip should read, "See detailed page views"
- Thumbnail of the article's lead image (with image placeholder icon if no image is available)
- Clicking on the row
- Clicking on the thumbnail or article title should bring the user to the article in the same tab.
- Clicking on the number of views should bring the user to the "Pageviews Analysis" tool in the same tab.
- The tool should show the article the user clicked on.
- The dates should go from the day of the user's first edit on that article through the present day.
- It should display in the language of the wiki that the click came from.
Unactivated state: when a user has zero edits to the article namespace
- The title of the module should read "Your impact"
- The subtitle should read, "You have not yet edited any articles. This area will show the impact of your edits."
- Display "0 edits to articles". "0" should be bold.
- Display "X edits to other kinds of pages (see all)". "X" should be the total number of edits the user has made in any namespace, and should be bold. The whole phrase should link to the user's Contributions page.
- Although the mockup currently distinguishes between English Wikipedia and Commons, the "cross-wiki" idea is something we'll reserve for a future version.
Future: a list of capabilities that may be needed in future versions, listed here for planning purposes.
- Dropdowns or toggles inside the module that allow the user to configure which set of pages they see listed. These configurations would be sticky.
- Most recent pages edited vs. least recent pages edited
- Most viewed vs. least viewed
- Most bytes changed vs. least bytes changed
- Dropdowns or toggles inside the module that allow the user to configure the time period of the pageview counts, e.g. "Past week", "Past month", "All time". These configurations would be sticky.
- We may want to implement more sophisticated logic for the five pages that are shown, perhaps preferring to show a combination of pages that have a lot of views with a couple listings of pages that were most recently edited.
- We may want to "count" edits to other namespaces. Many newcomers make their first edits on their User page or Sandbox. It may be good to acknowledge that work in this module.
- We may want to show a visual "sparkline" style graph as shown in the mockups that shows pageviews over time, or something else.
- We may want to include tooltips or links that explain how pageviews are counted, or what "namespaces" are.
- We may want to show cross-wiki numbers, not just the numbers from the wiki the user is currently viewing.
- We may want to allow the user to show their impact module in public, as opposed to viewing it privately. This would mean something like a "public-facing skin".
- We may want to allow users to block articles from being in the list. For instance, perhaps they edit some article all the time, and they are sick of it taking up a slot in there list of five. Perhaps they can "x" it away to free the spot up.
- We may want to draw on pageviews earlier than the 60 day limit from the PageViewInfo extension.
Below is an early mockup the is labeled. In places where the mockups and the specifications on this task disagree, the specifications take precedent.