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

Implement monthly-checking reminder service #176

Open
mayura-andrew opened this issue Oct 27, 2024 · 0 comments
Open

Implement monthly-checking reminder service #176

mayura-andrew opened this issue Oct 27, 2024 · 0 comments
Assignees
Labels
backend A backend task hacktoberfest priority: high High priority task

Comments

@mayura-andrew
Copy link
Member

mayura-andrew commented Oct 27, 2024

Description:

We need to develop a robust email reminder service from scratch. This service will handle scheduling, sending, and retrying email reminders for mentees. The service should also manage state transitions for mentees after a specified period and handle foreign key constraints properly.

Tasks:

  • Design Database Schema
  • Ensure proper relationships and foreign key constraints are established.
    Implement Email Reminder Service
  • Create a service class to handle scheduling, sending, and retrying email reminders.
  • Implement methods for scheduling reminders, processing reminders, and handling retries with exponential backoff.
  • Track Number of Reminders Sent
  • Add CronJob for Monthly Scheduling and set up a cron job to run at the end of each month.
  • Ensure reminders are scheduled for a continuous period of 6 months.

Acceptance Criteria:

  1. The email reminder service is fully implemented and operational.
  2. The number of reminders sent is tracked and updated correctly.
  3. Cron job runs at the end of each month and schedules reminders for 6 months.

Additional Information:

  • Ensure that all changes are covered by unit tests.
  • Update documentation to reflect new features and changes.
  • Monitor logs to verify that retries and state transitions are working as expected.

Later:

  • Implement a user interface to view and manage reminder attempts.
  • Add notifications for administrators when maximum retries are reached.
  • Optimize database queries for better performance.

Related Dependencies or References:

  • TypeORM documentation
  • Node-cron documentation for scheduling
  • Exponential backoff algorithm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend A backend task hacktoberfest priority: high High priority task
Projects
Status: Groomed
1 participant