Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • Sign in / Register
Minds Frontend
Minds Frontend
  • Project overview
  • Repository
  • Issues 426
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 57
  • CI / CD
  • Security & Compliance
  • Packages
  • Wiki
  • Snippets
  • Members
  • Collapse sidebar
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Minds
  • Minds FrontendMinds Frontend
  • Issues
  • #2363

Closed
Open
Opened 1 week ago by Brian Hatchet@brianhatchet:speech_balloon:0 of 5 tasks completed0/5 tasks
Report abuse New issue

Replace our existing onboarding suggested channels with top feeds based on the selected hashtags

https://www.evernote.com/l/AGvHKp_LCVVCh4FB5GyBgPPC5jBKFlXj43QB/image.png

Make our onboarding process apply the user selected hashtags here

And supply them to the top feeds algorithm and use the returned channels to populate the next step

https://www.evernote.com/l/AGsJ2LB7CfdKdYcJZXrKvpMoUijvgL0fr94B/image.png

  • Save the hashtags to the user
  • Use the selected hashtags to call the top feed
  • Populate the subscribe to some popular channels with those results
  • Unit tests
  • E2E tests

It should not include any NSFW channels

Related issues
1

  • Onboarding Channel suggestions should us first 10 tag search results
    #2290
    Onboarding #rollout
Related merge requests
1
  • WIP: Suggestions Service
    !704
    Avatar for Emiliano Balbuena
When this merge request is accepted, this issue will be closed automatically.
  • Discussion 7
  • Designs 0
  • Brian Hatchet :speech_balloon: @brianhatchet added Sprint::12/18 Vacant Viper Squad::Yellow scoped labels 1 week ago

    added scoped labels

  • Brian Hatchet :speech_balloon: @brianhatchet changed weight to 4 1 week ago

    changed weight to 4

  • Brian Hatchet :speech_balloon: @brianhatchet added Status::Backlog scoped label 1 week ago

    added scoped label

  • Brian Hatchet :speech_balloon: @brianhatchet added to epic &111 1 week ago

    added to epic &111

  • Xander Miller @xander-miller marked this issue as related to #2290 5 days ago

    marked this issue as related to #2290

  • Emiliano Balbuena @edgebal added Priority::1 - High scoped label 5 days ago

    added scoped label

  • Emiliano Balbuena @edgebal added Status::InProgress scoped label and automatically removed Status::Backlog label 5 days ago

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal changed weight to 6 5 days ago

    changed weight to 6

  • Emiliano Balbuena @edgebal changed time estimate to 6h 5 days ago

    changed time estimate to 6h

  • Emiliano Balbuena @edgebal mentioned in merge request !704 4 days ago

    mentioned in merge request !704

  • Emiliano Balbuena @edgebal added 6h of time spent at 2019-12-19 4 days ago

    added 6h of time spent at 2019-12-19

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 4 days ago
    Developer

    Due to the way Top Feeds work (only the first 12 results are hydrated) and Entities Service using a RxJS Behavior, the scope of this task changed.

    I implemented a Suggestions Service that allows using 2 different mechanisms:

    • Graph: it uses /v2/suggestions/user, fetches 100 users
    • Top: it uses /v2/feeds/top/channels (30 days), fetches 500 activities then aggregates by user

    Results from both endpoints are normalized and stored onto an array in the service. Then they can be paginated. When an array fragment is sliced, the service maps through it and either wraps the existing entity onto a resolved promise or references to a this.entitiesService.get() Behavior to be used with the | async pipe at template level.

    cc/ @markeharding @brianhatchet @eiennohi

    Edited by Emiliano Balbuena 4 days ago
  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 4 days ago
    Developer

    Copying the mobile team cards on this so they are aware of the change as well

  • Brian Hatchet :speech_balloon: @brianhatchet mentioned in issue mobile-native#1635 4 days ago

    mentioned in issue mobile-native#1635

  • Bill Ottman
    Bill Ottman :dragon_face: @ottman · 3 days ago
    Owner

    EMI = SMART

  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 3 days ago
    Developer

    One of the SMARTest

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 3 days ago
    Developer

    @markeharding,

    What do you recommend to avoid showing channels that the user already subscribed?

      1. Front-end would call (once) to gather the list of channels GUIDS the user has subscribed. This would need a new endpoint on the server which will return an un-paginated collection of GUIDS.
      1. We'll add an extra post-processing to feeds.php, based on a query string (?exclude_existing_subscriptions=1), that will filter out FeedSyncEntity instances whose ownerGuid is part of the user's subscriptions.
      1. (A little more difficult to implement) Based on a query string (?exclude_existing_subscriptions=1), feeds.php will pass an extra option to Elastic\Repository to run a sub-query against minds-kite index to exclude certain owner_guids.

    My only concern with the (2) and (3) solutions is that feeds.php endpoint and Elastic\Repository class are getting complex to a point that is difficult maintain.

    Thanks!

    cc/ @juanmsolaro to be on the same page

    Edited by Emiliano Balbuena 3 days ago
  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 3 days ago
    Developer

    I am in favor of #2. Those feeds are super powerful and the more we unify our data, the easier it will be to fix feeds issues across the board.

  • Emiliano Balbuena @edgebal mentioned in issue #2362 (closed) 6 hours ago

    mentioned in issue #2362 (closed)

  • Emiliano Balbuena @edgebal added Status::Blocked scoped label and automatically removed Status::InProgress label 6 hours ago

    added scoped label and automatically removed label

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 5 hours ago
    Developer

    Moved to blocked until getting an answer. #2 is easier but will require us that we fetch the whole subscription list, which is up to 5000 entries, to filter out.

    cc/ @brianhatchet

  • Emiliano Balbuena @edgebal assigned to @markeharding and unassigned @edgebal 2 hours ago

    assigned to @markeharding and unassigned @edgebal

Please register or sign in to reply
Assignee
Mark Harding's avatar
Mark Harding @markeharding
Registration and Onboarding Mobile (UX)
Epic
Registration and Onboarding Mobile (UX)
None
Milestone
None
Time tracking
Spent 6h
Est 6h
None
Due date
None
4
Labels
Priority::1 - High Sprint::12/18 Vacant Viper Squad::Yellow Status::Blocked
6
Weight
6
Confidentiality
Not confidential
Lock issue
Unlocked
7
7 participants
user avatar
Mark Harding
user avatar
Emiliano Balbuena
user avatar
Brian Hatchet
user avatar
Bill Ottman
user avatar
Xander Miller
user avatar
Juan Manuel Solaro
user avatar
Marcelo Rivera
Reference: minds/front#2363