Decentralized Grassroots Campaign Management for the Fediverse
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 KiB

Outreach functionality

Note: Roadmap features are indicative only. They merely represent ideas for future enhancement.

Contents

Stakeholder roles

Precondition: All user stories, except Fedizens follow themes require the stakeholder to be logged into the Outreach platform with an account created by Fedizen registers account.

The table below shows the features that are available to each stakeholder. In the Outreach platform the stakeholders are represented as Roles and as such more privileged roles inherit features from more generic ones in the following ways:

  • A tenant is an organizer and inherits all organizer features.
  • An organizer is a campaigner and inherits all campaigner features.
  • A campaigner is a fedizen and inherits all fedizen related features.

Note that the actual set of features that are available to a stakehholder depends on privileges and ownership, both of which are fixed in the MVP release. E.g. an organizer cannot disband a community they do not own.

Role    Features
Organizer
Campaigner
  • TODO
Fedizen
  • TODO
Tenant
  • TODO

Community management

Community management is an Outreach core domain.

Organizer defines themes

Communities revolve around themes. An organizer can have multiple communities, which may have multiple, maybe overlapping themes. Hence theme management is separate from community management. Furthermore there may be restrictions to the themes that can be defined on a server, so the tenant stakeholder also has a say in theme definitions.

Organizer facilitates community

Encompasses all activities related to community-building by the community organizer.

MVP features:

Roadmap features

  • Suspend Campaigner
  • Invite Fedizen
  • Configure Community:
    • Restrict Access
    • Transfer Ownership
    • Manage Roles
    • Manage Privileges


Launch Community

Feature: Launch an outreach community
  # Community launch is a 3-step process: handle, themes, details

  As an organizer seeking help for my public relation efforts,
  I want to launch an outreach community for campaigners,
  So that members can participate in my outreach campaigns.

  # Step 1: Unique handle
  # Community is referenced as @handle@hostname on the fediverse.
  # Once the community is launched the handle cannot be changed.

  Background:
    Given I have already defined the themes I am interested in.

  Scenario: Specify the community handle.
    When typing a unique community handle,
    Then I can commence to select community themes,
    But not if the handle already exists on the server.

  # Step 2: Themes
  # Number of themes is limited by default, to avoid spamming
  # fediverse feeds, and 'general-purpose' communities.

  Scenario: Select community themes
    Given the list of themes I have defined,
    And community theme selection is below maximum,
    When selecting a theme from the list,
    Then I can commence to launch the community.

  # Step 3: Details and launch
  # The person that launches the community becomes the owner.

  Scenario: Launch the community.
    Given I provide required community details
    * Community avatar
    * Display name
    * Summary text
    When I launch the community
    Then it becomes active and is publicly accessible,
    And I am owner and community organizer,
    And fedizens can now join as campaigners.

Reconfigure themes

Feature: Reconfigure the community themes

  In order to have full control of my community presence,
  As a community organizer responsible for positioning,
  I can select different themes and change theme explainers.

  # Because themes are what attracted campaigners,
  # they must be notified about any changes.

  Background:
    Given the community is active.

  # Changing theme configuration should be handled with care.
  # When removing a theme existing followers no longer receive
  # updates. Existing campaigns still have the original theme.

  Scenario: Reconfigure community themes
    Given I make changes to theme configuration
    * Theme selection, [1..MaxThemes]
    * Theme explainer texts, [optional]
    When I save the theme changes,
    Then they are publicly visible directly,
    And campaigners are notified in detail,
    But existing campaigns are unaffected.

Update profile

  Feature: Configure how the community is presented

    In order to clarify how my community aligns with its themes,
    As a community organizer responsible for positioning,
    I can change community details and branding aspects.

  # Because the profile are what may have attracted campaigners,
  # they must be notified about any changes.

  Background:
    Given the community is active.

    Scenario: Update community profile
      Given I make changes to any of the community details
      * Community avatar, [required]
      * Display name, [required]
      * Summary text, [required]
      * Presentation banner, [optional]
      * Presentation text, [optional]
      * Member label, [optional]
      When I save the profile changes,
      Then they are publicly visible directly,
      And campaigners are notified by a summary.

Select roles

  Feature: Select community member role

    As an organizer who owns and facilitates a community,
    I want to be able to change member roles,
    So that I can select other organizers to facilitate with me.

  Background:
    Given the community is active,
    And the organizer is the community owner.

    # In the MVP community ownership cannot be changed. The
    # creator is the owner.

    Scenario: Change membership role settings
      Given the list of community members,
      And changing members' role settings,
      When I save the role changes,
      Then campaigners can be promoted to organizers,
      And organizers can be demoted to campaigners.

Disband community

  Feature: Disband a community

    In order to gracefully shutdown a community,
    As the organizer that is its owner,
    I can disband the community and notify community members.

  # This action is in the 'danger zone' given how intrusive it may be,
  # therefore a confirmation dialog asks to type the community handle.

  Background:
    Given the community is active,
    And the organizer is the community owner.

  # If there are no members there's no need to provide a reason,
  # deletion occurs immediately.

  Scenario: Disband a community without members
    Given the community has no members,
    And I request to disband the community,
    When I type the community handle and confirm the action,
    Then the community and all its content is deleted immediately.

  # If there are members, then a reason must be provided and members
  # are notified. After deletion a tombstone of the community remains,
  # that is shown to anyone navigating to old community hyperlinks.

  Scenario: Disband a community with members
    Given the community has members,
    And I request to disband the community,
    And I provide the reason for disbandment,
    When I type the community handle and confirm the action,
    Then the community members are notified with the reason,
    And followers of community themes are notified with the reason,
    And a tomstone is created to show to people requesting community content,
    And the community content is deleted, until only the tombstone remains.

Campaigner joins community

MVP features:

  • Join Community
  • Message Campaigner
  • Flag Campaigner

Campaign management

Campaign management is an Outreach core domain.

Organizer manages campaigns

Community interacts with campaigns

Community takes campaign action

Campaign communicates themes

Campaign promotes events

Campaign targets channels

Campaign recommends actions

Actions invoke channels

Actions interact with events

Channels advertise events

Fedizens follow themes

Scope: Not part of the Minimum Viable Product.

Precondition: Requires federation with Fediverse microblogging infrastructure.

Roadmap features:

  • Follow Theme
  • Discover Themes

Organizer informs fedizens

Service management

Service management is an Outreach supporting domain.

Fedizen registers account

Fedizen terminates account

Tenant facilitates organizers

  • Suspend community
  • Ban community