eduhub-org / eduhub

A comprehensive education platform focusing on course applications, event registrations, learning communities, and more.
https://edu.opencampus.sh
GNU Affero General Public License v3.0
11 stars 8 forks source link

Mail Interventions #77

Open steffen74 opened 3 years ago

steffen74 commented 3 years ago

In order to better inform, guide and motivate the course participants, it is useful to automatically generate mails for the participants when certain conditions are met. To do so for each such mail intervention, a mail template is stored in the corresponding backend table and a cronjob regularly starts a serverless function is defined to check for each individual participant if one of the conditions is met and send the corresponding mail template.

Details

The following interventions are needed:

Optional and Future Implementations

freerafiki commented 3 years ago

Just two small comments:

  1. I would formulate the second and third point as in the Issue #61 (serverless function to generate certificates) using the backend table values avoiding hardcoding the values 2 or 3:
  1. As in #53 Course Administration - Grading - The certificates will be generated before they will be visible (and maybe updated more than once), but the mail should be sent when the certificate is visible/available for the students. This would be if Program:VisibilityParticipationCertificate or Program:VisibilityPerformanceCertificate are TRUE and the fields FileLinkParticipationCertificate or Enrollment:FileLinkPerformanceCertificate are filled, recalling from the other issues. Do we need to think about updating the certificates? If we change something after they are already visible, the fields are already filled and the visibility is already true, we would not notify the participants. But we could quickly set to FALSE and the again to TRUE the visibility to re-generate the mails if needed.
steffen74 commented 3 years ago

Just two small comments:

1. I would formulate the second and third point as in the Issue [Serverless Function to Generate Certificates #61](https://github.com/edu-hub-project/edu-hub/issues/61) (serverless function to generate certificates) using the backend table values avoiding hardcoding the values 2 or 3:

* If the number of sessions with `[Attendance:Status=="MISSED"]` is equal to `[Course:MaxMissedSessions]`:
  Info that she or he must not miss any more sessions to get any type of certificate for the course.

* If the number of sessions with `[Attendance:Status=="MISSED"]` is larger than `[Course:MaxMissedSessions]`:
  Info that he won't get any type of certificate but may resume to take part in the course if the course instructor is ok with that

1. As in [Course Administration - Grading (Part 4) #53](https://github.com/edu-hub-project/edu-hub/issues/53) Course Administration - Grading - The certificates will be generated before they will be visible (and maybe updated more than once), but the mail should be sent when the certificate is visible/available for the students. This would be if `Program:VisibilityParticipationCertificate` or `Program:VisibilityPerformanceCertificate` are `TRUE` and the fields `FileLinkParticipationCertificate` or `Enrollment:FileLinkPerformanceCertificate` are filled, recalling from the other issues. Do we need to think about updating the certificates? If we change something after they are already visible, the fields are already filled and the visibility is already true, we would not notify the participants. But we could quickly set to `FALSE` and the again to `TRUE` the visibility to re-generate the mails if needed.

Thanks for the comments! I just changed the first part as you suggested. Consindering the second part, I was wondering if a message on Mattermost is enough in such cases to start off with. Or setting it invisible and visible again if we think it is necessary to inform all again. Probably it depends.

steffen74 commented 1 year ago

Check whether this could be achieved by a specific open source software.