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

[Communities] Ability to discover, create, and edit community #80

Closed
ori-near opened this issue Apr 6, 2023 · 8 comments · Fixed by #149
Closed

[Communities] Ability to discover, create, and edit community #80

ori-near opened this issue Apr 6, 2023 · 8 comments · Fixed by #149
Assignees
Labels
enhancement New feature or request

Comments

@ori-near
Copy link
Collaborator

ori-near commented Apr 6, 2023

Problem
Currently, only DevDAO developers have the ability to create a new community space using custom hand code, leaving users without the power to discover or create the communities they care about. This creates limitation and hinders the growth of our platform. This ticket introduces a dedicated "All Communities" page that will serve as the main hub for all communities. It will also offer the ability for users to create and edit new communities.

User Stories

  • As a general user user, I want to discover all the relevant communities that I can participate in and to create my own community so that I can connect with others who share a similar interest and create a space to centralize discussions and share information.
  • As a DevHub moderator, I need to have a way to edit any community so that I can support our communities with any issues that arise.
  • As a user with community moderator permissions, I need to have a way to edit the relevant items for my community so that I can make the necessary changes without relying on DevDAO developers.

Acceptance Criteria

  • Discovery: There is a dedicated page for All communities that lists all of the communities in the same card format as the homepage
    • Users can access the page using the /communities/ URL and stay on that page when they click refresh
    • Users can discover the page using a "View All" button from the homepage
  • Creation: There is a "Create new community" button in the All Communities page. When a user clicks create, they can add all the required details:
    • Short community URL slug (e.g. /communities/slug – only allow dashes, letters, and numbers)
    • Community name (limit to 30 characters or which ever number will not break the one line on the homepage card)
    • Short description (limit to 60 characters or whichever number will not break the two lines on the homepage card)
    • Feature image (610px by 330px)
    • Thumbnail (100px by 100px)
    • Overview Tab content (editable using markdown large text field)
    • Events Tab content (editable using markdown large text filed)
    • Telegram channel(s) to pull content from
    • Admin users – user can designate all the users who will have admin permissions to edit this community. By default the user who creates the page gets listed as an admin.
    • User can designate multiple labels for their community. One primary label is required.
  • Editing: Users with permission to edit communities will see an "admin" tab for the appropriate community.
    • Permissions:
      • DevHub moderators will see the admin tab for all communities
      • Community Moderators can only see the admin tab on communities they have permissions to manage
      • Regular users will not see the admin tab
    • Once in admin mode, users with permissions can can see and edit all of the relevant community fields from the creation step

Attachments
See Figma design

@ori-near ori-near added this to the Communities milestone Apr 6, 2023
@ori-near ori-near added the enhancement New feature or request label Apr 6, 2023
@ori-near ori-near changed the title [Communities] Create new community [Communities] Ability to create new community Apr 6, 2023
@ori-near
Copy link
Collaborator Author

ori-near commented Apr 6, 2023

@nearmax @frol @ailisp – Please see this proposed ticket for creating a new community and provide any feedback or concerns.

Some considerations:

  1. Should we provide anyone with the ability to create a new community page?
  2. Should there be some kind of "moderation" step to review and approve new communities before they're published? I think we're better off allowing anyone to create one, and just adding the ability to delete/hide pages that violate any terms.
  3. How should we show "communities" that DevDAO plans to "officially support." Perhaps that's something we list on our DevGov page. Or we could add an official indication in the community (e.g. a badge that says DevDAO sponsored community).

@jefedeoro
Copy link

I think it could be a good idea to allow anyone to add a community but have 2 sections of community links.

(First / at the top) the official Dev Hub communities
(followed by) a section for the greater community (with flagging/removal if breaks terms)

and then the ability to promote a community page to the official Dev Hub list.

@ori-near ori-near added the Has dependency A ticket that has a dependency on another ticket. Remove when dependency is removed. label Apr 26, 2023
@ailisp
Copy link
Collaborator

ailisp commented Apr 26, 2023

Short community URL slug (e.g. /communities/slug – only allow dashes, letters, and numbers)

This is not possible because near social's router cannot be configured - each widget is strictly mapped to the source code file in the repo. E.g. /communities/zk - must be a file in neardevhub-widgets: src/communities/zk.jsx

@ailisp ailisp removed the Has dependency A ticket that has a dependency on another ticket. Remove when dependency is removed. label Apr 28, 2023
@carina-akaia carina-akaia self-assigned this May 15, 2023
@ori-near ori-near changed the title [Communities] Ability to create new community [Communities] Ability to create/edit community May 16, 2023
@ori-near
Copy link
Collaborator Author

