OpenConceptLab / ocl_issues

Issues for all OCL repos. NOTE: Install ZenHub Browser Extension and request access to the OCL Roadmap board to view all issues and to contribute
4 stars 1 forks source link

Following Organizations, Users, or Repositories (related to Events/Feeds) #1780

Open paulsonder opened 7 months ago

paulsonder commented 7 months ago

Background and context

OCL currently does not have a method of following or 'bookmarking' content that's relevant to a User. I would like to explore how we might approach this topic and define technical requirements so I'm able to finalise designs.

User Story

As a: user with an OCL account I want: to 'bookmark' resources So that: I have a list to aid efficient navigation to them and to utilise in search to create a narrower set of results.

Acceptance criteria

Design: UX / UI documentation

Screenshot 2024-02-22 at 14 09 03

A list of a users 'bookmarks' in the left nav.

Screenshot 2024-02-22 at 14 09 52

The bookmark button in the top right of the repo header.

paulsonder commented 7 months ago

Question: Could 'Bookmarks' be how a User creates their 'walled garden'?

jamlung-ri commented 7 months ago

Question: Could 'Bookmarks' be how a User creates their 'walled garden'?

I have wondered this too. I imagine that there could be multiple walled gardens, including the OCL default (i.e. what we designated as "trusted repos"), and a walled garden like "content that I follow". I feel like "Follow" is a more common thing nowadays as opposed to Bookmarks, since you can follow a lot of stuff but only Bookmark a select few repos. Thoughts?

paynejd commented 7 months ago

For technical reasons, the walled garden is going to start as a set of content for all users of OCL. Meaning, the initial goal is to promote globally recognized content line standard code systems. However, we definitely want to explore other versions of the walled garden, for example, prioritizing repositories or content that a user has access to or manages or that they have bookmarked/followed. Agree with Joe that the Following feature might be more what we are thinking than bookmarks.

On Thu, Feb 22, 2024 at 1:34 PM Joseph Amlung @.***> wrote:

Question: Could 'Bookmarks' be how a User creates their 'walled garden'?

I have wondered this too. I imagine that there could be multiple walled gardens, including the OCL default (i.e. what we designated as "trusted repos"), and a walled garden like "content that I follow". I feel like "Follow" is a more common thing nowadays as opposed to Bookmarks, since you can follow a lot of stuff but only Bookmark a select few repos. Thoughts?

— Reply to this email directly, view it on GitHub https://github.com/OpenConceptLab/ocl_issues/issues/1780#issuecomment-1960032692, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJCOOPT3J4CFU2ZA2AHTWDYU6FUPAVCNFSM6AAAAABDU5DNOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRQGAZTENRZGI . You are receiving this because you were assigned.Message ID: @.***>

paulsonder commented 7 months ago

OK! In that case, what kind of resources should we allow a user of OCL to follow?

In the designs so far it includes:

Should there be any others?

paynejd commented 7 months ago

FYI GitHub let's you "Follow" orgs and users, and let's you "Star" (kind of like bookmark?) and "Watch" (manage notifications?) of repos

On Fri, Feb 23, 2024 at 2:55 AM Paul Adams @.***> wrote:

OK! In that case, what kind of resources should we allow a user of OCL to follow?

In the designs so far it includes:

Should there be any others?

— Reply to this email directly, view it on GitHub https://github.com/OpenConceptLab/ocl_issues/issues/1780#issuecomment-1960874619, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJCOONARKLTSA6YJHGXMD3YVBDPDAVCNFSM6AAAAABDU5DNOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRQHA3TINRRHE . You are receiving this because you were assigned.Message ID: @.***>

jamlung-ri commented 7 months ago

Yeah, I think Jon's GitHub-like suggestions would be good. I can't think of anything else that a user would follow other than Orgs, Users, Repos, and Concepts. Concept Proposals should be an automatic "follow" once we implement those.

Edit: A use case for following a concept could be to monitor a CIEL concept for updated mappings, attributes, etc. that I requested.

snyaggarwal commented 7 months ago

Right now we have orgs/repos that can be bookmarked. The backend design is open and allows bookmarking on any resource (concept/mapping/ref/expansion/etc).

paulsonder commented 7 months ago

@jamlung-ri Do you think we're ready to write the user sorry for this and I'll make sure designs are updated?

jamlung-ri commented 6 months ago

User Story for Following Resources and Repositories

As a: user with an OCL account I want: to 'follow' repositories in OCL So that (1): My dashboard feed will be populated with updated content that is most pertinent to me, e.g. when a new version is released. So that (2): I can filter my search results down to only the content that I deem relevant So that (3): I can reserve my OCL bookmarked content for a select few repositories that I am constantly navigating to

As a: user with an OCL account I want: to 'follow' resources (i.e. concepts/mappings) in OCL So that: I can see when a new concept version is released, e.g. for a CIEL concept that I requested changes to.

jamlung-ri commented 6 months ago

@paulsonder What do you think about these above? Any other ideas?

jamlung-ri commented 3 months ago

Need to differentiate between Watched objects (users, orgs) vs. Bookmarked objects (repos)

paulsonder commented 3 months ago

@jamlung-ri Bookmarks appear in the right drawer, here.

When a user follows Users or Orgs, they see their updates in the Dashboard feed. They can unfollow from there, or go to the objects and unfollow from there.

jamlung-ri commented 3 months ago

