linagora / twake-on-matrix

A multi-platform (Flutter) application for connecting to Matrix - an open network for secure, decentralized communication, with your favorite devices.
GNU Affero General Public License v3.0
63 stars 18 forks source link

[CHAT] Invitation process #986

Open tprudentova opened 1 year ago

tprudentova commented 1 year ago
  1. Invitation via exact Matrix ID
  2. Invitation of users that don't use Twake
chibenwa commented 1 year ago

Security limitations:

tprudentova commented 12 months ago

Goal of the feature

  1. The goal is to attract more users to the app as well as allow existing users to chat with people they know (easy to do chat or group chat)

User story

Inviter view

There are 2 ways I can invite users that don’t yet have TWP:

Invite from Chat tab

Clicking the Invite button opens an invitation pop-up. It includes the following:

Screenshot%202023-11-15%20at%2010 10 04

If I leave the field empty and click Send, the invitation isn’t sent, the field is highlighted in red and a warning “This field cannot be blank” appears

Screenshot%202023-11-15%20at%2010 35 57

Clicking it redirects me to the Unregistered users section of the Contacts tab. From hereon I follow the Invite from contacts tab path (that is described below). If I haven’t yet given access to my contacts, I’m asked to give access.

Invite from Contacts tab

If I click on the Invite button next to a contact in the contacts list, the Invitation pop-up opens. The box for entering phone number is pre-filled with the phone number of a selected contact.

Screenshot%202023-11-15%20at%2011 40 35 Screenshot%202023-11-15%20at%2011 40 53

If the contact has more than 1 phone number in my device’s phone book, I see a pop-up for selecting one first. I select by clicking on the correct number. Then the Invitation pop-up opens, it is also pre-filled.

Screenshot%202023-11-15%20at%2011 41 51

For the rest of the flow see Invitation pop-up section above.

Invitee view

Invitee receives an SMS message to their phone number that contains the following text:

The invitation SMS contain the following text: “Hello there! I’m using Twake Chat. Join me! *link***” Link from the message leads to landing page where I can find a link that redirects me to app store/google play, depending on my OS.

When the invitee follows the link, download the app, completes sign-up and appears inside Twake Chat, they see a pending invitation from me.

Acceptance criteria

  1. I can invite people to Twake direct Chat via SMS.
  2. I can manually insert phone number.
  3. I can select a contact to invite from my list of contacts.
  4. If I select a contact from my list of contacts, I don’t need to manually type the number.
  5. I can select necessary phone number if the contact in my device’s address book includes more than one phone number.
  6. The invited person can receive an SMS with welcoming text and a link to download Twake Chat
  7. Text of SMS message can be English, French, Vietnamese or Russian depending on the country code of the invited person.
  8. The invited person can download the app following the link in the SMS. Languages of app correspond to languagesge of device
  9. When the invited person downloads Twake Chat and signs up, they can see a pending invitation from the inviter.

Mockups

https://www.figma.com/file/K1h49fSG6LxKXUojYLbwGL/Twake-Mockups?type=design&node-id=488%3A307&mode=design&t=Y0BklNw3IPCguRVs-1

hoangdat commented 11 months ago

Design: https://www.figma.com/file/uLw3iWnOEGaRlJnfPz4Pv0/Twake-%5BMatrix%5D?type=design&node-id=18395-256745&mode=design&t=Ciig3HtOKDEJZA8p-4

hoangdat commented 10 months ago

Third party invite (i)

hoangdat commented 10 months ago

Third party invite (ii)

Inviter

Invitee

hoangdat commented 10 months ago
hoangdat commented 10 months ago
hoangdat commented 10 months ago

/_twake/sms

{
  "to": "string",
  "text": "string"
}