@near-akaia-root As we discussed, I incorporated the old Discover "All Communities" page (#79) ticket into the first AC of this ticket. Will repurpose 79 for a different task.

CC: @ailisp

@carina-akaia
Copy link
Contributor

UPD: In progress

@ori-near ori-near changed the title [Communities] Ability to create/edit community [Communities] Ability to discover, create, and edit community May 30, 2023
@gagdiez
Copy link

gagdiez commented Jun 1, 2023

Hi team, amazing job on moving this forward. Could we get some insight into how the community is planned to be stored? Is this a data blob in social.near? In such case, what are the data fields, and under which key/action is it stored? Is there an indexer call happening on creation? Using which fields?

A great idea would be to coordinate so we propose a standard: https://github.com/NearSocial/standards/tree/main

If you already have an initial idea, would love to hear it and help in standardising it.

@carina-akaia
Copy link
Contributor

carina-akaia commented Jun 1, 2023

Hi team, amazing job on moving this forward. Could we get some insight into how the community is planned to be stored? Is this a data blob in social.near? In such case, what are the data fields, and under which key/action is it stored? Is there an indexer call happening on creation? Using which fields?

A great idea would be to coordinate so we propose a standard: https://github.com/NearSocial/standards/tree/main

If you already have an initial idea, would love to hear it and help in standardising it.

Hi, recently we decided to store and process data on DevHub's own contract, as it is the fastest way to implement MVP at this moment

SocialDB will be considered a target for migration in later updates

@frol
Copy link
Collaborator

frol commented Jun 1, 2023

@gagdiez As @near-akaia-root has already mentioned, after some brainstorming, we decided to postpone the usage of SocialDB for communities due to permission system limitations (you cannot revoke access after you granted it).

Just for future context, our exploration led us into considering creating new accounts (zk-community.near) or subaccounts (like, zk.dev-hub.near) and using its profile key to reflect that it is a community account. Users willing to post to the community would post it to their own feed with a special index key, and a relevant community account then would re-share those posts to their feed (it could even be a DAO-enabled process to ensure pre-moderation). This way the posts would still belong to the author while the community account would help to organize them, and it won't introduce major changes to the feed implementation and communities discovery will just leverage the existing accounts search capabilities.

There are a ton of small details when it comes to the implementation, so we decided to get back to it later once we will know more about the needs of the communities on NEAR. Learn more about SocialDB limitations and various quirks we can implement in #137.

carina-akaia added a commit to carina-akaia/neardevhub-widgets that referenced this issue Jun 2, 2023
ailisp pushed a commit that referenced this issue Jun 6, 2023
* chore: Lint docs

* Update package-lock

* Update scripts

* chore: Update spell checking dictionary

* wip: Create community GitHub activity tab

* wip: Update GH integration draft

* wip: Update GitHub activity page

* wip: Create GitHub board component

* wip: Update components

* wip: Update GitHub activity page & Format `common`

* wip: Update GitHub activity page

* chore: Inspect the whole `response`

* wip: Update Git Board components

* wip: Create GitHub ticket card component
& Combine GitHub integration components into single entity

* wip: Update GitHub integration components

* wip: Rename bos-loader script

* chore: Update package-lock

* wip: Update GitHub integration components & Fix errors

* wip: Fix errors in GH repo ticket card

* wip: Enable active page indicator for GH activity page

* wip: Update GH integration UI
& Create common components

* wip: Update GH integration UI
& Make board config fetch function shared

* chore: Use JSON strings for log

* fix: Handle nullable props in a simpler way

* fix: Resolve #123 (comment)

* wip: Add global editor toggle & Update styles

* wip: Update GH integration components

* fix: Use correct reference path

* fix: Update state correctly

* wip: Add WIP label to the global editor toggle

* fix: Broken column title update

* wip: Use only 1 column in GH board config mock

* chore: Remove TODO

* wip: Update page name & Remove redundant code

* chore: Ger rid of clunky names

* wip: Create generic form handler & shared toggle GUI

* wip: Update mocks & GUI
& Fix errors

* fix: Add gap between columns

* fix: Broken horizontal scroll

* chore: Change new column default title

* fix: Don't use empty search terms

* wip: Improve responsiveness

* wip: Improve responsiveness

* chore: Format

* wip: Split shared code & Update form lib

* chore: Remove irrelevant changes

* wip: Use indexed columns & update GUI

* wip: Update board config GUI

* wip: Support most use cases with useForm

* wip: Reduce functionalities for MVP

* wip: Lock pull requests enabled

* wip: Hide the global editor toggle

* wip: Extract the feature into separate module
& Update GUI
& Update communities mock
& Move communities mock to the appropriate module

* wip: Pre-MVP

* fix: Include column id into column data

* wip: Replace OR labels search rule with AND

* fix: Use full page URL

* feat: Make columns deletable

* Reset irrelevant changes

* Reset irrelevant changes

* Get ready to MVP release

* chore: Use shorter task name

* Apply code review remarks

* chore: Clarify naming

* feat: Update communities data mock

* feat: Use ticket display mode parameter

* feat: Add ticket state filter

* feat: Render ticket states

* Disable board config editor until #80 release
@frol frol closed this as completed in #149 Jun 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants