Ocelot-Social-Community / Ocelot-Social

Free and open-source social network for active citizenship.
https://ocelot.social
Other
95 stars 37 forks source link

🌟 [EPIC] 1.X.0 - Org: Organisations/Projects/Groups #4544

Closed ulfgebhardt closed 2 years ago

ulfgebhardt commented 3 years ago

🌟 EPIC - 1.X.0 - Organisation: Org/Projects/Groups

——— This concept is now planned new in EPIC #5059 ———

General Concept

An org is the very general concept for every entity which is not a person – an organisation, a business, a project, a charity, a foundation, a group of people ...

Implement a feature called org means to create a new entity which is not a user account and therefore can not be logged in. But it has an org profile similar to a user profile, see below.

Public Orgs Or Groups

A user can create and own one or more orgs of which they are a member, and can also invite other members to join this org. Another name to describe this concept is public group since it's a group but does not have an internal communication channel by internal posts. (Internal communication of public orgs or groups can be implemented with a chat feature based on the groups membership.)

Closed Orgs Or Groups

Later we have the idea and see the need of having closed orgs for special interests. Examples are offending contents like explicit sexuality, if users don’t want to show to every other person like neighbours that they are engaged parties or other activities, if you organise things like events in which not every user should interfere, users discuss issues which the most users or the network owner don’t like to have in the general newsfeed, etc.

This means in detail that users can post org internal posts which can not be seen by users which are no members. Though this just seems like a checkbox in the settings the consequences are huge:

Complexity:

Hosting:

Displaying And Functionality Of An Org

An org has a profile like a user profile and admins of that project can post as the org or in the name of the org which then will be publicly visible on the orgs profile and in the newsfeed, very similar to a user. So we can say that a profile is a subset of a user and an org what should be relevant for the database structure and component design. See Database .

An important concept of the network is to make sure it's always clear who posts something. Therefore the org will be displayed as poster, but it has to be denoted which user posted it on behalf of the org. It should be visible in the avatar labels of posts and comments.

Furthermore an org can have additional infos on its profile page. Similar to the social media feature of the user profile one can imagine putting more info like an address, telephone or organisation type. This can be aligned with the user profile to reuse many of the possibilities of the orgs additional info for the user profile as well. Some things are not applicable tho – for example the organisation type since it does not make sense to give the user the option to display that.

Here different requirements meet each other and we have to find the right solution:

New Pages

Changes in existing pages

image

Actions as user

Actions as owner or admin

Actions as network admin

Open questions and outlooks

User Stories

As a Creator

As a User

As a Moderator

Suggested initial Order of Implementation:

Step By Step Implementation

Limited implementation by Keep It Simple Stupid (KISS) for a start (smart reminder to @roschaefer ), but have the Whole (As) Picture In Mind (WAPIM).

To limit the effort initially like required we can limit the feature set and enhance it step by step to get to the full feature:

1. Single Person Org

Orgs have:

Orgs have not:

2. Admins Can Delete The Org

The admins delete org issue is XXX .

Orgs have:

3. Multi Admins Org

The multi admins org issue is XXX .

Orgs have:

4. Orgs With Invited Members

The orgs with invited members issue is XXX .

Orgs have:

X. Later

Database And Technical Concepts That Are Difficult To Change

Database

Database and program wise we should name this concept org.

URL

Additional Information

A PR for organisations exists as #3735 and can be used as template.

Questions Coming Up

Tirokk commented 3 years ago

Meeting with @rbeer

sushidave commented 3 years ago

Happy to see this is planned. @Tirokk asked me to review this issue and I have two questions:

1.) By "project", do you mean "project team" or a project itself?

2.) Does the issue include businesses/companies? I'm asking because other networks distinguish between orgs/businesses/companies and groups due to their differing requirements, see Facebook Page vs. Group, Google My Business vs. Group and (similarly) Telegram Channel vs. Group.

Tirokk commented 3 years ago

1.) The project and the project team will be no difference, because the project page is the project and project members are the team.

2.) At the beginning we do not distinguish between orgs, businesses, companies etc. Later on it will or should be network dependent what is allowed and possible.

We have not recognised so many different requirements yet, but in the future there should be constrains like companies must have addresses, but all the others can have them as well. And there should be page design differences for easy distinguishing for the users.

Can you agree? @sushidave

sushidave commented 3 years ago

Thank you @Tirokk .

So, the goal is just to have an unpersonal entity/container which can be enhanced to provide various org types/purposes, all of them featuring at least an owner/admin and a profile page, is that correct? And such an entity can have other features depending on its type, for example:

Organisation (business, company, association, charity, initiative, movement, etc.):

Group (interest group, project group, etc.):

Project:

Event:

Is this what this issue is about or did I get it wrong?

Questions:

  1. What can users use a Single Person Org for?
  2. Once another org type is implemented can a Single Person Org be turned into the new type, e.g. Singe Person Org -> Group Org?
  3. Network admins being able to switch on/off: Do you mean activate and deactivate, or: create, deactivate/suspend, reactivate and delete?
  4. What can network moderators do?

Suggestions:

  1. Some organisations won't allow users to become a member of their organisation as it's the case with Facebook pages and Google My Business pages. So I suggest to add to the membership settings required:
    • user can become a member (different settings required: invite, request, free join, no membership)
  2. For later: Define the possible relationships per org type (single, children of, parent of).
  3. Use the international term "org" instead of "orga" 😅
Tirokk commented 3 years ago

This is what this Epic is about @sushidave .

Your questions:

  1. After we implement the Single Person Orga the owner/admin can post on its profile and to get visible in the newsfeed. Afterwards we have the possibility to implement a map with the locations of that orgas what would be in the interest of 'Helfa‘ to find local groups as close as possible to our locations.
  2. At the beginning there will be no fixed orga type and therefore you can just use the new possibilities for your orga.
  3. That means that network admins can stop orgas from being created but show all orgas which exists. And additionally can hide all orgas. Like they wish todo.
  4. Network moderators can deactivate orgas temporarily or steadily, like with user profiles.

Your suggestions:

  1. I agree.
  2. Would be nice as well.
  3. That’s okay with me. 😘 (you’re relentless @sushidave but that great 😍) What do @ulfgebhardt and @rbeer say?
Dayvvo commented 3 years ago

I would like to take on this issue. Have only understood partly and not sure I would be able to handle it solo but I would love to have some part in this project @Tirokk

Tirokk commented 3 years ago

Hey @Dayvvo ,

@rbeer probably has started last week to work on this issue. See first step #4548 . So we would have to coordinate or you find a way to work together somehow?

I cared for your invitation to our community as volunteer via an e-mail invitation you can accept.

Would be nice to get knowing you to handle such a big thing. If you don’t mind and it’s possible in your time zone please come in one of our Daily Standup. 👇🏼

Our conversation runs over our discord server: https://discord.gg/AJSX9DCSUA There we have usually from Monday to Thursday a Daily Standup at UTC 09:30 am (CEST 11:30 am) in the Office Cube.

ulfgebhardt commented 2 years ago

@Tirokk Do we need to keep some infos of this or can we close this in favor of #5059 ?

Tirokk commented 2 years ago

closed in favor of #5059