Page MenuHomePhabricator

New Impact Module: Filter/Sort options to customize the top edited articles of the impact module
Open, MediumPublic

Description

The newcomer homepage is a feature to help newcomers get oriented when they first create their account, so they can figure out how to start editing quickly. One component of the homepage is the impact module, which shows newcomers how many pageviews the pages get they have edited, which is meant to motivate them about continuing to contribute.

It could be valuable to newcomers, and to more experienced users, to have dropdowns or toggles inside the module that allow the user to configure which set of pages they see listed. These configurations would be sticky. Some ideas for customization capabilities:

  • Most recent pages edited vs. least recent pages edited
  • Most viewed vs. least viewed
  • Most bytes changed vs. least bytes changed

This work would likely also necessitate larger and faster queries -- if users want to look farther back than 60 days (T220143), or consider a larger list of articles they edited beyond just the ten most recent.

image.png (852×1 px, 180 KB)

Event Timeline

SBisson renamed this task from Dropdowns or controls to customize the content of the impact module to Homepage Impact: Dropdowns or controls to customize the content of the impact module.Apr 4 2019, 7:12 PM

Moving to Triaged but Future; @MMiller_WMF if you want to see this happen in an upcoming quarter please move on the workboard, and it would need design and product specifications as well.

RHo renamed this task from Homepage Impact: Dropdowns or controls to customize the content of the impact module to Homepage Impact: Filter/Sort options to customize the top edited articles of the impact module.Jun 1 2022, 8:37 PM
RHo updated the task description. (Show Details)

@RHo I see this feature request is also reflected in the positive reinforcement figma designs. Is this change something we would like to ship before the rest of impact module changes or are we planning to deliver it as part of the rest of imapct module changes?

@RHo I see this feature request is also reflected in the positive reinforcement figma designs. Is this change something we would like to ship before the rest of impact module changes or are we planning to deliver it as part of the rest of imapct module changes?

Oh, good question @Sgs! Originally @KStoller-WMF and I had discussed this as a good existing task to do as part of the impact module changes for positive reinforcement work, so hadn't thought if we should launch it if it is ready sooner. IMO it might be better to release with all other impact module changes wholesale (since maybe placement and control of the sort options could change slightly when other elements are added), but will defer to @KStoller-WMF for the call.

My preference is that if we work on the Vue migration for the impact module, then this change should occur after (or as part of that effort). In other words, ideally we avoid building this into the old impact module and then have to build it again.

But if we don't transition the impact module to Vue, then I see this as a change that could be worked on sooner and shipped once it's complete.

Perhaps this task is blocked by what we decide here? https://phabricator.wikimedia.org/T301128

My preference is that if we work on the Vue migration for the impact module, then this change should occur after (or as part of that effort). In other words, ideally we avoid building this into the old impact module and then have to build it again.

But if we don't transition the impact module to Vue, then I see this as a change that could be worked on sooner and shipped once it's complete.

Perhaps this task is blocked by what we decide here? https://phabricator.wikimedia.org/T301128

I agree that this should wait until we begin the overall impact module improvements that are part of the Growth-Positive-Reinforcement project, because during that project, we'll be rewriting the Impact module in Vue, and we don't want to do the same work twice.

@KStoller-WMF , following Kosta's recommendation, perhaps, we should move this task out of the Current Sprint for now?

Agreed, I'll move this task out of the current sprint for now. I hope to have the main tasks needed for the Impact Module side of the Positive Reinforcement project ready for team discussion next week.

KStoller-WMF renamed this task from Homepage Impact: Filter/Sort options to customize the top edited articles of the impact module to New Impact Module: Filter/Sort options to customize the top edited articles of the impact module.Jul 3 2022, 6:13 PM

Feedback from eswiki user about the new impact module:

The only improvement... would be to be able to customize it a bit, for example, modify the time of recent activity. It would be very handy to change the 60 days, to, for example, one week.

Feedback from eswiki user about the new impact module:

The only improvement... would be to be able to customize it a bit, for example, modify the time of recent activity. It would be very handy to change the 60 days, to, for example, one week.

Yes, this was in the original design but IIRC was de-scoped. We can consider adding this back in for changing to less than 60days, but for more than 60 days would require T220143 to be done first.

Earlier proposed mock:

image.png (222×884 px, 21 KB)

I find very interesting the possibility to show less than 60 days to offer a more customize experienced for newcomers. Especially to those who have just registered a few days (or hours) ago, maybe can be frustrating and demotivating to see a empty 60-day bar with only 1 day of activity. On the other hand, an empty bar could be seen as a goal (or challenge) for them to "complete", but still, I find that 2 months could be seen as too far away and difficult. By decreasing the number of days to be closer to the real number of the days of activity, user can feel that the experience is more real and personalized and the editing goal is more accessible.

In T220139#8591361, @Zapipedia-WMF wrote:

I find very interesting the possibility to show less than 60 days to offer a more customize experienced for newcomers. Especially to those who have just registered a few days (or hours) ago, maybe can be frustrating and demotivating to see a empty 60-day bar with only 1 day of activity. On the other hand, an empty bar could be seen as a goal (or challenge) for them to "complete", but still, I find that 2 months could be seen as too far away and difficult. By decreasing the number of days to be closer to the real number of the days of activity, user can feel that the experience is more real and personalized and the editing goal is more accessible.

