Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Functionalities to Send Invitation Modal #173

Open
5 of 7 tasks
nhatnghiho opened this issue Feb 21, 2023 · 0 comments
Open
5 of 7 tasks

Add Functionalities to Send Invitation Modal #173

nhatnghiho opened this issue Feb 21, 2023 · 0 comments
Assignees
Labels
task Task issue for a current or past sprint

Comments

@nhatnghiho
Copy link
Contributor

nhatnghiho commented Feb 21, 2023

Description

Now that we have the InvitationModal for users to invite friends to view their schedules via email, we want to add functionalities to this modal. This includes:

  1. Update the ScheduleData schema to include the list of invited friends and the status of the invitation.
  2. Fetch the set of recently invited friends and incorporate those into the autocomplete function.
  3. Enable the Send Invite button to trigger the send email cloud function on click.
  4. On send success or failure, display the correct feedback.
  5. Add the invited friend's into ScheduleData as Pending invitation once an email is sent successfully.
  6. Change the status of the invited friend to Accepted once they click on the confirmation link in the invitation email.
  7. Display the list of invited friends and their invitation statuses on the modal.

Steps 1-4 and 7 should be done in the gt-scheduler/website repo; steps 5-6 should be done in Cloud Functions in the gt-scheduler/firebase-conf repo.

Acceptance Criteria

  • ScheduleData is updated to include the list of invited friends and the status of the invitation.
    • migrateScheduleData must be updated along with any related tests.
  • Autocomplete displays emails of recently invited friends from the last 3 semesters.
  • Search results are displayed based on what the user has typed in.
  • Emails are sent and feedback is displayed to the user appropriately.
  • Status of invitation is updated appropriately.
  • List of invited friends is displayed appropriately.

Other Notes

  • I'd recommend the following for adding friends to ScheduleData, particularly to the ScheduleVersion subtype:
{
   name: string;
   createdAt: string;
   ...,
   friends: {
       _FRIEND_ID_: {
           status: 'Accepted' | 'Pending',
      }
   }
}
@nhatnghiho nhatnghiho added the task Task issue for a current or past sprint label Feb 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task Task issue for a current or past sprint
Projects
None yet
Development

No branches or pull requests

2 participants