Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User items groups #924

Open
mateuswetah opened this issue Nov 4, 2024 · 1 comment
Open

User items groups #924

mateuswetah opened this issue Nov 4, 2024 · 1 comment
Assignees
Labels
[Action] Need design 🎨 [Effort] Level 5 🤯 [Goal] Colaboration Features related to allowing external users to peform item submissions [Module] Admin [Module] API [Type] Enhancement Feature requests that fit into the project scope and demand will be implemented. [Type] Idea Features requests that may or not be implemented, pending discussion or effort analisis.

Comments

@mateuswetah
Copy link
Member

Context and motivation

In different scenarios, we've been requested this idea of allowing users to create their own "groups of items". I'll say upfront that the terminology is no decided so this might be named something else (favorite items, selection of items, curatorial process, etc). But essentially it's an idea that a user may create a group of items that:

  • It is not the same thing as using a taxonomy to label different items, since there is no data to be stored in the item and we are not interested on the capabilities level that this would imply;
  • It is definitively not a collection since items may vary from metadata and are essentially already created by other users;
  • It is closer to a manual selection as we do when we create Gutenberg pages and insert a Dynamic Items List block. We store Items IDs on it.
  • It would be nice to have a direct link to this selection (and possibly other selections that the user has made). This could be presented in the form of the faceted search or maybe something more customizable;

This does brings an aspect that Tainacan did not have so strong so far, which is this idea of "personal" archive in a archive that is built by many users. If we use collections for that, things get to rigid, limited by their metadata structure and user rules. It is important to restrict the ownership of the data to the groups itself and not store things in the items, since this would mix capabilities at some point. However, quering a bunch of items by ID can become costly and maybe we'll end up having to store some hidden metadata to do this... lots of discussion there.

Ideal solution

An entirely new concept, with API and User interface dedicated to manage user groups of items.

Additional context

While asked before by some users in our community, this does have strong similarities with a concept implemented by the Iandé plugin. When planning visitations, users could select items that would be displayed in their visit. Ideally, this feature could be implemented in a way that would benefit their future refactor.

@mateuswetah mateuswetah added [Action] Need design 🎨 [Action] Need specs 🐙 [Effort] Level 5 🤯 [Goal] Colaboration Features related to allowing external users to peform item submissions [Module] Admin [Module] API [Type] Enhancement Feature requests that fit into the project scope and demand will be implemented. [Type] Idea Features requests that may or not be implemented, pending discussion or effort analisis. labels Nov 4, 2024
@mateuswetah mateuswetah moved this to Backlog in tainacan/tainacan Nov 4, 2024
@edsonvieirademetrio
Copy link

@mateuswetah to follow is a suggestions to a basic structure to development this issue.

Title: User Item Groups
Description
Implement a feature that allows any user to create an account on a WordPress site with the Tainacan plugin installed. After creating an account, the user will be able to create item groups using public items already available in Tainacan. These groups can be customized and configured as public or private.

Objective
Increase interaction and personalization within Tainacan, allowing users to group and share items according to their needs or interests, regardless of the items’ original collection. This feature enhances engagement and accessibility of shared content.

Feature Specifications
User Registration:

Allow anyone to create an account on the site by providing an email and password.
Set default permissions for new users focused on creating and viewing groups, without access to Tainacan’s administrative functions (using Tainacan’s default permissions).
Creating Item Groups:

Users can create item groups using public items available in Tainacan.
Each group should include:
Group Name: A required field completed by the user.
Privacy Settings:
Public: Generates a public link that can be shared.
Private: Access restricted only to the group creator.
Managing Items within the Group:

Users can select public items from any available collection in Tainacan, with no collection restrictions, grouping them as desired.
Items will be displayed within the group using Tainacan’s default design.
Public Link for Public Groups:

For groups set as public, a shareable link will be generated, allowing the group to be viewed by anyone with the link.
Expected Behavior
User Experience:

Users should have an intuitive and seamless experience, with an interface and design consistent with Tainacan’s visual standards.
Groups should be easily accessible for creation, editing, and deletion by the user.
Privacy and Security:

Ensure the privacy of items marked as private, allowing access only to the group creator.
Prevent users from accessing private groups created by others.
Additional Requirements
Utilize Tainacan’s existing APIs and structures to maintain compatibility and avoid redundant development.
Basic documentation for end users with usage instructions in the interface.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Action] Need design 🎨 [Effort] Level 5 🤯 [Goal] Colaboration Features related to allowing external users to peform item submissions [Module] Admin [Module] API [Type] Enhancement Feature requests that fit into the project scope and demand will be implemented. [Type] Idea Features requests that may or not be implemented, pending discussion or effort analisis.
Projects
Status: Backlog
Development

No branches or pull requests

3 participants