swarms/active/39-group-chat/README.md

70 lines
2.6 KiB
Markdown

## Preamble
Idea: <to be assigned>
Title: Group Chat
Status: Draft
Created: 2017-11-23
Related: https://github.com/status-im/ideas/issues/15
## Summary
Provide a powerful group chat with flexible moderation features
## Swarm Participants
- Lead Contributor: @james
- Testing & Evaluation: (TBD)
- Contributor: @themue
- Contributor:
- PM: (TBD)
- UX (if relevant): (TBD)
## Product Overview
Users want to have a convenient and powerful group chat comparable to the market competitors. But beside these standard operations they want to have greater control over the content in their chat feeds ensuring a positive experience. We can give users that control by providing them with a suite of moderation tools. Our moderation tools will enable users to define their own content rules or subscribe to a moderation provider to do it for them. A marketplace will ultimately exist where users can choose from a range of moderation providers.
### Minimum Viable Product
- Goal Date: (TBD)
- Description: The MVP provides users with basic moderation tools so that they can block users, filter posts with certain phrases, and reduce spam.
#### User Stories
- [US 1: Blocking a user](./user-stories/us-1-blocking-a-user.md)
- [US 2: Reducing SPAM](./user-stories/us-2-reducing-spam.md)
- [US 3: Filter unwanted content](./user-stories/us-3-filter-unwanted-content.md)
- [US 4: Advanced filtering with smart contracts](./user-stories/us-4-advanced-filtering-with-smart-contracts.md)
- [US 5: Subscribe to moderation providers](./user-stories/us-5-subscribe-to-moderation-providers.md)
#### Requirements
- A format / schema for moderation rules must be defined.
- A standard rules interface for smart contracts must be defined.
- A smart contract that must:
- Allow a caller to burn any ERC20 token.
- Allow a caller to label burn amounts.
- Return burn amounts given a token address, user address, and an optional label.
- A moderation settings UI must exist where the user may configure:
- Blocked users.
- Filtered phrases.
- The address of a smart contract to call.
- Burn amount required.
- UserA must be able to block a UserB from UserB's profile.
- Messages are evaluated against the moderation rules before they are rendered, aborting render where necessary.
- Moderation rules must persist between sessions.
- Chat group settings UI must:
- Display the user's burn amount for that channel.
- Allow users to burn tokens for that channel.
## Dates
- Goal Date: (TBD)
- Description: (TBD)
- Testing Days required: (TBD)
## Success Metrics
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).