Matrix Messenger Integration
The following are features that the Minds Messenger should support. The plan is to implement these features using RnMatrix on mobile and Element on the web. Since many of these features are not specific to Minds, it makes sense to implement them in the RnMatrix library.
We should do some research and experimentation to figure out the extent to which we could use the Element web for the messenger on the frontend. We could have another issue for this.
Messenger User Stories
MVP
-
General -
As a user I want to see the list of chats -
Group chats and private chats mixed
-
-
As a user I want to create a new chat -
Group chat -
As a user I want to create a private group chat -
As a user I want to turn end-to-end encryption on and off
-
-
As a user I want to create a public group chat
-
-
-
As a user I want to see the date of the room updates -
If on the same day show the time -
If on the same week, show weekday -
If older, show the date
-
-
-
Room -
Notifications -
As a user I want to be notified when somebody mentions me
-
-
Messages -
As a user I want to send a Document -
As a user I want to send an Image -
As a user I want to send a Text message -
As a user I want to send a big single emoji -
As a user I want to see Notice messages of the room -
As a user I want to reply to a message -
As a user I want to react to a message -
As a user I want to see messages separated by date periods (today, Mon, Nov 2, 2020, etc.) -
As a user I want to see the last X members that have read a message -
and I want to click on that indicator and show all people that have read the message
-
-
-
As a user I want to set an image, name, and topic for a room -
Image -
Name -
Topic
-
-
As a user I want to leave a room -
Members Management -
As a user I want to see the members of a room -
As a user I want to invite members to a room -
Search and select members within the federation -
See recent members I've interacted with
-
-
-
-
Search -
As a user I want to search messages in all rooms -
As a user I want to click on a search result and jump to that message in the chat
-
Better Chat
-
Room -
As a user I want to report a -
Message -
User
-
-
As a user I want to scroll to the end of messages with the click of a button -
Messages -
As a user I want to click on a user in the chat and see a screen open in which I want to -
See their profile picture, name, and id -
See the security of the room -
Have the option to do the following action on them -
Direct message -
Jump to read receipt -
Share Link to User -
Mention -
Ignore -
Mute -
Kick -
Ban -
Remove recent messages
-
-
-
As a user I want to see a shield icon in The Composer that lets me know that encryption is enabled -
As a user I want to send a Video -
As a user I want to share a message -
As a user I want to forward a message -
As a user I want to remove a message -
As a user I want to quote a message -
As a user I want to see a notice that encryption is enabled for a chat -
and see a description of what this means
-
-
As a user I want to be prompted to set the image and topic of the room and invite people to the room when I create the room for the first time or when the room is empty
-
-
As a user I want to share the link of a room -
Link to the most recent message -
Share to major social media -
Share QR
-
-
As a user I want to see a list of media and files within a room
-
Permissions and Privacy
-
Room -
Messages -
As a user I want to click on a user in the chat and see a screen open in which I want to -
See their role within the current room -
Have the option to do the following action on them -
Set their role
-
-
-
-
-
Room settings -
General -
As a user I want to set URL previews on and off
-
-
Privacy -
As a user I want to turn room encryption on for rooms that are not encrypted -
As a user I want to see a dialog informing me on what it means for the chat to be encrypted so that I can learn how encryption works
-
-
As a user I want to never send encrypted messages to unverified sessions in this room from this session -
As a user I want to set Room history access to -
Anyone -
Members only (since the point in time of selecting this option) -
Members only (since they were invited) -
Members only (since they joined)
-
-
As a user I want to set room access to -
Only people who have been invited (private) -
Anyone who knows the room link apart from guests -
Anyone who knows the room link including guests
-
-
-
Permissions -
As a user I want to assign permissions to members of a room -
As a user I want to set a custom power level for a certain action and set a custom power level for a certain member so that only the members who have enough power level can do an action -
As a user I want to see banned members of a room -
As a user I want to see muted members of a room -
As a user I want to see privileged members of a room -
As a user I want to set the following roles -
As a user I want to see the permissions of a room -
Default role -
Send messages -
invite users -
change settings -
kick users -
ban users -
remove messages sent by others -
notify everyone -
modify widgets -
change room avatar -
change the main address for the room -
Change history visibility -
change room name -
change permissions -
send m.room.server_acl events -
upgrade the room -
change topic
-
-
-
Improved Notifications
-
Notifications -
As a user I want to see any notifications I have within a room -
As a user I want to be notified when somebody mentions me and see all those activities on my main screen -
As a user I want to set notification settings of a room to -
Default -
All messages -
Mentions & Keywords -
None
-
-
-
As a user I want to set the following notification settings for Messenger -
Enable notifications for this account -
Enable desktop notifications for this session -
Show message in desktop notification -
Enable audible notifications for this session -
Enable email notifications -
Messages containing my display name -
Messages containing my username -
Messages containing @Room -
Messages containing keywords -
Messages in one-to-one chats -
Encrypted messages in one-to-one chats -
Messages in group chats -
Encrypted messages in group chats -
When I'm invited to a room -
Call invitation -
Messages sent by bots -
When rooms are upgraded
-
Cross signing & Session management
-
Cross signing & Session management -
As a user I want to use my session on multiple clients? -
As a user I want to generate a Security key and use it to verify my sessions -
As a user I want to verify my other sessions from one of my sessions -
As a user I want to interactively verify sessions -
As a user I want to verify messages manually
-
-
As a user I want to be prompted a message to verify new unknown sessions with my current session -
As a user I want to be prompted a message to verify all my unknown sessions -
As a user I want to only view encrypted messages when my session is verified
-
Minds Specific Features
-
Minds Specific Features -
Authentication using Minds -
As a user I want to share an Activity to a room -
As a user I want to see my Minds followers when I want to invite someone to any room -
As a user I want to send a message from a Minds profile -
As a user I want to send a post from the newsfeed into a chatroom of my choice -
As a user I want to be able to open/close messages from non-subscribed users -
As a user I want to be able to invite someone to a chat with their phone number or email -
As a user I want to 'migrate' a group into a matrix room -
As a user I want to offer private chat access as part of channel membership tiers
-
-
Room -
As a user I want to report a -
User from chat in Minds
-
-
Messages -
As a user I want to click on a user in the chat and see a screen open in which I want to -
Click on name or id to open Minds profile
-
-
-
Future Versions
Calling
-
As a user I want to call another user -
Mute -
End call -
Return to messages
-
-
As a user I want to video call another user -
Mute -
End call -
Switch camera -
Turn HD on and off -
Return to messages
-
Edited by Manish