Thanks for sharing that perspective.

A possible simpler alternative is to dynamically update the bar chart, so if your account is less than 24 hours old, we'd show 3 days for the bar chart, and once it's more than 3 days old, we'd show 7 days, and once it's more than 7 days, we could show 30; once older than 30, we'd show the default 60 days. That might be less complicated than providing a dropdown option for configurability and hopefully address the demoralizing aspect to this for newcomers?

Thanks for sharing that perspective.
A possible simpler alternative is to dynamically update the bar chart, so if your account is less than 24 hours old, we'd show 3 days for the bar chart, and once it's more than 3 days old, we'd show 7 days, and once it's more than 7 days, we could show 30; once older than 30, we'd show the default 60 days. That might be less complicated than providing a dropdown option for configurability and hopefully address the demoralizing aspect to this for newcomers?

This seems to me to be a good solution to offer a more personalised and motivating experience to newcomers, while reducing the possibility of overwhelming them with goals that may seem inaccessible to them at the very beginning.

In T220139#8591396, @Zapipedia-WMF wrote:

Thanks for sharing that perspective.
A possible simpler alternative is to dynamically update the bar chart, so if your account is less than 24 hours old, we'd show 3 days for the bar chart, and once it's more than 3 days old, we'd show 7 days, and once it's more than 7 days, we could show 30; once older than 30, we'd show the default 60 days. That might be less complicated than providing a dropdown option for configurability and hopefully address the demoralizing aspect to this for newcomers?

This seems to me to be a good solution to offer a more personalised and motivating experience to newcomers, while reducing the possibility of overwhelming them with goals that may seem inaccessible to them at the very beginning.

+1, though I would suggest making the minimum be 7 days, and maybe add 14days, as three days will make the chart look a little odd with the current logic we have for vertical bars (it already looks a bit clunky with 7 days, where the "filled" parts width is wider than the height of the whole bar):

image.png (504×898 px, 53 KB)

In T220139#8591396, @Zapipedia-WMF wrote:

Thanks for sharing that perspective.
A possible simpler alternative is to dynamically update the bar chart, so if your account is less than 24 hours old, we'd show 3 days for the bar chart, and once it's more than 3 days old, we'd show 7 days, and once it's more than 7 days, we could show 30; once older than 30, we'd show the default 60 days. That might be less complicated than providing a dropdown option for configurability and hopefully address the demoralizing aspect to this for newcomers?

This seems to me to be a good solution to offer a more personalised and motivating experience to newcomers, while reducing the possibility of overwhelming them with goals that may seem inaccessible to them at the very beginning.

+1, though I would suggest making the minimum be 7 days, and maybe add 14days, as three days will make the chart look a little odd with the current logic we have for vertical bars (it already looks a bit clunky with 7 days, where the "filled" parts width is wider than the height of the whole bar):

image.png (504×898 px, 53 KB)

@RHo is it OK to implement this without the dropdown picker for now?

To recap what I think is proposed here:

  • accounts < 7 days old -> 7 boxes
  • accounts older than 7 days but younger than 14 days -> 14 boxes
  • accounts older than 14 days but younger than 30 days -> 30 boxes
  • all other accounts would see 60 days of recent activity blocks

Implementation notes:

  • add a property on the UserImpact class to set the $user->getRegistration()
  • in the serialized JSON output create a "recent_activity_timeframe" property, dynamically set to a value of 7, 14, 30 or 60 based on account age
  • update NewImpact.vue's usage of the RecentActivity component to use that property, instead of the hardcoded 60 that is there currently
In T220139#8591396, @Zapipedia-WMF wrote:

Thanks for sharing that perspective.
A possible simpler alternative is to dynamically update the bar chart, so if your account is less than 24 hours old, we'd show 3 days for the bar chart, and once it's more than 3 days old, we'd show 7 days, and once it's more than 7 days, we could show 30; once older than 30, we'd show the default 60 days. That might be less complicated than providing a dropdown option for configurability and hopefully address the demoralizing aspect to this for newcomers?

This seems to me to be a good solution to offer a more personalised and motivating experience to newcomers, while reducing the possibility of overwhelming them with goals that may seem inaccessible to them at the very beginning.

+1, though I would suggest making the minimum be 7 days, and maybe add 14days, as three days will make the chart look a little odd with the current logic we have for vertical bars (it already looks a bit clunky with 7 days, where the "filled" parts width is wider than the height of the whole bar):

image.png (504×898 px, 53 KB)

@RHo is it OK to implement this without the dropdown picker for now?

Yes! Sorry I was being lazy and not removing the dropdown in the spec when I made the mock :/

To recap what I think is proposed here:

  • accounts < 7 days old -> 7 boxes
  • accounts older than 7 days but younger than 14 days -> 14 boxes
  • accounts older than 14 days but younger than 30 days -> 30 boxes
  • all other accounts would see 60 days of recent activity blocks

+1 matches my understanding

Implementation notes:

  • add a property on the UserImpact class to set the $user->getRegistration()
  • in the serialized JSON output create a "recent_activity_timeframe" property, dynamically set to a value of 7, 14, 30 or 60 based on account age
  • update NewImpact.vue's usage of the RecentActivity component to use that property, instead of the hardcoded 60 that is there currently
  NODES
Idea 3
idea 3
Note 3
Project 13
USERS 5