@snyaggarwal I think we're really close to getting this ready for development, just a few design implications in other tickets e.g. #1627 and #1862. Do you feel like we have a strong enough understanding of Following to begin development? If not, let's queue this up for Tuesday's Dev call

snyaggarwal commented 3 months ago

@jamlung-ri Yes i think this can be picked.

jamlung-ri commented 3 months ago

@paulsonder Please let us know if you have anything to share with Sunny. Otherwise, let's get this one going in Dev!

paynejd commented 3 months ago

@snyaggarwal Do you want to add your thoughts to this ticket for how we will model the follower and bookmark API endpoints?

GitHub's REST API model for "following" could be a good place to start: https://docs.github.com/en/rest/users/followers?apiVersion=2022-11-28

snyaggarwal commented 3 months ago

@paynejd We already have pins resource. I was thinking of using that only. It works for bookmarks. For followers, depending on what differences are there with Bookmarks we can follow a new model.

paynejd commented 2 months ago

We would need to support both pins and bookmarks, not replace pins with bookmarks. Pins are how a user highlights content they own (or how an org highlights content it owns) to other viewers. Bookmarks/followers are how you tag any owner/repo across OCL that you want to track/remember/follow, but that’s only for yourself.

Sunny- I think it would need to be separate endpoints, is that right?

Paul- I don’t remember seeing pins in the current design. Did we lose that?

On Wed, Jun 26, 2024 at 12:01 AM Sunny Aggarwal @.***> wrote:

@paynejd https://github.com/paynejd We already have pins resource. I was thinking of using that only. It works for bookmarks. For followers, depending on what differences are there with Bookmarks we can follow a new model.

— Reply to this email directly, view it on GitHub https://github.com/OpenConceptLab/ocl_issues/issues/1780#issuecomment-2190510303, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJCOOMVR2EBJ2VFKIBA7QDZJI4J3AVCNFSM6AAAAABDU5DNOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJQGUYTAMZQGM . You are receiving this because you were mentioned.Message ID: @.***>

snyaggarwal commented 2 months ago

The model for Pins and BookMarks is similar -- who owns it and what they refer to. I think we need to have a discussion on this on how they are different. May be the model remains same but the use case and behaviours can be different.

paulsonder commented 2 months ago

@paynejd We haven't lost the concept of 'pinning' Repositories.

The user story is:

As a Repository owner (either User or Organization), I would like to pin zero to two Repositories to the top of my profile page (either User or Organization I am an admin of) so that I can call attention to those Repositories.

See this design.

This does differ from the user stories for Following Orgs or Users or Bookmarking Repo's in terms of language, user need and interaction.

snyaggarwal commented 2 months ago

@paynejd Right now a Pin model is like below. In the below example, the CIEL Repo is pinned by the user.

{
  "id": 1,
  "resource_type": "Source",
  "resource_uri": "/orgs/CIEL/sources/CIEL/",
  "uri": "/users/user/pins/1/",
  "order": 0,
  "created_at": "2024-06-26 08:05:03+00:00"
}

This model would fit with bookmarks and followers by doing few changes:

  1. Call it something generic and not Pin
  2. Add type field which will be either Pin, Bookmark or Follow
  3. Add validations for each type
jamlung-ri commented 2 months ago

Putting the Events framework spreadsheet here: https://docs.google.com/spreadsheets/d/1idF7p-0lYizHTPhYgSoxigM9F9MJpzOUeq-TbR5-abI/edit

@snyaggarwal I think the ball is in your court for this one, so if we need to have a group discussion before development begins, please let us know!

snyaggarwal commented 1 month ago

@jamlung-ri @paulsonder Follow/Unfollow is deployed on QAv3

paulsonder commented 1 month ago

Hi there @snyaggarwal

I think we can improve the user feedback by switching to using the Input Chip. I've updated and added two designs to Zeplin:

  1. A User you do not follow
  2. A User you do follow
snyaggarwal commented 1 month ago

@paulsonder This is updated.

jamlung-ri commented 1 month ago

So far so good with regards to following users! It's harder to fully test this until the Dashboards/Activity Feeds are completed though. I don't know if we can close this ticket out yet until we have seen those. Putting the first Activity Feed into the User Profile is probably a good start.

snyaggarwal commented 1 month ago

@jamlung-ri @paulsonder Some of the events I have added (from user's perspective):

  1. Org Create
  2. Org Delete
  3. Source Create
  4. Source Version Create
  5. Follow User
  6. Unfollow User

You can see these in User's profile or in API (GET /users/:user/events/)

jamlung-ri commented 1 month ago

Things I tested that worked on the User Profile page:

Bugs or other notes (generally UI related, see gif below for examples):

v3 events - profile

snyaggarwal commented 1 month ago

@jamlung-ri Fixed 1st and 2nd. 3rd I kept less space because I thought there will be recent updated repos or something below activity.

You will have to create/delete new org/versions to see 2nd working.

jamlung-ri commented 1 month ago

Awesome, this is all working now!

snyaggarwal commented 1 month ago

@jamlung-ri I think the next steps are to figure out different events for org and user. The framework is set to record events. May be we should move this ticket forward and create a new ticket with just events that we want to start recording. Also we need to create a ticket for just org events (I think this should be the next first ticket), what do you think?

jamlung-ri commented 3 weeks ago

Note that we decided today that our current behavior in OCL is to "Follow" rather than "Bookmark".

snyaggarwal commented 3 weeks ago

@jamlung-ri @paulsonder Most of it is deployed on QA. Couple of things I need to work on: