Background
The Because You Read module surfaces article recommendations based on the most recent article the user has read using the MoreLike API. It provides 4 article cards in a horizontal scroll. The reason label identifies the article is being triggered based on the users reading history.
Every For You card shares the same persistent chrome: Wikipedia logo (top left), Community tab access, language switcher dropdown (showing user-configured languages + link to language settings; changing language refreshes the module content in the selected language without leaving the module), and notification bell. The bottom navigation bar is always visible.
User Story
As a Wikipedia reader, after I finish reading an article I want to see related article suggestions based on what I just read, so that I can continue exploring topics that interest me without having to search.
Requirements
- The module selects the user's most recently read article (for more than 10 seconds) as the basis for recommendations
- Avoid using a non-mainspace page as the seed article, and avoid suggesting non-mainspace pages as recommendations for Because you read
- 4 recommended article cards are displayed in a horizontal stack
- Refresh the MoreLike suggestions daily
- Only suggest articles in the main namespace, and do not suggest disambiguation articles
- The reason label on each card reads 'Because you read [Article Title]'.
- If the user has no reading history, this module is hidden from the feed until they've read at least one article.
- Exclude disambiguation pages and main page.
- Remove the existing "Because you read" module and associated settings from the legacy explore feed (Community) for users in the B group of the experiment. Users in Control should maintain access.
Nice to have
- Ensure freshness: instead of just taking the last article read, for every new explore day, take all articles that were read for 1+ minutes in the last month and randomly pick one as the seed
Design
Android task for reference: https://phabricator.wikimedia.org/T419691
Toni Handoff Notes
Based on progress at PR https://github.com/wikimedia/wikipedia-ios/pull/5995
Noting things remaining todo:
Avoid using a non-mainspace page as the seed article, and avoid suggesting non-mainspace pages as recommendations for Because you read
Exclude disambiguation pages and main page.
This needs to be done - filter out non-main namespace articles, disambig pages and main page in the selection criteria (at the data controller layer).
The reason label on each card reads 'Because you read [Article Title]'.
UI still needs to be fine-tuned, current UI is stub / generated. Double-check patterns (WMFFont, etc), layout, rotation, iPad, themes, etc. Optimize for Voice Over if needed.