Skip to content

Implement monthly-checking reminder service #176

Open
@mayura-andrew

Description

@mayura-andrew

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

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Groomed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions