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

[Contributor Dashboard] Send feedback email to volunteers #16086

Open
anubhutiv opened this issue Sep 20, 2022 · 31 comments
Open

[Contributor Dashboard] Send feedback email to volunteers #16086

anubhutiv opened this issue Sep 20, 2022 · 31 comments
Labels
enhancement Label to indicate an issue is a feature/improvement Impact: Medium Will improve quality-of-life for at least 30% of users. Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.

Comments

@anubhutiv
Copy link

anubhutiv commented Sep 20, 2022

For new contributors

Original feature request

When I edit a card, even if I accept it, I want to send a feedback comment for the submitter.

While in the current version, there is an option to send a comment, it is not very prominently visible to the Volunteer.

Can we send an email to volunteer every time a feedback is being given to them.

@sagangwee sagangwee added Impact: Medium Will improve quality-of-life for at least 30% of users. and removed Impact: High Blocks or significantly slows down a core workflow. labels Jan 10, 2023
@sagangwee sagangwee changed the title [Contributor Dashboard] Feedback for Volunteers [Contributor Dashboard] Send feedback email to volunteers Jan 10, 2023
@sagangwee
Copy link
Contributor

@anubhutiv Just to check, by comment, do you mean the single reviewer comment after accepting/rejecting a suggestion?

@sagangwee
Copy link
Contributor

May be a duplicate of #13129.

@seanlip
Copy link
Member

seanlip commented Jan 10, 2023

@anubhutiv isn't around currently, so I can try to help with the requirements. I suggest that we send an email to a volunteer each time a suggestion they make is accepted/rejected (possibly batched if many reviews happen around the same time),

@seanlip seanlip assigned sagangwee and unassigned anubhutiv Jan 10, 2023
@sagangwee
Copy link
Contributor

Sounds good. And to address #13129, the email should also include any edits made by the reviewer.

@anubhutiv
Copy link
Author

The uber requirment is that if a volunteer is making a mistake, reviewer can give feedback in a manner visible to them. Email is one of the solution.

@sagangwee sagangwee removed their assignment Jan 19, 2023
@github-actions
Copy link

Hi @sagangwee, thanks for proposing this as a good first issue. I am removing the label for now and looping in @DubeySandeep to approve the label. It will be added back if approved. Thanks!

@aagman945
Copy link

aagman945 commented Jan 21, 2023

@seanlip I would like to work in this issue.

@seanlip
Copy link
Member

seanlip commented Jan 22, 2023

@aagman945 Per the guidance at https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#choosing-a-good-first-issue, please provide an explanation of what your PR will do (with names of files you're changing, what you plan to change in each file, etc.). If it looks good, we can assign you to this issue.

Please also follow the other instructions on that wiki page if you have not yet done so. Thanks!

@Strikker0
Copy link

Yes, it is possible to send an email to a volunteer every time feedback is given to them for a suggestion they submitted. The email should include the status of the suggestion (accepted or rejected) and any edits made by the reviewer. You can use the example email templates provided in the link you shared as a guide. Additionally, you may want to consider making the option to leave feedback more prominently visible to volunteers in the UI to ensure they are aware of it.

@haanhvu
Copy link

haanhvu commented Jan 24, 2023

Hi @seanlip, I would like to work on this issue.

AFAIU, we need a new service of sending feedback email to volunteer in core/domain/email_manager.py. That service will need to be added to the suggestion controller core/controllers/suggestion.py. We also need to add tests in email_manager_test.py and suggestion_test.py

Is that correct? If not, please provide any suggestions.

@seanlip
Copy link
Member

seanlip commented Jan 24, 2023

Yes, I think this sounds pretty good, thanks! Happy to assign you to it @haanhvu.

