Skip to content

Add User Invite Feature #17

@Flanderzz

Description

@Flanderzz

Add a feature for users to invite friends to chat

Expectation:

Invite Flow: invite -> create -> communicate -> reminder -> accept | expire

Initiation:

Creation:

  • Create the invite and set the status to CREATED, along with recording the creation time.

Communication:

  • Send an invitation communication via email to notify jon@jon.com about Bob’s invitation to join the Teamsphere chat.

Reminder:

  • If jon@jon.com hasn’t accepted the invite within one day, send a reminder communication.

Acceptance:

  • Upon jon@jon.com’s acceptance of the invite, set the invite status to ACCEPTED.

Expiration:

  • If the invite remains unaccepted after 7 days, mark it as EXPIRED to indicate its expiration.

Data Example:

{
   "inviter": {
     "name": "John Doe",
     "email": "john.doe@example.com",
   },
   "invite_id": "123456789",
   "invite_link": "https://example.com/invite/123456789",
   "created_date": "2024-01-15"
   "status": "OPEN",
   "recipients": [
     {
       "email": "recipient1@example.com",
       "status_progress": "SENT",
       "date_sent": "2024-01-15",
       "exp_date": "2024-01-22"
     },
     {
       "email": "recipient2@example.com",
       "status_progress": "ACCEPTED",
       "date_sent": "2024-01-15",
       "exp_date": "2024-01-22"
     },
     {
       "email": "recipient3@example.com",
       "status_progress": "DONE",
       "date_sent": "2024-01-15",
       "exp_date": "2024-01-22"
     },
     {
       "email": "recipient4@example.com",
       "status_progress": "EXPIRED",
       "date_sent": "2024-01-15",
       "exp_date": "2024-01-22"
     }
   ]
 }

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions