Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • Sign in / Register
Minds Frontend
Minds Frontend
  • Project overview
  • Repository
  • Issues 342
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 56
  • 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 month 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 8
  • Designs 0
  • Brian Hatchet :speech_balloon: @brianhatchet added 1 deleted label 1 month ago

    added 1 deleted label

  • Brian Hatchet :speech_balloon: @brianhatchet added Squad::Yellow scoped label 1 month ago

    added scoped label

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

    changed weight to 4

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

    added scoped label

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

    added to epic &111

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

    marked this issue as related to #2290

  • Emiliano Balbuena @edgebal added Priority::1 - High scoped label 3 weeks ago

    added scoped label

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

    added scoped label and automatically removed label

  • Emiliano Balbuena @edgebal changed weight to 6 3 weeks ago

    changed weight to 6

  • Emiliano Balbuena @edgebal changed time estimate to 6h 3 weeks ago

    changed time estimate to 6h

  • Emiliano Balbuena @edgebal mentioned in merge request !704 3 weeks ago

    mentioned in merge request !704

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

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

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 3 weeks 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 3 weeks ago
  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 3 weeks 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 3 weeks ago

    mentioned in issue mobile-native#1635

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

    EMI = SMART

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

    One of the SMARTest

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 3 weeks 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 weeks ago
  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 3 weeks 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) 2 weeks ago

    mentioned in issue #2362 (closed)

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

    added scoped label and automatically removed label

  • Emiliano Balbuena
    Emiliano Balbuena @edgebal · 2 weeks 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 weeks ago

    assigned to @markeharding and unassigned @edgebal

  • Brian Hatchet :speech_balloon: @brianhatchet added Sprint::01/15 - Youthful Yabby scoped label 2 minutes ago

    added scoped label

  • Brian Hatchet :speech_balloon: @brianhatchet changed milestone to %Sprint::01/15 - Youthful Yabby 2 minutes ago

    changed milestone to %Sprint::01/15 - Youthful Yabby

  • Brian Hatchet :speech_balloon: @brianhatchet assigned to @edgebal 2 minutes ago

    assigned to @edgebal

  • Brian Hatchet
    Brian Hatchet :speech_balloon: @brianhatchet · 55 seconds ago
    Developer

    Moving this onto the next sprint, into blocked for @markeharding to provide feedback

Please register or sign in to reply
2 Assignees
Mark Harding's avatar
Emiliano Balbuena's avatar
Registration and Onboarding Mobile (UX)
Epic
Registration and Onboarding Mobile (UX)
Sprint::01/15 - Youthful Yabby
Milestone
Sprint::01/15 - Youthful Yabby
Time tracking
Spent 6h
Est 6h
None
Due date
None
4
Labels
Priority::1 - High Sprint::01/15 - Youthful Yabby 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