Just to clarify the scope: the plan is to send an email to a volunteer each time a suggestion they make is accepted/rejected (possibly batched if many reviews happen around the same time). The email should also include any edits made by the reviewer (see #13129).

Two questions:

(1) Could you please make a suggestion for the email template to use in the accepted/rejected cases? In the rejected case please make sure that there's a way to communicate any edits/feedback done by the reviewer.
(2) How will you address the case where a reviewer reviews 10 submissions in 5 minutes, all from the same person? Will the emails all come at once or will they be batched?

You might want to prepare a short doc outlining your implementation approach and share it here, that way we can give you some feedback and help you with any decisions needed.

Thanks!

@haanhvu
Copy link

haanhvu commented Feb 10, 2023

Sorry I haven't made much progress with this issue.

I'll unassign myself now so that other contributors who're interested in this issue can take it.

I'll come back to this issue later when I have time. If it's not resolved yet, I'll finish it.

Thanks!

@haanhvu haanhvu removed their assignment Feb 10, 2023
@shashank-mishra14
Copy link

Hi @seanlip I believe I can resolve this issue easily, can you assign me the issue??

@seanlip
Copy link
Member

seanlip commented Feb 17, 2023

@shashank-mishra14 Per the guidance at https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#choosing-a-good-first-issue, please provide an explanation of what your PR will do (with names of files you're changing, what you plan to change in each file, etc.). If it looks good, we can assign you to this issue.

Please also follow the other instructions on that wiki page if you have not yet done so. Thanks!

@shashank-mishra14
Copy link

Hey, I can make some changes by providing email feedback back to core/domain/email_manager.py. Adding tests in suggestions_test.py and email_manager_test.py will do the work. Adding the new suggestion to suggestion_test.py will be necessary.

@Ash-2k3 Ash-2k3 self-assigned this Feb 27, 2023
@Ash-2k3
Copy link
Member

Ash-2k3 commented Feb 27, 2023

@seanlip

Yes, I think this sounds pretty good, thanks! Happy to assign you to it @haanhvu.

Just to clarify the scope: the plan is to send an email to a volunteer each time a suggestion they make is accepted/rejected (possibly batched if many reviews happen around the same time). The email should also include any edits made by the reviewer (see #13129).

Two questions:

(1) Could you please make a suggestion for the email template to use in the accepted/rejected cases? In the rejected case please make sure that there's a way to communicate any edits/feedback done by the reviewer. (2) How will you address the case where a reviewer reviews 10 submissions in 5 minutes, all from the same person? Will the emails all come at once or will they be batched?

You might want to prepare a short doc outlining your implementation approach and share it here, that way we can give you some feedback and help you with any decisions needed.

Thanks!

@seanlip @sagangwee I have made a short doc which has email template, PTAL docx

As for the case where a reviewer reviews multiple submissions from the same person within a short amount of time, we can batch the emails and send them out in one email instead of sending individual emails for each submission. This will help reduce the number of emails that the volunteer receives and make it easier for them to manage their inbox. We can set a threshold time limit (e.g., 30 minutes) and send a single email that includes all the accepted/rejected suggestions that were reviewed within that time frame.

@seanlip
Copy link
Member

seanlip commented Feb 27, 2023

@Ash-2k3 Just a note on requirements -- there's also a case where the reviewer might edit a suggestion and then accept it. We'd still want to let the contributor know what edits were made.

The batching strategy sounds reasonable to me. I'll defer to @sagangwee to comment on the rest, since he leads the Contributor Dashboard team.

@Ash-2k3
Copy link
Member

Ash-2k3 commented Feb 28, 2023

@seanlip Okay I have updated the doc which will include this case too...
@sagangwee Please let me know if this will do...If not let me know your suggestions, Thanks !

@sagangwee
Copy link
Contributor

@Ash-2k3 I think the batching sounds good, though noting we might want to mark each suggestion as having an email notification sent to avoid duplicates in case the batch cron job fails and it is re-run. That can be a future improvement though.

Also left comments on the email template. Thanks!

@Ash-2k3
Copy link
Member

Ash-2k3 commented Mar 1, 2023

@sagangwee Okay I will update the doc accordingly and get started...Thanks!

@Ash-2k3
Copy link
Member

Ash-2k3 commented Mar 3, 2023

@sagangwee @seanlip I have done the changes..I want to test it on my local server...How can I do that ?..

@Ash-2k3
Copy link
Member

Ash-2k3 commented Mar 4, 2023

@seanlip @sagangwee, What about a case where multiple reviewers reviewed submissions from the same person within the time frame. Do we have to batch such mails too ?..

If yes then we may need to modify _send_email function

@seanlip
Copy link
Member

seanlip commented Mar 5, 2023

@Ash-2k3 In general, I would say that if a user is going to receive N emails in succession, with basically the same content, then we should batch them.

The combined email should be already batched before being sent to _send_email() -- i.e. the body of the batched email should be sent, and I don't think you need to modify the _send_email() function. Batching should be done in the layer of the code that has logic pertaining to that specific set of emails, not the general infrastructure.

@sagangwee sagangwee removed their assignment Mar 6, 2023
@Ash-2k3
Copy link
Member

Ash-2k3 commented Mar 8, 2023

@Ash-2k3 In general, I would say that if a user is going to receive N emails in succession, with basically the same content, then we should batch them.

The combined email should be already batched before being sent to _send_email() -- i.e. the body of the batched email should be sent, and I don't think you need to modify the _send_email() function. Batching should be done in the layer of the code that has logic pertaining to that specific set of emails, not the general infrastructure.

Okay, I will do the same. Thanks

@Ash-2k3
Copy link
Member

Ash-2k3 commented Mar 11, 2023

Since I am already working on some issues, currently I am not able to raise a PR. Un-assigning me as of now to let it be open for other contributors. . I will get back to this issue after a week if no one else takes it. Thanks!

@Ash-2k3 Ash-2k3 removed their assignment Mar 11, 2023
@PasunuriSrinidhi
Copy link

@seanlip can you please assign me this issue?
My approach would be

  1. Set up a database: Need a database to store the suggestion data, including the user's email address, the status of the suggestion, and any edits made by the reviewer.

  2. Create an email template: By using the example email template provided as a starting point and customize it as needed to fit specific requirements. We can also have the status of the reviewer's suggestion (accepted or rejected), and any edits made by the reviewer.

  3. Set up an email service: I will use an email services provider such as SendGrid, Mailchimp, or Amazon SES to send the email notifications. These services typically provide APIs or SDKs that allow to integrate email functionality into the application.

  4. Create a webhook: A webhook is a mechanism that allows the application to receive real-time notifications from an external service, such as an email service provider. I can also a webhook to trigger an email notification to the user whenever their suggestion is accepted or rejected by a reviewer.

  5. Integrate the email service and webhook with the application: We should include the edits made by the reviewer. We also need to query the database to retrieve the necessary information for the email, such as the user's email address and the edits made by the reviewer.

@seanlip
Copy link
Member

seanlip commented Mar 15, 2023

@PasunuriSrinidhi Thanks for your message. I'm afraid this is too vague and doesn't really explain how we would implement this in the current codebase specifically. I would suggest taking a look at the actual code in the Oppia codebase and maybe trying to make a working prototype on your machine; that would help you give a more specific approach in your explanation here. It would help if you could point to specific files that you plan to edit and the types of edit that you plan to do in each.

@Ash-2k3
Copy link
Member

Ash-2k3 commented Mar 15, 2023

Hi @seanlip , in my opinion, this may not be the best choice for a good first issue. While sending an email might be straightforward, developing an algorithm for batching could prove challenging for someone just starting out.

@seanlip
Copy link
Member

seanlip commented Mar 15, 2023

@Ash-2k3 You might be right, but in that case @sagangwee is the person to talk to since he applied the label. Could you perhaps discuss this with him?

@PasunuriSrinidhi
Copy link

@seanlip Thank you for your information. I will check the code and implement it in my local machine and give you the complete description and the changes that need to be done in specific files.

@Ash-2k3
Copy link
Member

Ash-2k3 commented Apr 6, 2023

Hi @seanlip , in my opinion, this may not be the best choice for a good first issue. While sending an email might be straightforward, developing an algorithm for batching could prove challenging for someone just starting out.

Adding @sagangwee to confirm if this can be a good first issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Label to indicate an issue is a feature/improvement Impact: Medium Will improve quality-of-life for at least 30% of users. Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.
Projects
Status: Todo
Development

No branches or pull requests

10 participants